数据挖掘(八)相似性
相似性
对于许多不同的问题,我们需要知道两个对象的相似度(similar)
比如:
查找与客户购买的商品相似的商品;
搜索相似的网页或文档以进行查询;
将相似的客户划分为不同的类别;
查找与目标论文相似的科学论文;
在图中查找相似的节点
相似性测量
- 计算对象之间的相似性
- 将对象对映射为实数值的函数
- 提供相似性的数学定义
- 设p和q为两个对象,𝑆(𝑝,𝑞)为相似度分数有:
𝑆(𝑝,𝑞)> = 0;
𝑆(𝑝,𝑞)=1 ,仅当 𝑝=𝑞 (恒等)
𝑆(𝑝,𝑞)=𝑆 (对称)
存在非对称相似性度量(例如Pearson Correlation);一些相似性度量提供负分数 - 所应用的相似性度量取决于对象类型
- 对象属性(即特征,属性)用于衡量两个对象之间的相似性,比如:
网页或文档中的单词;
网页或图形中的链接;
科学论文中的引文;
图像像素;
视频中的帧 - 有多种类型的相似性度量,例如
Text based
矢量模型: Jaccard coefficient, Cosine, Dice Coefficient
概率模型: Kullback Leibler Distance (KLD ),BM25
Link based
Co citation, Bibliographic coupling, Amsler;
SimRank, rvs-SimRank, PRank;
SimRank *, JacSim , MatchSim
Hybrid
SimCC
基于文本的相似性度量
基本概念
- 用于计算文本对象之间的相似度
网页;
新闻文章;
学术论文 - 对象中出现的单词作为特征
相似度计算之前需要预处理
预处理
-
删除停止词:
删除非描述性(non descriptive)文档的单词:an, be, too, the, to, few, many, much,… -
提取:
例如,波特和兰开斯特·塞默斯
彼此的小语法变体词映射到其词根,称为词干
“production” and “product” 都映射 到 produc
向量模型
Jaccard coefficient
-
适用于binary vector模型
文档表示为术语(即单词)的向量
每个维度对应一个术语
维度的内容指示其相应术语的存在(即1)或不存在(即0)。 -
易于理解
-
公式整洁
-
两个向量𝑉1和𝑉2的相似性分数计算如下:
-
考虑如下两个文件:
D1 : “That is a cookie, a delicious
D2 : “This cookie is so sweet” -
预处理以后(删除停止词并提取):
D1 : {cooki , delici } = <1,1,0>
D2 : {cooki , sweet} = <1,0,1> -
D1和D2的Jaccard相似度计算如下:
Cosine
-
适用于向量空间模型
文档表示为术语的向量
每个维度对应一个术语