机器学习中的距离与相似度度量
两组数据相似度计算方法

两组数据相似度计算方法(实用版2篇)目录(篇1)1.引言2.两组数据的相似度计算方法概述3.方法一:欧氏距离4.方法二:余弦相似度5.方法三:Jaccard 相似度6.方法四:Jaro-Winkler 相似度7.总结与展望正文(篇1)一、引言在数据挖掘和机器学习领域,衡量两组数据之间的相似度是一项重要任务。
相似度计算方法可以帮助我们判断数据之间的相似程度,从而为数据融合、数据匹配等应用提供依据。
本文将介绍四种常用的两组数据相似度计算方法。
二、两组数据的相似度计算方法概述两组数据的相似度计算方法主要通过比较数据之间的差异来衡量其相似性。
常用的方法包括欧氏距离、余弦相似度、Jaccard 相似度和Jaro-Winkler 相似度。
三、方法一:欧氏距离欧氏距离是最常见的距离度量方法,它计算两个数据点之间的直线距离。
对于两组数据,我们可以分别计算每对数据点之间的欧氏距离,然后取平均值作为两组数据的相似度。
欧氏距离适用于各种数据类型,但对于不同尺度的特征可能会产生误导。
四、方法二:余弦相似度余弦相似度是通过计算两组数据的夹角余弦值来衡量它们之间的相似性。
余弦值在 -1 到 1 之间,接近 1 表示两组数据非常相似,接近 -1 表示两组数据完全不相似。
余弦相似度对数据进行归一化处理,可以处理不同尺度的特征。
但它对数据中的极端值较为敏感。
五、方法三:Jaccard 相似度Jaccard 相似度主要用于处理集合数据。
它通过计算两个数据集合的交集与并集的比值来衡量它们之间的相似度。
Jaccard 相似度的取值范围为 0 到 1,0 表示两个集合完全不相似,1 表示两个集合完全相同。
六、方法四:Jaro-Winkler 相似度Jaro-Winkler 相似度是一种字符串匹配度量方法,它同时考虑了字符串中的长匹配和短匹配。
Jaro-Winkler 相似度可以处理不同长度的字符串,并具有较高的匹配性能。
七、总结与展望本文介绍了四种常用的两组数据相似度计算方法:欧氏距离、余弦相似度、Jaccard 相似度和 Jaro-Winkler 相似度。
knn 余弦相似度和欧式距离

KNN算法在机器学习领域中被广泛应用,它是一种监督学习算法,用于分类和回归。
KNN算法的核心思想是基于已知类别的数据集,通过测量新数据点与已知类别数据点之间的距离来进行分类。
在KNN算法中,常用的距离度量有欧氏距离和余弦相似度。
在本文中,我们将深入探讨这两种距离度量的特点和应用,以便更好地理解它们在KNN算法中的作用。
1. 欧氏距离欧氏距离是最常见的距离度量方式之一,它衡量的是两个点之间的直线距离。
在二维空间中,欧氏距离的计算公式为:\[d(x,y) = \sqrt{(x1-y1)^2 + (x2-y2)^2}\]其中,\(x\)和\(y\)分别是两个点的坐标,\(x1\)和\(y1\)是\(x\)和\(y\)的第一个维度的坐标,\(x2\)和\(y2\)是\(x\)和\(y\)的第二个维度的坐标。
2. 余弦相似度余弦相似度是衡量两个向量方向的夹角的相似程度,它不考虑向量的大小。
在KNN算法中,常用余弦相似度来衡量特征向量之间的相似程度。
余弦相似度的计算公式为:\[similarity = \frac{A \cdot B}{||A|| \times ||B||}\]其中,\(A\)和\(B\)分别是两个特征向量,\(A \cdot B\)是\(A\)和\(B\)的点积,\(||A||\)和\(||B||\)分别是\(A\)和\(B\)的范数。
3. 欧氏距离和余弦相似度的比较欧氏距离和余弦相似度在KNN算法中的作用略有不同。
欧氏距离更适用于数值型特征,它能够更好地反映不同特征之间的绝对距离。
而余弦相似度更适用于文本分类、推荐系统等领域,它能够更好地反映特征向量之间的相对方向。
4. 个人观点和理解在实际应用中,选择欧氏距离还是余弦相似度取决于数据的特征和具体情况。
在处理数值型特征时,欧氏距禿更能反映特征之间的绝对距离,更适合于KNN算法的分类。
而在处理文本分类、推荐系统等领域时,余弦相似度能更好地反映特征向量之间的相对方向,更适合于KNN算法的应用。
欧几里得相似度和欧式距离成正比

