马氏距离的优点,马氏距离与欧式距离

文章目录1概要2距离特征2.1 Euclidean距离2.2 Cosine距离2.3 manhattan距离2.4 chebyshev距离2.5笑点低棘球蚴距离2.6 mahalanobis距离3码的实现

1个人资料

数字向量是数据建模问题中最常见的特性之一,包括:

在与照片、文本信息等相关情况下,例如,在照片的相似度一致检索、相似文章的检索、该商品的定位等问题中,为了迅速地进行检索匹配,大多将照片的文本等信息变换为数值矢量;

在搜索推荐等多流程建模工作中,上游总是将一些数值矢量特征发送到下游,最常见的是图像矢量信息、上游各模型预测得分连接而成的矢量。

那么,如何根据这些生成的矢量来加工和构建更多有用的特征呢? 有聚类等各种方法; 求出统计特征等。 本文介绍一系列基于数值特征向量的距离特征。

2特点2.1 Euclidean到自信笔的距离,即两个数值向量点之间的长度。 其公式如下。

从那个数学式可以知道以下内容

自信笔的距离受数值向量维数的大小影响,所以在计算距离之前对数据进行归一化是理想的,自信笔的距离在向量维数非常大时效果会大大降低; 2.2 Cosine距离Cosine距离在高维空间中往往比自信的笔距离更有效。 Cosine距离的数学计算形式如下。

从那个数学式可以知道以下内容

由于Cosine距离在计算时已经进行了归一化的操作,所以我们在无序地计算它之前先进行归一化等预处理; 因为Cosine距离不考虑向量的大小,所以两个向量会立即同时缩放为固定倍数,计算的大小也相同。2.3 manhattan距离manhattan距离可以是街道距离。 因为它有点像只有90度角的街道的长度。 manhattan距离在高维空间中可能会比自信的笔距离获得更好的效果。 与之对应的公式如下。

2.4 chebyshev距离chebyshev距离是两个数值向量在单个维度上绝对值之差最大的值,chebyshev距离在一些比较特殊的场景中物理意义重大。

例如,我们现在需要组装一件物品,但需要很多零件,每个零件都在不同的地方,需要邮寄。 此时,chebyshev距离是所需的最短时间;

与chebyshev距离对应的公式如下:

2.5笑点低棘球蚴与笑点低棘球蚴的距离计算公式如下:

自信的笔距、manhattan距和chebyshev距就是其中的特殊例子,低笑容蘑菇距的最大优点是

我们可以调整p值的可取值,并基于此寻找最佳的p值用于最终预测。 在进行距离计算之前,需要对向量进行归一化操作。 2.6 mahalanobis距离mahalanobisxhdbq )距离可视为一种害羞胡萝卜距离的修正,修正了欧式距离下各维尺度不一致的相关问题。

其中

是多维随机变量的协方差矩阵,xhdbq距离在距离计算问题上是非常好的特征。

3代码importpandasaspdimportseabornassnsimportnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.neighborsimportdistancemetricancememetricticolib osine_similarity##2随机生成两个向量,vec1,ve C2 vec1=NP.random.normal size=1000 ) VEC2=NP

dist=distance metric.get _ metric euclidean ) ) dist.pairwise[VEC1,ve C2 ] 0,1 ) 46.053180625425

3.1 Euclidean距离

cosine_similarity[VEC1,ve C2 ] 0,1 )-0.012651236859499773

3.2 Cosine距离

dist=distance metric.get _ metric Manhattan ) ) dist.pairwise[VEC1,ve C2 ] 0,1 ) 1165.7413956018454

3.3 manhattan距离

dist=distance metric.get _ metric Chebyshev ) ) dist.pairwise[VEC1,vec2] ) 0,1 ) 4.71307519584598

3.4 chebyshev距离

dist=DistanceMetric.get_metric ‘笑点低的棘白菌素’,p=1) dist.pairwise[VEC1,vec2] ) 0,1 ) 1165.741395601800

快三大小单双位技巧准确率99离在距离计算问题上是非常好的特征。

3代码importpandasaspdimportseabornassnsimportnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.neighborsimportdistancemetricancememetricticolib osine_similarity##2随机生成两个向量,vec1,ve C2 vec1=NP.random.normal size=1000 ) VEC2=NP

dist=distance metric.get _ metric euclidean ) ) dist.pairwise[VEC1,ve C2 ] 0,1 ) 46.053180625425

3.1 Euclidean距离

cosine_similarity[VEC1,ve C2 ] 0,1 )-0.012651236859499773

3.2 Cosine距离

dist=distance metric.get _ metric Manhattan ) ) dist.pairwise[VEC1,ve C2 ] 0,1 ) 1165.7413956018454

3.3 manhattan距离

dist=distance metric.get _ metric Chebyshev ) ) dist.pairwise[VEC1,vec2] ) 0,1 ) 4.71307519584598

3.4 chebyshev距离

dist=DistanceMetric.get_metric ‘笑点低的棘白菌素’,p=1) dist.pairwise[VEC1,vec2] ) 0,1 ) 1165.741395601800

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注