机器学习中距离和相似性度量方法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在机器学习和数据挖掘中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别。最常见的是数据分析中的相关分析,数据挖掘中的分类和聚 类算法,如 K 最近邻(KNN)和 K 均值(K-Means)等等。根据数据特性的不同,可以采用不同的度量方法。一般而言,定义一个距离函数 d(x,y), 需要满足下面几个准则: 1) d(x,x) = 0 ? ? ? ? ? ? ? ? ? ?// 到自己的距离为0 2) d(x,y) = 0 ? ? ? ? ? ? ? ? ?// 距离非负 3) d(x,y) = d(y,x) ? ? ? ? ? ? ? ? ? // 对称性: 如果 A 到 B 距离是 a,那么 B 到 A 的距离也应该是 a 4) d(x,k)+ d(k,y) = d(x,y) ? ?// 三角形法则: (两边之和大于第三边) 这篇博客主要介绍机器学习和数据挖掘中一些常见的距离公式,包括: 闵可夫斯基距离 欧几里得距离 曼哈顿距离 切比雪夫距离 马氏距离 余弦相似度 皮尔逊相关系数 汉明距离 杰卡德相似系数 编辑距离 DTW 距离 KL 散度 ? 1. 闵可夫斯基距离 闵可夫斯基距离(Minkowski distance)是衡量数值点之间距离的一种非常常见的方法,假设数值点 P 和 Q 坐标如下: 那么,闵可夫斯基距离定义为: 该距离最常用的 p 是 2 和 1, 前者是欧几里得距离(Euclidean distance),后者是曼哈顿距离(Manhattan distance)。假设在曼哈顿街区乘坐出租车从 P 点到 Q 点,白色表示高楼大厦,灰色表示街道: 绿色的斜线表示欧几里得距离,在现实中是不可能的。其他三条折线表示了曼哈顿距离,这三条折线的长度是相等的。 当 p 趋近于无穷大时,闵可夫斯基距离转化成切比雪夫距离(Chebyshev distance): 我们知道平面上到原点欧几里得距离(p = 2)为 1 的点所组成的形状是一个圆,当 p 取其他数值的时候呢? 注意,当 p??1 时,闵可夫斯基距离不再符合三角形法则,举个例子:当 p??1, (0,0) 到 (1,1) 的距离等于 (1+1)^{1/p}??2, 而 (0,1) 到这两个点的距离都是 1。 闵可夫斯基距离比较直观,但是它与数据的分布无关,具有一定的局限性,如果 x 方向的幅值远远大于 y 方向的值,这个距离公式就会过度放大 x 维度的作用。所以,在计算距离之前,我们可能还需要对数据进行?z-transform?处理,即减去均值,除以标准差: ?: 该维度上的均值 ?: 该维度上的标准差 可以看到,上述处理开始体现数据的统计特性了。这种方法在假设数据各个维度不相关的情况下利用数据分布的特性计算出不同的距离。如果维度相互之间数据相关(例如:身高较高的信息很有可能会带来体重较重的信息,因为两者是有关联的),这时候就要用到马氏距离(Mahalanobis distance)了。 ? 2. 马氏距离 考虑下面这张图,椭圆表示等高线,从欧几里得的距离来算,绿黑距离大于红黑距离,但是从马氏距离,结果恰好相反: 马氏距离实际上是利用 Cholesky transformation 来消除不同维度之间的相关性和尺度不同的性质。假设样本点(列向量)之间的协方差对称矩阵是??, 通过 Cholesky Decomposition(实际上是对称矩阵 LU 分解的一种特殊形式,可参考之前的 博客)可以转化为下三角矩阵和上三角矩阵的乘积:??。消除不同维度之间的相关性和尺度不同,只需要对样本点 x 做如下处理:?。处理之后的欧几里得距离就是原样本的马氏距离:为了书写方便,这里求马氏距离的平方): 下图蓝色表示原样本点的分布,两颗红星坐标分别是(3, 3),(2, -2): 由于 x, y 方向的尺度不同,不能单纯用欧几里得的方法测量它们到原点的距离。并且,由于 x 和 y 是相关的(大致可以看出斜向右上),也不能简单地在 x 和 y 方向上分别减去均值,除以标准差。最恰当的方法是对原始数据进行 Cholesky 变换,即求马氏距离(可以看到,右边的红星离原点较近): 将上面两个图的绘制代码和求马氏距离的代码贴在这里,以备以后查阅: View Code ? 马氏距离的变换和 PCA 分解的 白化处理颇有异曲同工之妙,不同之处在于:就二维来看,PCA 是将数据主成分旋转到 x 轴(正交矩阵的酉变换),再在尺度上缩放(对角矩阵),实现尺度相同。而马氏距离的 L逆矩阵是一个下三角,总体来说是一个仿射变换。 ? 3. 向量内积 向量内积是线性代数里最为常见的计算,实际上它还是一种有效并且直观的相似性测量手段。向量内积的定义如下: 直观的解释是:如果 x 高的地方 y 也

文档评论(0)

153****9163 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档