欧几里得相似度和欧式距离是在数学和计算机科学领域经常被用到的概念。
它们的相关性在数据分析、机器学习和图像处理等领域中发挥着重要作用。
本文将对欧几里得相似度和欧式距离的概念进行介绍,并探讨它们之间的正比关系。
一、欧几里得相似度的概念和应用1. 欧几里得相似度(Euclidean similarity)是指在多维空间中两个向量之间的相似程度。
它通常用于衡量两个向量之间的相似性或相异性,是一种常用的相似性度量方法。
2. 欧几里得相似度的计算公式为:\[similarity = \frac{1}{1 + distance}\]其中,distance表示两个向量之间的欧式距离。
3. 欧几里得相似度在数据挖掘和信息检索中有着广泛的应用。
在文本分类和推荐系统中,可以利用欧几里得相似度来衡量文档或用户之间的相似性,从而进行相关性分析和推荐。
二、欧式距离的概念和计算方法1. 欧式距离(Euclidean distance)是指在多维空间中两点之间的直线距离。
它是最常用的距离度量方法之一,在数学和计算机科学领域都有广泛的应用。
2. 欧式距离的计算公式为:\[distance = \sqrt{\sum_{i=1}^{n} (x_i - y_i)^2}\]其中,\(x_i\)和\(y_i\)分别表示两个向量的第i个分量。
3. 欧式距离在数据挖掘、图像处理和模式识别等领域中被广泛应用。
在聚类算法中,可以利用欧式距离来衡量不同样本之间的相异性,从而进行聚类分析。
三、欧几里得相似度与欧式距离的正比关系1. 欧几里得相似度和欧式距离之间存在着正比关系。
从上文中可以看出,欧几里得相似度的计算公式中包含了欧式距离的倒数。
也就是说,当两个向量之间的欧式距离越小,它们之间的相似度越大,反之亦然。
2. 举例说明:假设两个向量A和B之间的欧式距离为1,那么它们之间的欧几里得相似度为0.5。
如果将A向量与一个其他向量C进行比较,发现A与C之间的欧式距离为2,即A与C之间的相异程度更大,这也意味着A与C之间的欧几里得相似度为0.333,更小于A与B之间的相似度。
Matlab中的相似度度量与相似性分析方法

Matlab中的相似度度量与相似性分析方法引言:相似性分析是一种常用的数据分析方法,它在许多领域中起着关键的作用,如模式识别、图像处理、自然语言处理等。
Matlab作为一种强大的科学计算工具,提供了丰富的相似度度量和相似性分析方法,本文将重点介绍Matlab中常用的相似度度量方法和它们在相似性分析中的应用。
一、欧几里得距离欧几里得距离是最常用的相似度度量方法之一,它描述了两个向量之间的距离。
在Matlab中,可以使用"pdist"函数来计算欧几里得距离。
下面是一个简单的示例代码:```matlabX = [1 2 3; 4 5 6; 7 8 9]; % 原始数据矩阵D = pdist(X); % 计算两两样本之间的欧几里得距离```二、余弦相似度余弦相似度是一种常用的度量方法,用于衡量两个向量之间的夹角。
在Matlab 中,可以使用"cosine"函数来计算余弦相似度。
下面是一个简单的示例代码:```matlabX = [1 2 3; 4 5 6; 7 8 9]; % 原始数据矩阵S = 1 - pdist2(X, X, 'cosine'); % 计算两两样本之间的余弦相似度```三、相关系数相关系数是一种用于衡量两个变量之间相关关系的方法,它描述了两个变量之间的线性关系程度。
在Matlab中,可以使用"corrcoef"函数来计算相关系数。
下面是一个简单的示例代码:```matlabX = [1 2 3; 4 5 6; 7 8 9]; % 原始数据矩阵C = corrcoef(X); % 计算变量之间的相关系数```四、编辑距离编辑距离是一种用于衡量两个字符串之间的相似性的方法,它描述了将一个字符串转换为另一个字符串所需的最小操作次数。
在Matlab中,可以使用"editdist"函数来计算编辑距离。
欧氏距离或余弦相似度

欧氏距离或余弦相似度标题:欧氏距离与余弦相似度:两种度量方法的比较与应用导言:在机器学习和数据挖掘领域中,度量两个向量之间的相似性是一项重要的任务。
欧氏距离和余弦相似度是常用的度量方法,本文将比较这两种方法的特点和应用,并讨论它们在实际问题中的优缺点。
一、欧氏距离的定义和应用欧氏距离是空间中两个点之间的直线距离。
它的计算方法简单直观,适用于多个领域。
例如,在图像识别中,我们可以通过计算图像像素之间的欧氏距离来判断它们的相似性。
然而,欧氏距离对于数据的尺度敏感,当数据具有不同的尺度时,可能导致结果不准确。
此外,在高维空间中,欧氏距离的计算复杂度也会增加,影响算法的效率。
二、余弦相似度的定义和应用余弦相似度衡量的是两个向量之间的夹角余弦值。
它不受数据尺度的影响,可以更好地反映向量之间的方向关系。
在文本挖掘中,我们可以利用余弦相似度来计算文档之间的相似性,从而实现文本分类和推荐系统等任务。
此外,余弦相似度的计算简单高效,特别适用于处理稀疏向量。
三、欧氏距离与余弦相似度的比较1. 效果比较:欧氏距离适用于数值型数据,能够提供更准确的相似性度量。
而余弦相似度则适用于文本、图像等高维稀疏数据,能够更好地反映向量之间的方向关系。
2. 计算复杂度比较:欧氏距离的计算复杂度为O(n),其中n为向量的维度。
而余弦相似度的计算复杂度为O(1),不受向量维度的影响。
3. 尺度敏感性比较:欧氏距离对数据的尺度敏感,需要进行归一化处理,以避免结果偏差。
而余弦相似度不受数据尺度影响,可以直接比较向量之间的相似性。
欧氏距离和余弦相似度在不同的场景下具有不同的优势和应用。
在选择度量方法时,我们需要根据具体问题的特点和需求来决定使用哪种方法。
在实际应用中,我们也可以结合这两种方法,根据实际情况来选择最合适的度量方式。
结论:欧氏距离和余弦相似度是常用的度量方法,它们在不同的领域和问题中具有各自的优势。
欧氏距离适用于数值型数据,提供准确的相似性度量;而余弦相似度适用于高维稀疏数据,能够更好地反映向量之间的方向关系。
数据挖掘中的六类度量方法

数据挖掘中的度量方法在数据挖掘中,我们经常需要知道个体间差异的大小,进而进行分类或聚类。
相似度是描述两个个体数据的相似性,在数据挖掘中常用距离进行度量:距离近代表相似度高,相反距离远表示相似度低。
相似性是主观的而且十分依赖具体的领域和应用。
例如,两个人是因为他们姓氏相同而相似还是因为他们居住在同一座城市里而相似?相似性度量方法众多,但是没有任何一种方法能够度量所有数据,因此,根据不同的数据特性选择不同的度量方法显得尤为重要,对发掘出的数据内在联系影响极大。
接下来我们将列举一些数据挖掘中用距离度量的相似性度量方法,一般定义一个距离函数d(x, y),需要满足以下四个基本原则:到自己的距离为0:d(x, x) = 0。
距离非负:d(x, y) >= 0。
对称性:d(x, y) = d(y, x)。
三角形法则:d(x, z) + d(z, y) >= d(x, y)。
1. 闵可夫斯基距离(Minkowski distance )闵可夫斯基距离(Minkowski distance )是衡量数值点之间距离的一种非常常见的方法,假设数值点 P 和 Q 坐标如下:1212(,,...,),(,,...,)n n n P x x x Q y y y ==∈则P 和Q 之间的闵可夫斯基距离为:1/1p n p md i i i D x y =⎛⎫=- ⎪⎝⎭∑其中p=2时表示欧几里得距离(Euclidean distance ),p=1时表示曼哈顿距离(Manhattan distance )。
如图1所示,假设在曼哈顿街区乘坐出租车从 P 点到 Q 点,白色表示高楼大厦,灰色表示街道,绿色的斜线表示欧几里得距离,在现实中是不可能的。
其他三条折线表示了曼哈顿距离,这三条折线的长度是相等的。
而当p 趋近于无穷大时,上式则转化为切比雪夫距离(Chebyshev distance ),取极限有:1/11lim max p n np i i i i p i i x y x y →∞==⎛⎫-=- ⎪⎝⎭∑图1 欧几里得距离与曼哈顿距离示例闵可夫斯基距离比较直观,但是它与数据的分布无关,具有一定的局限性,如果 x 方向的幅值远远大于 y 方向的值,这个距离公式就会过度放大 x 维度的作用。
皮尔逊相关法和平方欧式距离

