- 5
- 0
- 约4.07千字
- 约 21页
- 2019-09-26 发布于广东
- 举报
机器学习中距离和相似度计算方法 在机器学习和数据挖掘中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别。根据数据特性的不同,可以采用不同的度量方法。 一般而言,定义一个距离函数 d(x,y), 需要满足下面几个基本准则: 1) d(x,x) = 0 ? ? ? ? ? // 到自己的距离为02) d(x,y) = 0 ? ? ? ?// 距离非负3) d(x,y) = d(y,x) // 对称性: 如果 A 到 B 距离是a,那么 B 到 A 的距离也应该是 a4) d(x,k)+ d(k,y) = d(x,y) ? ? // 三角形法则: (两边之和 大于第三边) 即:所有点的对应维度之差的平方的求和再开方。 欧式距离相似度算法需要保证各个维度指标在相同的刻度级别,比如对身高、体重两个单位不同的指标使用欧氏距离可能使结果失效。 欧式距离 曼哈顿距离来源于城市区块距离,是将多个维度上的距离进行求和后的结果 曼哈顿距离 切比雪夫距离(Chebyshev distance)是向量空间中的一种度量,二个点之间的距离定义为其各坐标数值差的最大值。从一个位置走到其他位置需要的步数恰为二个位置的切比雪夫距离,因此切比雪夫距离也称为棋盘距离。 切比雪夫距离 闵可夫斯基距离(Minkowski distance)不是一种距离,而是一组距离的定义。 该距离最常用的 p 是 2 和 1, 无穷大 P=2是欧几里得距离(Euclidean distance), P=1是曼哈顿距离(Manhattan distance)。 当 p 趋近于无穷大时,闵可夫斯基距离转化成切比雪夫距离(Chebyshev distance) 闵可夫斯基距离 缺点: 举个栗子 二维样本(身高,体重),其中身高范围是150~190,体重范围是50~60,有三个样本:a(180,50),b(190,50),c(180,60)。 那么a与b之间的闵氏距离(无论是曼哈顿距离、欧氏距离或切比雪夫距离)等于a与c之间的闵氏距离, 但是身高的10cm等价于体重的10kg吗? 因此用闵氏距离来衡量这些样本间的相似度有问题。 简单说来,闵氏距离的缺点主要有两个:?1. 将各个分量的量纲(scale),也就是“单位”当作相同的看待了。?2. 没有考虑各个分量的分布(期望,方差等)可能是不同的。 引入标准化欧式距离的原因是一个数据xi的各个维度之间的尺度不一样。? 比如v1=(100,10,30),v2 = (500,40,10)。对所有维度分别进行处理,使得各个维度分别满足标准正态分布。?即? 如果将方差的倒数看成是一个权重,这个公式可以看成是一种加权欧氏距离(Weighted Euclidean distance)。 标准化欧氏距离 使不同规格的数据转换到同一规格 标准化:对不同特征维度的伸缩变换的目的是使得不同度量之间的特征具有可比性。同时不改变原始数据的分布。 特点:1、保持各个特征维度对目标函数的影响权重? 2、对目标函数的影响体现在几何分布上? 3、在已有样本足够多的情况下比较稳定。 归一化(区间缩放):基于边界值(最大值,最小值),将值的区间缩放到某个特点的范围,如[0,1] 特点:1、对不同特征维度进行伸缩变换? 2、改变原始数据的分布。使各个特征维度对目标函数的影响权重是一致的)? 3、对目标函数的影响体现在数值上? 4、把有量纲表达式变为无量纲表达式 。 列 行 马式距离 若协方差矩阵是单位矩阵(各个样本向量之间独立同分布),则公式就成了: 则Xi与Xj之间的马氏距离等于他们的欧氏距离。 即:若协方差矩阵是对角矩阵,公式变成了标准化欧氏距离。 标准化欧氏距离是在假设数据各个维度不相关的情况下,利用数据分布的特性计算出不同的距离。如果维度相互之间数据相关(例如:身高较高的信息很有可能会带来体重较重的信息,因为两者是有关联的),就要用到马氏距离 相似度度量 相似度度量(Similarity),即计算个体间的相似程度,与距离度量相反,相似度度量的值越小,说明个体间相似度越小,差异越大。 两个向量越相似,向量夹角越小,余弦值的绝对值越大;值为负,两向量负相关。 应用:文本的相似度和推荐系统等。 余弦相似度 举个简单栗子: 句子A:这只皮靴号码大了。那只号码合适 句子B:这只皮靴号码不小,那只更合适 怎样计算上面两句话的相似程度? 基本思路:如果这两句话的用词越相似,它们的内容就应该越相似。因此,可以从词频入手,计算它们的相似程
原创力文档

文档评论(0)