您的位置:首页 > 其它

聚类

2015-10-26 23:06 316 查看
北京时间 20151026 22:45

近期在做一个网页抓取,数据分析的相关项目,自己负责数据分析这块。

思路有点乱,由于抓取的数据杂而乱,难以用于最后呈现用户,需要对数据进行分析并整理,因此计划采用数据挖掘中的聚类方法,将数据进行聚类,并从簇中选择

数据用于呈现,项目中采用层次聚类,因为在去除无效数据(入库限制)、重复数据(入库限制),以及相似数据(网页相似性判断)。其中前面两项主要通过字段,即数据匹

配和数据库的特点实现,网页相似怀采用google的simhash算法,这算法挺牛的,理论看懂了,不过其深入的原理并不没吃透,说下自己理解吧。比如对于两个页面A、

B,网页划词之后包含多个关键词WORDi及其权重Wi,计算每个词的Hash值(64位),对于其中位为1,则相应位+Wi,否则-Wi,那么得到一个64位的向量,其中每位为

+Wi或者-Wi,网页所有的关键词得到的64位向量,对应位直接进行求和,得到的结果,即为一个64位向量,其中每位大于等于0则置1,否则置0,得到一个64位的二进

制数NUM(A),同理B得到NUM(B),对NUM(A)与NUM(B)进行异或操作,计算位为1的个数,个数较少则证明两篇文章相似性较高,经验值取小于等于3,则表示网页相

似,认为重复。

下面讲讲聚类逻辑,其实就是用的层次聚类,通过将文章转换为TFIDF向量,以向量之间的cos值作为相似性,以簇间最大距离作为簇间相似性,进行自底向上层次聚

类,是指:首先,将所有网页作为一个单独的簇,选择簇间距离最小的两个簇进行合并;其次,将合并后的簇作为一个新簇,并删除被合并的两个簇;循环上述过程,直

至得到指定簇的个数,或者达到某种收敛条件(簇内平均距离阈值),我采用的是根据网页数据动态调整簇的个数,从大体上来说,尽量设置大一点,因为相似的还是会到一

起,设置簇的数量太少会导致不应该聚类到一起的数据也到一起了。

鉴于博客内容主要为了MARK自己的学习进程,所以可能有些杂乱,顺便讲下自己今天稍微看了些mybatis的内容,主要是讲它如何去连接数据库,通过conf.xml进行

Mapper.xml的读取,在Mapper.xml中设置数据库与bean的对应关系,则可以通过mybatis的session之类的来调用mysql操作语句,这部分纯属mark,并不懂!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: