机器学习中的距离与相似度度量
两组数据相似度计算方法
两组数据相似度计算方法(实用版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)欧氏距离是最常见的距离度量,衡量的是多维空间中各个点之间的绝对距离。
公式如下:欧氏距离虽然很有用,但也有明显的缺点。
它将样本的不同属性(即各指标或各变量量纲)之间的差别等同看待,这一点有时不能满足实际要求。
距离测度与相似度测度的比较论文素材
距离测度与相似度测度的比较论文素材距离测度与相似度测度的比较在数据分析、机器学习和模式识别领域中,距离测度和相似度测度是两个常用的计算方法。
它们在寻找样本之间的关系、分类和聚类等任务中起着重要的作用。
本文将探讨距离测度和相似度测度的特点,并对它们进行比较。
一、距离测度距离测度是用来衡量两个样本之间的差异或相似性的方法。
常见的距离测度包括欧氏距离、曼哈顿距离和闵可夫斯基距离等。
欧氏距离是最常用的距离测度之一。
它通过计算两个样本间相应维度的差值的平方和的平方根来衡量其距离。
欧氏距离计算公式如下:d(x, y) = √[∑(xi - yi)²]其中,xi和yi分别代表样本x和样本y的某个特征的取值。
欧氏距离越小,说明两个样本的特征越相似。
曼哈顿距离是另一种常见的距离测度。
它通过计算两个样本间相应维度的差值的绝对值和来衡量其距离。
曼哈顿距离计算公式如下:d(x, y) = ∑|xi - yi|与欧氏距离相比,曼哈顿距离更适合于特征具有明显分割的情况。
闵可夫斯基距离是欧氏距离和曼哈顿距离的推广。
它可以根据具体需求调节参数来控制距离的形式。
闵可夫斯基距离计算公式如下:d(x, y) = (∑(|xi - yi|)ᵖ)^(1/p)其中,p是一个可调的参数。
当p=1时,等价于曼哈顿距离;当p=2时,等价于欧氏距离。
二、相似度测度相似度测度是用来衡量两个样本之间的相似程度的方法。
相似度测度的结果通常在0到1之间,越接近1表示两个样本越相似,越接近0表示两个样本越不相似。
常用的相似度测度包括余弦相似度、相关系数和Jaccard相似系数等。
余弦相似度是用来衡量两个样本在向量空间中的夹角的方法。
余弦相似度计算公式如下:sim(x, y) = (x·y) / (||x|| · ||y||)其中,x和y分别代表样本x和样本y在向量空间上的向量表示。
相关系数是用来衡量两个样本变量之间关联程度的方法。
机器学习中的度量学习理论与方法研究
机器学习中的度量学习理论与方法研究机器学习是当今信息时代的重要领域之一,它涉及到大量的算法和模型。
在机器学习领域中,度量学习是一种非常重要的理论和方法,它为我们提供了一种有效的方式来评估和比较不同的数据。
本文将简要介绍度量学习在机器学习中的作用及其研究现状。
一、度量学习的定义与意义度量学习(metric learning)是一种机器学习方法,它致力于通过学习距离或相似度度量(metric或distance)来使数据具有更好的分类性能、聚类性能、回归性能等等。
度量学习的重要性在于它可以将不同特征之间的距离(或相似度)转化为可操作的数据。
具体来说,度量学习通过学习对距离度量矩阵的优化,为不同的数据提供了精细的度量方式。
而且,度量学习还可以结合监督和无监督学习技术来提高模型的泛化性能,同时降低模型的复杂性。
二、度量学习的分类在机器学习中,度量学习可以分为多种。
以下是度量学习的几种典型分类。
1、基于实例的度量学习基于实例的度量学习(instance-based distance metric learning)是一种无监督学习方法,它通过学习数据实例之间的距离来支持分类等任务。
在这种方法中,每个数据实例都被看作是一个独立的元素,而且它们之间的距离可以被用来解释不同的数据。
这种方法可以允许我们通过考虑不同实例之间的相似性来实现迁移学习和多任务学习等任务。
2、度量学习流形度量学习流形(metric learning on manifolds)是一种拓扑方法,它被用来捕获数据的内在结构和减少维度。
这种方法既可以通过监督学习来生成标记数据,也可以通过学习无标记数据来构造几何流形。
这种方法特别适用于处理图像、语音以及自然语言处理等任务。
3、核度量学习核度量学习(kernel metric learning)是一种数据驱动方法,它根据核函数的性质构建度量矩阵,并对不同的数据点进行距离计算。
这种方法优点在于它能够灵活地选择核函数,同时避免了数据高维度问题,从而具有较好的性能和效率。
简述基于距离的分类算法
简述基于距离的分类算法一、引言基于距离的分类算法是机器学习中常用的一种分类方法,它通过计算不同样本之间的距离来确定样本之间的相似度,从而将它们分为不同的类别。
本文将从以下几个方面对基于距离的分类算法进行详细介绍。
二、基本概念1. 距离度量:在基于距离的分类算法中,需要定义不同样本之间的距离度量方法。
常用的方法有欧氏距离、曼哈顿距离、切比雪夫距离等。
2. 样本空间:指所有样本组成的空间,每个样本都可以看作该空间中一个点。
3. 样本特征:指每个样本所具有的特征或属性,如身高、体重等。
三、KNN算法KNN(K-Nearest Neighbor)算法是基于距离度量来进行分类和回归分析的一种非参数性统计方法。
它通过计算未知样本与已知样本之间的距离来找到最近邻居,并将未知样本归入与其最近邻居相同的类别中。
KNN算法具有简单易懂、效果好等优点,在实际应用中得到了广泛的应用。
四、K-means算法K-means算法是一种基于距离度量的聚类算法,它将样本空间划分为k个簇,每个簇包含距离最近的k个样本。
在算法开始时,需要随机选择k个样本作为初始中心点,然后计算所有样本与这些中心点之间的距离,并将每个样本归入距离最近的簇中。
接着重新计算每个簇的中心点,并重复以上步骤直到达到收敛条件。
K-means算法具有较高的效率和准确性,在数据挖掘和图像处理等领域得到了广泛应用。
五、DBSCAN算法DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法。
它通过计算每个样本周围其他样本的密度来确定该样本所属于的簇,并将密度较小的点归为噪声点。
在DBSCAN算法中,需要定义两个参数:邻域半径和最小密度。
邻域半径表示一个点周围所包含其他点的最大距离,而最小密度表示一个簇所包含点数目的下限值。
DBSCAN算法具有处理复杂数据集、不受初始化影响等优点,在图像处理和数据挖掘等领域得到了广泛应用。
机器学习的常见模型
机器学习的常见模型机器学习任务中常见的⽅法有:决策树学习,关联规则学习,⼈⼯神经⽹络,深度学习,归纳逻辑设计,⽀持向量机,聚类,贝叶斯⽹络,强化学习,表⽰学习,相似度和度量学习,稀疏字典学习,遗传算法等。
⼀、决策树学习决策树学习就是根据数据的属性采⽤树状结构建⽴的⼀种决策模型,可以⽤此模型解决分类和回归问题。
常见的算法包括CART,ID3,C4.5等。
可以根据数据集来构建⼀颗决策树,他的重要任务就是根据数据中所蕴含的知识信息并提取出⼀系列的规则,这些规则就是树结构的创建过程。
决策树算法主要是指决策树进⾏创建中进⾏树分裂(划分数据集)的时候选取最优特征的算法,他的主要⽬的就是要选取⼀个特征能够将分开的数据集尽量的规整,也就是尽可能的纯。
最⼤的原则就是:将⽆序的数据变得更加有序。
常⽤的三个⽅法:信息增益增益⽐率基尼不纯度1、信息增益这⾥涉及到了信息论的⼀些概念:某个时间的信息量,信息熵,信息增益等。
a、某事件的信息量:这个事件发⽣的概率的负对数b、信息熵就是平均⽽⾔,⼀个事件发⽣得到的信息量⼤⼩,也就是信息量的期望值c、信息增益将⼀组数据集进⾏划分后,数据的信息熵会发⽣变化,我们可以通过使⽤信息熵的计算公式分别计算被划分的⼦数据集的信息熵并计算他们的平均值(期望值)来作为分割后的数据集的信息熵。
新的信息熵相⽐未划分数据的信息熵的减⼩值就是信息增益了。
假设我们将数据集D划分成k份D1,D2,...,Dk,则划分后的信息熵为:信息增益就是就两个信息熵的差值2、增益⽐率增益⽐率是信息增益⽅法的⼀种扩展,是为了克服信息增益带来的弱泛化的缺陷。
因为按照信息增益的选择,总是会倾向于选择分⽀多的属性,这样会使得每个⼦集的信息熵最⼩。
例如给每个数据添加独⼀⽆⼆的ID值特征,则按照这个ID值进⾏分类是获得信息增益最⼤的,这样每个⾃⼰中的信息熵都是0,但是这样的分类没有任何意义,没有任何泛化能⼒,类似于过拟合。
因此可以引⼊⼀个分裂信息找到⼀个更合适的衡量数据划分的标准,即增益⽐率。
knn加权法例子
knn加权法例子KNN加权法是一种常用的机器学习算法,它在分类问题中具有很好的性能。
KNN是K-Nearest Neighbors的缩写,意为K个最近邻居。
其核心思想是基于训练数据中与待分类样本最相似的K个样本来进行分类。
KNN算法的主要步骤如下:1. 准备数据集:收集训练集数据,包括已知分类的样本数据和其对应的标签。
2. 选择K值:确定邻居的数量K,通常通过交叉验证等方法来选择最合适的K 值。
3. 计算距离:对于待分类样本,计算其与训练集中每个样本的距离。
常用的距离度量方法有欧氏距离、曼哈顿距离等。
4. 选择最近邻居:根据计算得到的距离,选择前K个距离最近的样本作为最近邻居。
5. 进行加权:根据邻居样本的距离,为每个邻居样本分配一个权重,距离越近权重越大。
6. 进行分类:根据邻居样本的权重,统计分类数量,并根据最大数量来判断待分类样本属于哪个类别。
下面以一个简单的例子来说明KNN加权法的应用。
假设我们想要对一组电影进行分类,已知训练集中包含一些电影的特征(如导演、演员、类型等)和对应的观众评分(1-5星)。
我们希望根据这些特征来预测一部未知电影的评分。
首先,我们选择K=5,计算待分类电影与训练集中每个电影的相似度。
假设我们使用欧氏距离作为相似度度量方法,计算得到五个最近邻居的距离。
然后,根据距离进行加权处理,较近的电影权重越大。
最后,根据加权后的邻居样本进行分类,即统计各个评分等级的数量,并选择数量最多的评分作为待分类电影的预测评分。
KNN加权法在许多领域中都有广泛的应用,如推荐系统、图像识别等。
通过找到与待分类样本最相似的K个样本,并使用加权法进行分类,KNN算法能够帮助我们在无标签数据集中进行分类问题的解决。
8种相似度度量方式的原理及实现
8种相似度度量方式的原理及实现相似度度量是比较两个对象之间相似程度的一种方法。
在机器学习、数据挖掘和自然语言处理中,相似度度量广泛应用于聚类、分类、检索等任务。
本文将介绍8种常用的相似度度量方式的原理及实现。
1. 欧氏距离(Euclidean Distance):原理:欧氏距离是最常见的相似度度量方式之一,它衡量两个向量之间的直线距离。
对于给定的向量a和b,欧氏距离的计算公式为:sqrt(sum((a[i]-b[i])**2)),其中i为维度的索引。
实现:可以使用numpy库中的`numpy.linalg.norm`函数来计算欧氏距离。
2. 曼哈顿距离(Manhattan Distance):原理:曼哈顿距离是另一种常见的相似度度量方式,它衡量两个向量之间的曼哈顿距离或城市街区距离,即两点之间沿坐标轴的绝对距离之和。
对于给定的向量a和b,曼哈顿距离的计算公式为:sum(abs(a[i]-b[i])),其中i为维度的索引。
实现:可以使用numpy库中的`numpy.linalg.norm`函数,将参数`ord`设置为1来计算曼哈顿距离。
3. 余弦相似度(Cosine Similarity):原理:余弦相似度度量两个向量的夹角余弦值,而不是像欧氏距离一样衡量向量的绝对距离。
余弦相似度的计算公式为:dot(a, b) /(norm(a) * norm(b)),其中dot为向量的点积,norm为向量的范数或长度。
实现:可以使用numpy库中的`numpy.dot`函数和`numpy.linalg.norm`函数来计算余弦相似度。
4. 皮尔逊相关系数(Pearson Correlation Coefficient):原理:皮尔逊相关系数度量两个变量之间的线性关系强度和方向,其取值范围为[-1, 1]。
与余弦相似度不同,皮尔逊相关系数考虑了向量的线性相关性。
皮尔逊相关系数的计算公式为:cov(a, b) / (std(a) * std(b)),其中cov为协方差,std为标准差。
机器学习中的度量——向量距离
机器学习中的度量——向量距离机器学习是时下流⾏AI 技术中⼀个很重要的⽅向,⽆论是有监督学习还是⽆监督学习都使⽤各种“度量”来得到不同样本数据的差异度或者不同样本数据的相似度。
良好的“度量”可以显著提⾼算法的分类或预测的准确率,本⽂中将介绍机器学习中各种“度量”,“度量”主要由两种,分别为距离、相似度和相关系数,距离的研究主体⼀般是线性空间中点;⽽相似度研究主体是线性空间中向量;相关系数研究主体主要是分布数据。
本⽂主要介绍距离。
1 向量距离1.1 欧式距离¬——从勾股定理⽽来让我回忆⼀下中学时候学过的勾股定理,历史悠久的勾股定理告诉了如果在⼀个直⾓三⾓形中两条直⾓边分别为a 和b ,那么斜边c 和a 、b 的关系⼀定满⾜c 2=a 2+b 2图1 勾股定理图2 成书于宋⾦时期《测圆海镜》中的⼗五个勾股形从直观上将,图2中两个点距离是蓝线的长度,⽽使⽤勾股定理可以计算出如图2的两个数据点之间距离。
图3 可汗学院距离教程中样例根据勾股定理很容易求出上⾯两个点距离为如下式⼦表⽰:这个最直观的距离还有⼀个正式称呼,欧⼏⾥得距离(Euclidean distance),上⾯是⼆维空间中欧式距离,更为⼀般的情况为:在笛卡尔坐标系(Cartesian Coordinates)中如果点x = (x1, x2,..., xn) 和点 y = (y1, y2, ..., yn) 是两个欧式空间的点,则点x 和点y 的欧式距离为:d Euclidean (x ,y )=d Euclidean (y ,x )=x 1−y 12+x 2−y 22+⋯+x n −y n 2=n∑i =1x i −y i 2 笛卡尔坐标系: ⼀种正交坐标系。
参阅图4,⼆维的直⾓坐标系是由两条相互垂直、相交于原点的数线构成的。
在平⾯内,任何⼀点的坐标是根据数轴上对应的点的坐标设定的图4 ⼀个直⾓坐标系1.2 曼哈顿距离¬¬——⾏⾛在纽约曼哈顿街道上曼哈顿距离(Manhattan distance)是由⼗九世纪的赫尔曼·闵可夫斯基所创辞汇,⽤以标明两个点上在标准坐标系上的绝对轴距之总和。
faiss的8种度量方法
faiss的8种度量方法Faiss是一种常用的用于高维向量相似性搜索的开源库。
它提供了8种度量方法,用于衡量向量之间的相似性。
在本文中,我们将介绍这8种度量方法的原理和应用。
1. L2距离(Euclidean distance)L2距离是最常用的度量方法之一。
它计算向量之间的欧氏距离,即两个向量之间的直线距离。
L2距离适用于具有相同维度的向量,并且在空间中的距离较大。
在Faiss中,可以使用L2距离度量方法来搜索最接近给定向量的邻居。
2. 内积(Inner product)内积度量方法计算两个向量之间的点积。
它适用于表示向量之间的相似性,而不是距离。
内积度量方法在许多机器学习任务中都有广泛的应用,如推荐系统和文本分类。
3. L1距离(Manhattan distance)L1距离是计算向量之间的曼哈顿距离的度量方法。
它计算两个向量之间的绝对差值之和。
L1距离适用于稀疏向量和具有离散特征的向量。
在Faiss中,可以使用L1距离度量方法来搜索最接近给定向量的邻居。
4. Jaccard相似度(Jaccard similarity)Jaccard相似度是计算两个集合之间相似性的度量方法。
它通过计算两个集合的交集与并集的比值来衡量相似性。
Jaccard相似度适用于文本分类和推荐系统等任务。
5. Hamming距离Hamming距离是计算两个等长字符串之间的距离的度量方法。
它计算两个字符串之间不同位置的字符个数。
Hamming距离适用于处理二进制向量和文本分类任务。
6. Tanimoto相似度(Tanimoto similarity)Tanimoto相似度是计算两个二进制向量之间相似性的度量方法。
它通过计算两个向量的交集与它们的并集的比值来衡量相似性。
Tanimoto相似度在图像处理和文本分类中有广泛的应用。
7. Substructure距离Substructure距离是计算两个化学分子之间相似性的度量方法。
特征抽取中的距离度量与相似性计算指南
特征抽取中的距离度量与相似性计算指南在机器学习和数据挖掘领域,特征抽取是一个关键的步骤,它用于将原始数据转化为可供机器学习算法使用的特征向量。
而距离度量和相似性计算则是特征抽取中的重要环节,它们用于衡量不同样本之间的相似性或差异性。
本文将为您介绍特征抽取中的距离度量与相似性计算的一些指南。
一、欧氏距离欧氏距离是最常用的距离度量方法之一,它衡量了两个样本在特征空间中的几何距离。
对于两个n维特征向量x和y,欧氏距离的计算公式为:d(x, y) = sqrt((x1 - y1)^2 + (x2 - y2)^2 + ... + (xn - yn)^2)其中,xi和yi分别表示向量x和y在第i个维度上的取值。
欧氏距离越小,表示两个样本越相似。
二、曼哈顿距离曼哈顿距离是另一种常用的距离度量方法,它衡量了两个样本在特征空间中的城市街区距离。
对于两个n维特征向量x和y,曼哈顿距离的计算公式为:d(x, y) = |x1 - y1| + |x2 - y2| + ... + |xn - yn|曼哈顿距离也被称为L1距离,它忽略了特征之间的相关性,只考虑了各个维度上的差异。
曼哈顿距离越小,表示两个样本越相似。
三、余弦相似度余弦相似度是一种常用的相似性计算方法,它衡量了两个样本之间的夹角余弦值。
对于两个n维特征向量x和y,余弦相似度的计算公式为:sim(x, y) = (x * y) / (||x|| * ||y||)其中,sim(x, y)表示向量x和y的余弦相似度,x * y表示向量x和y的内积,||x||和||y||表示向量x和y的模长。
余弦相似度的取值范围在[-1, 1]之间,越接近1表示两个样本越相似。
四、编辑距离编辑距离是一种用于衡量两个字符串之间的相似性的距离度量方法,它衡量了通过插入、删除和替换操作将一个字符串转化为另一个字符串所需的最小操作次数。
编辑距离可以应用于文本分类、拼写纠错等任务中。
计算编辑距离的方法有多种,常见的有莱文斯坦距离和最长公共子序列距离。
平推法分类
平推法分类引言在机器学习领域中,分类是一个重要的任务之一。
分类是指将数据分为不同的类别或群组的过程。
平推法分类是一种常用的分类方法之一,它基于计算实例之间的相似度或距离来确定它们的分类。
平推法分类的基本概念平推法分类是一种基于实例的学习方法。
它的基本思想是将未知实例的类别推测为与训练集中的某些实例相似的类别。
平推法分类的关键步骤包括选择相似度或距离度量、选择近邻数目和确定分类决策规则。
选择相似度或距离度量在平推法分类中,选择合适的相似度或距离度量是非常重要的。
相似度或距离度量可以衡量两个实例之间的相似程度或差异程度。
常用的度量方法包括欧氏距离、曼哈顿距离、余弦相似度等。
选择合适的度量方法取决于数据的特点和分类任务的要求。
选择近邻数目选择近邻数目是平推法分类中的一个关键问题。
近邻数目决定了在分类时考虑多少个最接近未知实例的训练集实例。
选择合适的近邻数目需要考虑到数据样本的数量和分布、分类问题的复杂程度等因素。
确定分类决策规则在平推法分类中,确定分类决策规则是最后一个关键步骤。
分类决策规则根据最近邻实例的类别来判断未知实例的类别。
常见的分类决策规则包括多数表决规则、加权多数表决规则等。
合适的分类决策规则取决于分类问题的具体要求和实际应用场景。
平推法分类的应用领域平推法分类在实际应用中有着广泛的应用。
以下是一些常见的应用领域:电子商务在电子商务中,平推法分类可以用于商品推荐和用户个性化定制。
根据用户的购买历史、浏览记录和兴趣偏好,可以将用户分为不同的类别,并推荐与其兴趣相似的商品。
金融风控在金融风控领域,平推法分类可以用于识别欺诈交易和不良借款。
根据交易记录、借款信息和用户行为特征,可以将交易和借款行为分为正常和异常类别,从而识别潜在的风险。
医学诊断在医学诊断中,平推法分类可以用于辅助医生进行疾病诊断和治疗方案选择。
通过分析病患的临床数据、影像资料和基因信息,可以将患者分为不同的病种,并根据相似病例的治疗结果推荐合适的治疗方案。
欧与k欧计算方式
欧与k欧计算方式欧几里得距离(欧氏距离)和K欧几里得距离是常用的相似度计算方法。
它们都是衡量样本之间相似程度的度量指标。
在各个领域中,比如机器学习、数据挖掘和模式识别等,这两种距离计算方式是非常重要的工具。
首先,我们先来了解一下欧几里得距离(Euclidean Distance)。
欧几里得距离是指在空间中,两个点之间的直线距离。
我们可以通过计算两个点的坐标之差的平方和开根号来得到欧几里得距离。
具体计算公式为:√((x2-x1)²+(y2-y1)²)。
这个计算公式源自欧几里得的几何理论,非常直观和易于理解。
接下来,让我们了解一下K欧几里得距离(K-Euclidean Distance)。
K欧几里得距离是欧几里得距离的扩展。
它用于计算样本之间的相似度,特别是在聚类分析中。
与欧几里得距离不同的是,K欧几里得距离不仅仅考虑了目标样本与一个样本的距离,而是考虑了目标样本与K个最近样本的平均距离。
这种方法可以有效地减少噪声对距离计算的影响,并提高相似度评估的准确性。
那么,在什么情况下我们应该使用欧几里得距离或者K欧几里得距离呢?这要根据具体的应用场景来决定。
一般来说,如果数据的特征维度较小,且数据之间的差异相对较小,我们可以选择使用欧几里得距离。
因为欧几里得距离可以快速计算出样本之间的相似度,同时也具有直观性和易解释性。
而当数据的特征维度较大,数据之间的差异相对较大时,我们可以选择使用K欧几里得距离。
K欧几里得距离在计算相似度时,考虑了多个最近邻样本的平均距离,可以更好地反映样本之间的相似程度。
总结起来,欧几里得距离和K欧几里得距离是常用的相似度计算方法。
在选择使用哪种方法时,我们需要考虑特征维度、数据差异性以及具体的应用场景。
欧几里得距离适用于维度较小且差异不大的数据,而K欧几里得距离适用于维度较大且差异较大的数据。
通过灵活运用这两种距离计算方法,我们可以更好地评估样本之间的相似度,从而在数据分析和决策中起到指导作用。
numpy相似度计算
numpy相似度计算numpy是Python中一个强大的数值计算库,广泛应用于科学计算、数据分析和机器学习等领域。
其中,相似度计算是numpy的一个重要功能,它可以帮助我们衡量两个向量或矩阵之间的相似程度。
本文将介绍numpy相似度计算的原理、常用的相似度计算方法以及在实际应用中的案例。
一、numpy相似度计算的原理在介绍相似度计算方法之前,我们先来了解一下numpy中常用的向量和矩阵表示方法。
在numpy中,我们可以使用一维数组来表示向量,使用二维数组来表示矩阵。
向量和矩阵之间的相似度计算可以通过计算它们之间的距离或夹角来实现。
1. 距离度量距离度量是一种常用的相似度计算方法,它可以衡量两个向量或矩阵之间的差异程度。
常见的距离度量方法有欧氏距离、曼哈顿距离和切比雪夫距离等。
以欧氏距离为例,它可以通过计算两个向量或矩阵之间对应元素差的平方和开方来得到:$$d(x, y) = \sqrt{\sum_{i=1}^{n}(x_i-y_i)^2}$$其中,x和y分别表示两个向量或矩阵,n表示向量或矩阵的长度或大小。
2. 夹角余弦夹角余弦是另一种常用的相似度计算方法,它可以衡量两个向量或矩阵之间的夹角大小。
夹角余弦可以通过计算两个向量或矩阵之间的内积除以它们的模长的乘积来得到:$$\cos(\theta) = \frac{x \cdot y}{\|x\| \cdot \|y\|}$$其中,x和y分别表示两个向量或矩阵,$\|x\|$和$\|y\|$分别表示它们的模长。
二、常用的相似度计算方法在numpy中,我们可以使用numpy.linalg.norm函数来计算向量或矩阵的模长,使用numpy.dot函数来计算向量或矩阵的内积。
基于这些函数,我们可以实现常用的相似度计算方法。
1. 欧氏距离可以使用numpy.linalg.norm函数来计算向量或矩阵之间的欧氏距离。
下面是一个计算欧氏距离的示例代码:```pythonimport numpy as npx = np.array([1, 2, 3])y = np.array([4, 5, 6])distance = np.linalg.norm(x - y)print(distance)```2. 夹角余弦可以使用numpy.dot函数和numpy.linalg.norm函数来计算向量或矩阵之间的夹角余弦。
- 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