在机器学习和数据挖掘领域,相似性和相关性度量是一个比较基础的问题。本文就简要总结一下常见的相似性和相关性的度量方法以及它们的适用场景。这儿假设有两个待处理对象A和B, 其中,
A = [12, 31, 22, 45, 78]
B = [10, 11, 43, 44, 21]
Euclidean distance -欧氏距离
A和B的欧氏距离表示为:
欧氏距离就是平面几何中的求两点之间距离公式扩展应用,维数从二维变成了多维。
Manhattan Distance -曼哈顿距离
A和B的曼哈顿距离表示为:
Cosine Similarity -余弦相似度
A和B的余弦相似度表示为:
这儿是将A和B的属性值集合看成两个向量,因而两者之间的余弦相似度即为两个向量的夹角的余弦值;A*B表示两个向量的点积,||A||表示向量A的模,||B||表示向量B的模。
Pearson Correlation Coefficient -皮尔逊相关系数
A和B的皮尔逊相关性系数表示为:
适用场景
如果待处理对象的特征数字化之后比较稠密,特征值都是非零值,并且特征值的大小比较重要的话,使用欧氏距离和曼哈顿距离来进行分析。
如果数据比较稀疏,零值较多,那适合采用余弦相似度进行相关分析。一个典型的场景就是数据防泄密系统中的文档相似性度量。在这种场景中,待检测文档对应的词向量中很多都是,非常适合采用Cosine similarity进行度量。
皮尔逊相关系数适用于所获得的数据中有“老好人”数据值的情况。所谓老好人数据值是指这样一种情况:譬如有一个五分制的打分系统,5表示最优,1表示最差;某个老好人觉得A还行,就给3分,觉得B不错,就给5分。老好人的分数永远在3,4,5之间。他的3估计相当于别人的1或者2,他给出的4和5相当于别人的4。也即存在水分的数据,这在数据挖掘领域有一个术语叫grade inflation。这种情况下,需要一定的平滑处理,而皮尔逊相关系数恰好有这样一个平滑处理在里面,所以比较合适。
领取专属 10元无门槛券
私享最新 技术干货