皮尔逊相关法和平方欧式距离引言皮尔逊相关法和平方欧式距离是数据分析和机器学习领域中常用的两种相似度度量方法。
它们可以用于比较和评估两个向量之间的相似程度。
本文将详细介绍这两种方法的原理、计算公式以及应用领域,并分析它们的优缺点。
一、皮尔逊相关法1.1 概述皮尔逊相关法是用来度量两个变量之间线性关系强度的一种统计方法。
它通过计算两个变量的协方差和各自的标准差,得到相关系数。
相关系数的取值范围在-1到1之间,接近1表示变量间存在强正相关关系,接近-1表示变量间存在强负相关关系,接近0表示变量间不存在线性关系。
1.2 计算公式皮尔逊相关系数的计算公式为:r=∑(X−X‾)n(Y−Y‾)√∑(X i−X‾)2ni=1√∑(Y i−Y‾)2ni=1其中,X i和Y i分别为两个变量的第i个观测值,X‾和Y‾分别为两个变量的均值。
1.3 应用领域皮尔逊相关法广泛应用于统计学、数据分析和机器学习领域。
它可以用来研究变量之间的关联性、评估预测模型的拟合程度,以及筛选特征变量等。
二、平方欧式距离2.1 概述平方欧式距离是一种计算两个向量之间距离的方法。
它基于欧式距离的思想,但对距离的计算进行了平方处理。
平方欧式距离的值越小,表示两个向量越接近。
2.2 计算公式平方欧式距离的计算公式为:nd=∑(X i−Y i)2i=1其中,X i和Y i分别为两个向量的第i个分量。
2.3 应用领域平方欧式距离常用于聚类分析、数据挖掘和模式识别等领域。
它可以用来度量数据点之间的相似度,从而帮助我们发现数据中的分组结构。
三、皮尔逊相关法与平方欧式距离的比较3.1 相似度与距离的区别皮尔逊相关法和平方欧式距离分别用于度量相似度和距离。
相似度越大表示两个变量或向量越相似,而距离越小表示两个变量或向量越接近。
3.2 公式差异皮尔逊相关系数通过计算协方差和标准差得到,而平方欧式距离只需计算各分量的差值平方和。
因此,皮尔逊相关法更加关注变量间的线性关系,而平方欧式距离更加关注变量间的差异程度。
相似度度量

相似度度量之后准备进攻推荐算法,今天先从相似度度量开始。
总结了一下在机器学习时候用的所有用到的相似度度量以及使用代码,后续还会继续更新。
所介绍的相似度如下:1. 欧氏距离2. 曼哈顿距离3. 切比雪夫距离4. 闵可夫斯基距离5. 标准化欧氏距离6. 马氏距离7. 夹角余弦8. 汉明距离9. 杰卡德距离 & 杰卡德相似系数10. 相关系数 & 相关距离11. 信息熵曼哈顿距离曼哈顿距离也叫出租车距离,用来标明两个点在标准坐标系上的绝对轴距总和。
公式如下:想象你在曼哈顿要从一个十字路口开车到另外一个十字路口,驾驶距离是两点间的直线距离吗?显然不是,除非你能穿越大楼。
实际驾驶距离就是这个“曼哈顿距离”。
而这也是曼哈顿距离名称的来源,曼哈顿距离也称为城市街区距离(City Block distance)。
欧氏距离和曼哈顿距离的区别在于:它们对向量之间差异的计算过程中,各个维度差异的权值不同。
比如两个向量A(1,2),B(4,8),它们的:欧氏距离 L_o = 6.7;曼哈顿距离 L_m = 9;向量各个属性之间的差距越大,则曼哈顿距离越接近欧式距离。
### 曼哈顿距离# 计算两点之间的距离def ManhattanDist(A,B):return sum(abs(A-B))# return math.sqrt(sum([(a - b)**2 for (a,b) in zip(A,B)]))X = np.array([1,2,3,4])Y = np.array([3,3,2,7])print(ManhattanDist(X,Y))欧氏距离欧氏距离就是欧几里得距离(Euclidean Distance)欧氏距离是最常见的距离度量,衡量的是多维空间中各个点之间的绝对距离。
公式如下:欧氏距离虽然很有用,但也有明显的缺点。
它将样本的不同属性(即各指标或各变量量纲)之间的差别等同看待,这一点有时不能满足实际要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
。 第 10 页
一个样本点
到重心点
马氏距离。等价于求压缩后的坐标系中该样本点
坐标系里重心点
的欧式距离。因此:
的 到压缩后的
如果 x 是列向量,那么:
如果并把上文中的重心点
改为任意一个其它的样
本点 y,则可以得到 x 和 y 两个样本点之间的马氏距离公式为:
想象你在曼哈顿要从一个十字路口 开车到另外一个十字路口,
驾驶距离是两点间的直线距离吗? 显然不是,除非你能穿越大楼。 实际驾驶距离就是这个“曼哈顿距离”
【上图中,绿色线代表的是欧氏距离,其余红黄蓝三条线代表的都是曼哈顿距离。】 二维平面两点 a(x1,y1)与 b(x2,y2)间的曼哈顿距离:
两个 n 维向量 a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的曼哈顿距离:
3. # solution1
4. def StaEucDistance1(vec1, vec2):
5.
sk=np.var(np.vstack([vec1, vec2]),axis=0,ddof=1)
6.
# ddof=0 provides a maximum likelihood estimate of the variance
两个 n 维向量 a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的欧氏距离:
也可以用表示成向量运算的形式:
欧氏距离计算代码:
1. import numpy as np
2. from scipy.spatial.distance import pdist
3. # solution1
曼哈顿距离计算代码:
1. import numpy as np
2. from scipy.spatial.distance import pdist
3. # solution1
4. def ManhDistance1(vec1, vec2):
5.
dist = np.sum(np.abs(vec1 - vec2))
因为计算是基于各维度的绝对数值,所以欧氏度量需要保证各维度指标在相同的刻度 级别。例如房价预测问题中,房屋的面积(m2)和房间数量(个),如果直接使用欧氏距离可 能使结果具有极大偏差,因此,对于维度为不同单位的距离测量,使用时可进行标准化 (归一化)处理。
假设样本集 X 的均值(mean)为 m,标准差(standard deviation)为 s,那么 X 的“标准化变量”表示为:
换言之,除非正好
,否则我们一定有:
,
第4页
那么,究竟分母应该设置为多少呢? 继续推导:
因此,当
时,无偏的方差估计为:
那么无偏的标准差估计为:
第5页
二、曼哈顿距离
出租车几何(Taxicab geometry)曼哈顿距离(Manhattan Distance)是由十九世 纪的赫尔曼·闵可夫斯基所创词汇,用以标明两个点在标准坐标系上的绝对轴距总和。
标准化后的值 = ( 标准化前的值 - 分量的均值 ) / 分量的标准差(无偏)
经过推导就可以得到两个 n 维向量 a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的标
准化欧氏距离的公式:
标准欧氏距离计算代码:
1. import numpy as np
2. from scipy.spatial.distance import pdist
两个 n 维变量 a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的闵可夫斯基距离定义为:
也可写成
当 p=1 时,就是曼哈顿距离 当 p=2 时,就是欧氏距离 当 p→∞时,就是切比雪夫距离 根据变参数的不同,闵氏距离可以
表示一类的距离。
闵可夫斯基距离计算代码: dist = pdist(np.vstack([vec1, vec2]),metric='minkowski', p=3) [scipy.spatial.distance] 第8页
15.
16.p = np.array([1,2,3,4])
17.q = np.array([9,8,7,6])
18. print(EucDistance1(p,q))
19. print(EucDistance2(p,q))
20. print(EucDistance3(p,q))
第2页
标准化欧氏距离 (Standardized Euclidean distance )
6.
return dist
7. #solution2
8. def ChebyDistance2(vec1, vec2):
9.
dist = pdist(np.vstack([vec1, vec2]),metric='chebyshev')
10. return dist[0] # type(dist) == ndarray
7.
#
for normally distributed variables.
8.
# ddof=1 provides an unbiased estimator of the variance
9.
#
of a hypothetical infinite population.
10. dist = np.sqrt(np.sum(np.square(vec1 - vec2)/sk))
16.
17.p = np.array([1,2,3,4])
18.q = np.array([9,8,7,6])
19. print(StaEucDistance1(p,q))
20. print(StaEucDistance2(p,q))
这里使用的是无偏差的标准差(ddof = 1)公式为:
第3页
为什么样本方差(sample variance)的分母是 N-1?
11.
12.p = np.array([1,2,3,4])
13.q = np.array([9,8,7,6])
14. print(ManhDistance1(p,q))
15. print(ManhDistance2(p,q))
第6页
三、切比雪夫距离
切比雪夫距离(Chebyshev Distance)的定义是其各坐标数值差绝对值的最大值。
国际象棋棋盘上两个位置之间 的切比雪夫距离,给出了国王需要 在它们之间移动的最少移动次数。
国王可以上下左右移动, 也可以对角地移动。
二维平面两点 a(x1,y1)与 b(x2,y2)间的切比雪夫距离: 两个 n 维向量 a(x11,x12,…,x1n)与 b(x21,x22,…,x2n)间的切比雪夫距离: 这个公式的另一种等价形式:
目录 − 欧几里得距离 − 曼哈顿距离 − 切比雪夫距离 − 闵可夫斯基距离 − 马氏距离 − 余弦距离 − 皮尔逊相关系数 − 杰卡德相似系数 − 汉明距离 − 信息熵 − Reference
第1页
一、欧几里得距离
欧几里得度量(Euclidean metric)(也称欧氏距离)是最易于理解的一种距离计 算方法,源自欧氏空间中两点间的距离公式,指在 m 维空间中两个点之间的真实距离, 或者向量的自然长度(即该点到原点的距离),在二维和三维空间中的欧氏距离就是两点 之间的实际距离。 二维平面上两点 a(x1,y1)与 b(x2,y2)间的欧氏距离:
11.
12.p = np.array([1,2,3,4])
13.q = np.array([9,8,7,6])
14. print(ChebyDistance1(p,q))
15. print(ChebyDistance2(p,q))
第7页
四、闵可夫斯基距离
闵可夫斯基距离(Minkowski Distance)(闵氏距离)不是一种距离,而是一组距 离的定义。
马氏距离优缺点: 优点: 1. 不受量纲的影响,两点之间的马氏距离与原始数据的测量单位无关,由标准化数据和
其中每一行表示一个测试样本(共 n 个)每一列表示样本的一个维度(共 m 个) 以列向量形式表示为: 样本的总体均值为: 其协方差为:
假设将原始数据集 X 通过坐标旋转矩阵 U 旋转到新的坐标系中得到 F,那么
由于将数据集旋转后数据的各维度之间是不相关的, 新数据集 F 的均值记为 其协方差为:
其中每个 λi 就是每个维度值的方差。
五、马氏距离
使用闵氏距离时,当变量之间的尺度不一样时,会造成很大的误差。很多情况下,需 要使用归一化对它进行处理。如果不同维度之间具有相关性时,归一化的效果就不好了。 如下图只在 X 轴和 Y 轴归一化,则达不到很好的效果。
要想达到很好的效果,理想的正则化方法是沿 45°-135°方向对数据缩放(正则化), 因此,印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出了马氏距离(Mahalanobis Distance)。
马氏距离是欧氏距离的一种推广,它通过协方差来计算两点之间距离,是一种有效的 计算两个未知样本集的相似度的方法。马氏距离分为两个步骤:
1、坐标旋转:使旋转后的各个维度之间线性无关,该旋转过程就是主成分分析过程。
2、数据压缩:所以将不同的维度上的数据压缩成为方差都是 1 的数据集。 计算公式:
一个多元向量
11. return dist
12.# solution2
13.def StaEucDi dist = pdist(np.vstack([vec1, vec2]),metric='seuclidean')
15. return dist[0] # type(dist) == ndarray