数据科学中使用的 17 种相似性和相异性度量 本文翻译至17 types of similarity and dissimilarity measures used in data science. 下面的文章解释了计算距离的各种方法,并在我们的日常生活中展示了它们的实例。此外,它还会向您介绍 pydist2 包。
“通向几何没有捷径。” ——欧几里得。快速说明:除非另有说明,所有书面和可视化内容均由作者创作。插图和方程是使用 Matplotlib、Tex、Scipy、Numpy 等工具生成的,并使用 GIMP 进行编辑。 引言 相似性和相异性(Similarity and dissimilarity) 在数据科学中,相似性度量是一种衡量数据样本如何相互关联或相互接近的方法。 另一方面,相异性度量是告诉数据对象有多少是不同的。此外,当相似的数据样本被分组到一个集群中时,这些术语通常用于聚类。 所有其他数据样本被分组到不同的样本中。它还用于分类(例如 KNN),根据特征的相似性对数据对象进行标记。另一个例子是当我们谈论与其他数据样本相比不同的异常值时(例如异常检测)。 相似性度量通常表示为一个数值:当数据样本越相似时它就越高。 它通常通过转换表示为零和一之间的数字:零表示相似度低(数据对象不相似)。 一是相似度高(数据对象非常相似)。 让我们举一个例子,其中每个数据点仅包含一个输入特征。 这可以被认为是显示三个数据点 A、B 和 C 之间差异的最简单示例。每个数据样本在一个轴上可以有一个值(因为我们只有一个输入特征); 让我们将其表示为 x 轴。 我们取两个点:A(0.5)、B(1) 和 C(30)。 可以看出,与 C 相比,A 和 B 彼此足够接近。因此,A 和 B 之间的相似性高于 A 和 C 或 B 和 C。换句话说,A 和 B 具有很强的相关性。 因此,距离越小,相似度就越大。 指标(Metric) 给定的距离(例如相异度)当且仅当它满足以下四个条件时才是一个度量:非负性:对于任意两个不同的观测值 p 和 q,d(p, q) ≥ 0。对称性:对于所有 p 和 q,d(p, q) = d(q, p)。三角形不等式:对于所有 p、q、r,d(p, q) ≤ d(p, r) + d(r, q)。仅当 p = q 时 d(p, q) = 0。 距离度量是分类的基本原则,例如 k 最近邻的分类器算法,它测量给定数据样本之间的差异性。此外,选择距离度量将对分类器的性能产生很大影响。 因此,计算对象之间距离的方式将在分类器算法的性能中发挥至关重要的作用。 距离函数 用于测量距离的技术取决于您正在处理的特定情况。 例如,在某些区域,欧氏距离可能是最佳的并且对于计算距离很有用。 其他应用程序需要更复杂的方法来计算点或观测值之间的距离,例如余弦距离。以下列举的列表表示计算每对数据点之间的距离的各种方法。 L2 范数,欧几里德距离。
欧几里得轮廓 用于数字属性或特征的最常见距离函数是欧几里得距离,其定义如下:
n 维空间中两点之间的欧氏距离。 如您所知,这个距离度量呈现出众所周知的属性,例如对称、可微、凸、球面等等。 在二维空间中,上式可以表示为:
二维空间中两点之间的欧氏距离 等于直角三角形斜边的长度。 此外,欧几里德距离是一种度量,因为它满足其标准,如下图所示。
欧几里得距离满足作为度量的所有条件。 此外,使用该公式计算的距离表示每对点之间的最小距离。 也就是说,它是从A点到B点的最短路径(二维直角坐标系),如下图所示:
欧几里德距离是最短路径(不包括量子世界中虫洞的情况) 因此,无论何时您想在路径上没有障碍物的情况下计算两点之间的距离,都可以使用此公式。 这可以被认为是您不想计算欧氏距离的情况之一; 相反,您想要使用其他度量标准,例如曼哈顿距离,这将在本文后面进行解释。 欧几里德距离无法为我们提供有用信息的另一种情况是飞机的飞行路径遵循地球曲率,而不是直线(除非地球是平的,但事实并非如此!)。 然而,在进一步讨论之前,我们先解释一下如何在机器学习的背景下使用欧几里德距离。 KNN 算法是最著名的分类算法之一,它可以受益于使用欧氏距离对数据进行分类。 为了演示 KNN 如何与欧几里得度量一起工作,选择了 Scipy 包中流行的 iris 数据集。 如您所知,该数据集包含三种花:Iris-Setosa、Iris-Versicolor 和 Iris-Virginica,具有以下四个特征:萼片长度、萼片宽度、花瓣长度、花瓣宽度。 因此,我们有一个 4 维空间,每个数据点都可以在其中表示。
两个特征空间中两种花的鸢尾花数据集 为了简单和演示的目的,我们只选择两个特征:花瓣长度、花瓣宽度和排除维吉尼亚鸢尾数据。 通过这种方式,我们可以在二维空间中绘制数据点,其中 x 轴和 y 轴分别代表花瓣长度和花瓣宽度。
训练数据集 每个数据点都有自己的标签:Iris-Setosa 或 Iris-versicolor(数据集中的 0 和 1)。 因此,该数据集可用于 KNN 分类,因为它本质上是一种有监督的 ML 算法。 假设我们的 ML 模型(k = 4 的 KNN)已在此数据集上进行训练,其中我们选择了两个输入特征和仅 20 个数据点,如上图所示。 到目前为止,一切看起来都很好,我们的 KNN 分类器已准备好对新数据点进行分类。 因此,我们需要一种方法让模型决定新数据点可以归类到哪里。
预测新数据点的标签。 正如您可能想到的那样,选择欧氏距离是为了让每个经过训练的数据点在新数据样本可以容纳的位置进行投票:Iris-Setosa 或 Iris-versicolor。 这样,新数据点到我们训练数据的每个点的欧几里得距离就计算出来了,如下图所示:
当k = 4时,KNN分类器需要选择最小的四个距离,这四个距离代表从新点到以下点的距离:point1、point5、point8和point9,如图所示:
四个邻居投票支持 Iris-Setosa。 因此,新的数据样本被分类为 Iris-Setosa。 使用这个类比,您可以想象更高的维度和其他分类器。 希望你明白了! 如前所述,每个域都需要特定的计算距离的方法。 随着本文的深入,您将了解这一点的含义。 欧氏距离平方 使用这种方法计算距离可以避免使用平方根函数。 顾名思义,SED 等于欧氏距离的平方。 因此,SED 在计算观测值之间的距离时可以减少计算工作。 例如,它可以用于聚类、分类、图像处理和其他领域。
n 维空间中两点之间的平方欧氏距离 L1 范数、城市街区、曼哈顿或出租车距离。
曼哈顿轮廓。 该指标对于测量给定城市中两条街道之间的距离非常有用,其中可以根据分隔两个不同地方的街区数量来测量距离。 例如,根据下图,A点和B点之间的距离大约等于4个块。
现实世界中的曼哈顿距离 创建此方法是为了解决计算给定城市中源点和目的地之间的距离的问题,在该城市中,由于建筑物分组为网格阻碍了直线路径,因此几乎不可能直线移动。 因此得名城市街区。 你可以说 A 和 B 之间的距离是欧几里德距离。 但是,您可能会注意到这个距离没有用。 例如,您需要有一个有用的距离来估计旅行时间或需要开车多长时间。 相反,如果您有使用街道的最短路径,将会有所帮助。 所以如何定义和使用距离取决于具体情况。 在n维空间中,曼哈顿距离表示为:
n 维空间中两点之间的曼哈顿距离。 对于二维网格,前面的公式可以写为:
二维空间中两点之间的曼哈顿距离。 回顾之前的 KNN 示例,计算从新数据点到训练数据的曼哈顿距离将产生以下值:
使用曼哈顿距离的 KNN 分类(并列!) 正如您所看到的,有两个数据点投票给了 Iris-Setosa,另外两个数据点投票给了 Iris-versicolor,这意味着平局。
曼哈顿距离:平局! 我想你可能在某个地方遇到过这个问题。 一个直观的解决方案是改变 k 的值,如果 k 大于 1,则减少 1,否则增加 1。 但是,对于前面的每个解决方案,您都会得到不同的 KNN 分类器行为。 例如,在我们的示例中,k=4。 将其更改为 k=3 将产生以下值:
将 k 减一。 并且该花已被归类为 Iris-versicolor。 以同样的方式,将其更改为 k=5 将导致以下值:
将 k 加一。 这朵花被归类为 Iris-Setosa。 因此,您可以决定是否需要增加或减少 k 的值。 然而,有人会争辩说,如果衡量指标不是问题的约束,那么您可以更改衡量指标。 例如,计算欧氏距离可以解决这个问题:
改变距离度量也会打破平局。 这种花被严格归类为鸢尾花。 在我看来,如果您不必更改曼哈顿距离并为 k 使用相同的值,则添加新的维度或特征(如果可用)也会打破平局。 例如,添加萼片宽度作为新尺寸将导致以下结果:
向模型添加新特征。 这种花被归类为鸢尾花。 这是 3-D 空间中的图,其中 x 轴、y 轴和 z 轴分别代表萼片宽度、花瓣长度和花瓣宽度:
Iris 数据集的 3-D 图。 计算曼哈顿距离在计算上比前两种方法更快。 正如公式所示,它只需要加法和减法,这比计算平方根和 2 的幂要快得多。 如果您曾经下过国际象棋,主教会使用曼哈顿距离来在相同颜色的两个水平或垂直块之间移动:
Bishop 使用的是曼哈顿距离(如果没看到,想象一下把棋盘旋转 45°)。 换句话说,让主教越过红色方块所需的移动次数(距离)等于曼哈顿距离,即 值是二。 除此之外,如果数据存在许多异常值,则曼哈顿距离将优于欧几里德距离。 此外,L1-范数比 l2-范数给出更稀疏的估计。 除此之外,L1-范数和 L2-范数通常用于神经网络的正则化中,以最小化权重或将某些值归零,就像套索回归中使用的那样。
Lasso和Ridge回归的约束区域的形式(来源:Wikipedia)。 正如您在上图中看到的,L1-范数尝试将 W1 权重归零并最小化另一个权重。 然而,L2-范数试图最小化 W1 和 W2 权重(如 W1 = W2)。 与此同时,我不希望本文深入探讨正则化,因为它的主要目标是解释常见的距离函数,同时说明一些用法,并使其尽可能易于理解。 因此,让我们继续吧。 堪培拉距离(Canberra distance) 它是聚类中使用的曼哈顿距离的加权版本,如模糊聚类、分类、计算机安全和垃圾邮件/垃圾邮件检测系统。 与之前的指标相比,它对异常值更加稳健。
堪培拉距离 L∞范数,切比雪夫距离,最大距离
切比雪夫等高线 两个 n 维观测值或向量之间的切比雪夫距离等于数据样本坐标之间变化的最大绝对值。 在二维世界中,数据点之间的切比雪夫距离可以确定为其二维坐标的绝对差之和。 两点 P 和 Q 之间的切比雪夫距离定义为:
切比雪夫距离是一个度量,因为它满足成为度量的四个条件。
但是,您可能想知道 min 函数是否也可以是一个度量! min 函数不是度量,因为有一个反例(例如水平线或垂直线),其中 d(A, B) = 0 且 A != B。但是,仅当 A = B 时它才应等于 0! !
你能想到的使用切比雪夫指标的一个用例是交易股票、加密货币,其中的特征是交易量、出价、要价……例如,你需要找到一种方法来告诉最多的加密货币,奖励之间有很大的差距 和损失。 事实证明,切比雪夫距离非常适合这种特定情况。 另一种常见情况是切比雪夫距离用于棋盘,其中国王或王后的移动次数等于到达相邻方格的距离,如下图所示:
国王使用切比雪夫距离四处移动。
女王使用一些方块之间的切比雪夫距离。 Lp 范数、闵可夫斯基距离(Lp norm, Minkowski distance)
不同 p 值的 Minkowski 轮廓。 闵可夫斯基距离只是之前距离度量的概括:欧几里德距离、曼哈顿距离和切比雪夫距离。 它被定义为 n 维空间中两个观测值之间的距离,如下式所示:
其中P、Q是两个给定的n维点,p表示Minkowski度量。 对于特定的 p 值,您可以得出以下指标:p = 1:曼哈顿距离。p = 2:欧几里德距离。p → +∞ :切比雪夫距离,逻辑或(点 D = A 或 B = 1 或 1 = 1)。p → 0:逻辑与(点 C = A AND B = 0)。p → -∞ : 最小距离(点 D 的对称)。 余弦距离(Cosine distance) 该指标广泛用于文本挖掘、自然语言处理和信息检索系统。 例如,它可以用来衡量两个给定文档之间的相似性。 它还可用于根据消息的长度识别垃圾邮件或非垃圾邮件。 余弦距离可以按如下方式测量:
其中 P 和 Q 代表两个给定点。 这两点可以代表文档中单词的频率,这将在下面的示例中进行解释。 我们以包含以下短语的三个文档为例:文档 A: “ I love to drink coffee in the morning.”文档 B: “ I like to drink coffee.”文档 C: “ My friend and I work at a coffee shop in our hometown. He tells some good jokes in the morning. We like to begin the day by drink a cup of tea each.” 计算每个单词的出现频率将得到以下结果:
单词的频率 在计算出现次数之前,您已经先验地知道文档 A 和 B 的含义非常相似:“我喜欢喝咖啡。” 然而,文档 C 包含文档 A 的所有单词,但从频率表来看,含义非常不同。 要解决这个问题,您需要计算余弦相似度以确定它们是否相似。 另一方面,这可以说明信息检索或搜索引擎的工作原理。 将文档 A 视为对给定来源(图像、文本、视频……)的查询(短消息),将文档 C 视为需要并作为对查询的响应返回的网页。 另一方面,欧氏距离无法给出短文档和大文档之间的正确距离,因为在这种情况下它会很大。 使用余弦相似度公式可以计算两个文档之间的方向差异,而不是大小差异。 为了说明这一点,让我们来看以下两个文档:文档 A: “ Bitcoin Bitcoin Bitcoin Money”文档 B: “ Money Money Bitcoin Bitcoin” 让我们将“比特币”一词表示为 x 轴,将“货币”一词表示为 y 轴。 这意味着文档 A 可以表示为向量 A(3,1),文档 B 可以表示为 B(2,2)。 计算余弦相似度将得到以下值:
Cosine_Similarity = 0.894 表示文档 A 和 B 非常相似。 cos(角度)大(接近1)意味着角度小(26.6°),两个文档A和B彼此靠近。 但是,您不能将余弦相似度的值解释为百分比。 例如,值 0.894 并不意味着文档 A 与 B 相似度为 89.4%。它意味着文档 A 和 B 非常相似,但我们不知道有多少百分比! 该值没有阈值。 换句话说,您可以将余弦相似度的值解释如下:它越大,文档 A 和 B 相似的可能性就越大,反之亦然。 我们再举一个 A(1, 11) 和 B(22, 3) 的例子
然而,欧氏距离会给出一个像 22.4 这样的大数字,这并不能说明向量之间的相对相似性。 另一方面,余弦相似度也适用于更高维度。 余弦相似度的另一个有趣的应用是 OpenPose 项目。 恭喜 ! 你已经成功了一半 。 坚持下去 ! 皮尔逊相关距离(Pearson Correlation distance) 相关距离量化两个属性之间线性、单调关系的强度。 此外,它使用协方差值作为初始计算步骤。 然而,协方差本身很难解释,并且不能显示数据与代表测量之间趋势的线的接近或远离程度。 为了说明相关性的含义,让我们回到我们的 Iris 数据集并绘制 Iris-Setosa 样本以显示两个特征之间的关系:花瓣长度和花瓣宽度。
Iris-Setosa 样本具有两个特征的测量值。 已估计相同花朵样本的两个特征的样本均值和方差,如下图所示。 一般来说,我们可以说花瓣长度值相对较低的花,花瓣宽度值也相对较低。 此外,花瓣长度值相对较高的花的花瓣宽度值也相对较高。 此外,我们可以用一条线来概括这种关系。
样本均值和方差估计。 这条线代表花瓣长度和花瓣宽度值一起增加的正趋势。 协方差值可以对三种类型的关系进行分类:
三种类型的相关性。 可以使用以下公式计算相关距离:
其中分子表示观测值的协方差值,分母表示每个特征的方差的平方根。 让我们举一个简单的例子来演示如何计算这个公式。
红点和蓝点的坐标分别如下: A(1.2,0.6)和 B(3.0,1.2)。 两个测量值的估计样本均值等于:
该指标的最后一点是相关性并不意味着因果关系。 例如,花瓣长度值相对较小的鸢尾花并不意味着花瓣宽度的值也应该很小。 这是一个充分条件,但不是必要条件! 可以说花瓣长度小可能是导致花瓣宽度小的原因,但不是唯一的原因! 斯皮尔曼相关系数(Spearman correlation) 与 Pearson 相关性一样,每当我们处理双变量分析时,都会使用 Spearman 相关性。 然而,与 Pearson 相关性不同,Spearman 相关性在两个变量都按等级排序时使用。 它可以用于分类和数字属性。
鸢尾花数据集的相关矩阵。 Spearman相关指数可以使用以下公式计算:
Spearman 相关性经常用于假设检验。 马哈拉诺比斯距离(Mahalanobis distance) 它是一种度量标准,主要用于多统计测试,其中欧几里得距离无法给出观测值之间的真实距离。 它测量数据点与分布的距离。
均值的 ED 值相同的两个点。 如上图所示,红点和蓝点与均值的欧氏距离相同。 但是,它们不属于同一区域或集群:红色点更可能与数据集相似。 但蓝色的被认为是异常值,因为它远离代表数据集中最大变异方向的线(长轴回归)。 因此,马氏度量被引入来解决这个问题。 Mahalanobis 度量试图减少两个特征或属性之间的协方差,因为您可以将先前的图重新缩放到新的轴上。 这些新轴代表特征向量,就像前面显示的第一个特征向量一样。 特征向量的第一个方向极大地影响了数据分类,因为它具有最大的特征值。 此外,数据集沿着这个方向比另一个垂直方向展开得更多。 使用这种技术,我们可以沿着这个方向缩小数据集并围绕均值(PCA)旋转它。 然后我们可以使用欧氏距离,它给出了与前两个数据点之间的平均值的不同距离。 这就是马哈拉诺比斯度量的作用。
其中C表示属性或特征之间的协方差矩阵。 为了演示这个公式的用法,让我们计算 A(1.2, 0.6) 和 B (3.0, 1.2) 之间的距离,这是我们之前在相关距离部分的例子。 现在让我们评估协方差矩阵,其定义如下:
其中 Cov[P,P] = Var[P] 和 Cov[Q,Q]= Var[Q],并且
因此,两个物体A和B之间的马氏距离可以计算如下:
除了其用例之外,马氏距离还用于霍特林 t 方检验。 标准化欧几里德距离 标准化或规范化是构建机器学习模型时在预处理阶段使用的一种技术。 数据集在最小和最大特征范围之间存在很大差异。 在对数据进行聚类时,此比例距离会影响 ML 模型,从而导致错误的解释。 例如,我们有两个不同的特征,它们在范围变化上表现出很大的差异。 例如,假设我们有一个从 0.1 到 2 变化的特征,另一个从 50 到 200 变化的特征。使用这些值计算距离会使第二个特征更占主导地位,从而导致不正确的结果。 换句话说,欧氏距离将很大程度上受到具有最大值的属性的影响。 这就是为什么标准化是必要的,以便让功能以平等的方式做出贡献。 它是通过将变量转换为所有具有等于 1 的相同方差并将特征集中在均值周围来完成的,如下列公式所示:
标准化欧氏距离可以表示为:
我们可以应用这个公式来计算 A 和 B 之间的距离。
卡方距离(Chi-square distance) 卡方距离通常在计算机视觉中进行纹理分析时使用,以查找归一化直方图之间的(不)相似性,称为“直方图匹配”。
直方图匹配。 资料来源:维基百科 人脸识别算法就是一个很好的例子,它使用这个指标来比较两个直方图。 例如,在新面孔的预测步骤中,模型根据新捕获的图像计算直方图,将其与保存的直方图(通常存储在 .yaml 文件中)进行比较,然后尝试找到其最佳匹配。 这种比较是通过计算 n 个箱的每对直方图之间的卡方距离来进行的。
您可能知道,此公式与标准正态分布的卡方统计检验不同,后者用于使用以下公式决定是否保留或拒绝原假设:
其中 O 和 E 分别代表观察到的和预期的数据值。 为了说明它的使用方法,假设对 1000 人进行了一项调查,以测试特定疫苗的副作用,看看是否存在基于性别的显着差异。 因此,每个人都可以属于以下四类之一:男性无副作用。有副作用的男性。无副作用的女性。有副作用的女性。 零假设是:两种性别之间的副作用没有显着差异。 为了保留或拒绝该假设,您需要计算以下数据的卡方检验值:
收集的数据 将这些值代入卡方检验公式,您将得到 1.7288。 使用自由度等于 1 的卡方表,您将得到 0.2 和 0.1 > 0.05 之间的概率 → 您保留原假设。 请注意,自由度 =(列数 -1)x(行数 -1) 此外,我只是想让您快速回顾一下假设检验; 我希望你觉得这对你有帮助。 不管怎样,让我们继续前进吧。 詹森-香农距离(Jensen-Shannon distance) Jensen-Shannon 距离计算两个概率分布之间的距离。 它使用 Kullback Leibler 散度(相对熵)公式来计算距离。
其中 R 是 P 和 Q 之间的中点。 此外,请快速说明如何解释熵的值:事件 A 的熵低意味着知道该事件将会发生的程度高; 换句话说,如果事件 A 会发生,我并不感到惊讶,而且我非常有信心它会发生。 高熵的类比相同。 另一方面,Kullback Leibler 散度本身不是距离度量,因为它不对称:D(P || Q) != D(Q || P)。 编辑距离(Levenshtein distance) 用于测量两个字符串之间相似性的度量。 它等于将给定字符串转换为另一个字符串所需的最少操作数。 操作分为三种类型:代换插入删除 对于编辑距离,替代成本是两个单位,另外两个操作的替代成本是一个单位。 例如,我们采用两个字符串 s=“Bitcoin”和 t=“Altcoin”。 要从 s 到 t,需要将字母“B”和“I”两次替换为字母“A”和“l”。 因此,d(t, s) = 2 * 2 = 4。 Levenshtein 距离有很多用例,例如垃圾邮件过滤、计算生物学、弹性搜索等等。 汉明距离(Hamming distance) 汉明距离等于相同长度的两个码字不同的位数。 在二进制世界中,它等于两个二进制消息之间的不同位数。 例如,可以使用以下方法计算两条消息之间的汉明距离:
您可能会注意到,它看起来像分类数据上下文中的曼哈顿距离。 对于长度为 2 位的消息,此公式表示分隔两个给定二进制消息的边数。 它最多可以等于两个。
以同样的方式,对于长度为 3 位的消息,该公式表示分隔两个给定二进制消息的边数。 它最多可以等于三。
让我们举一些例子来说明汉明距离是如何计算的: 如果其中一条消息包含全零,则汉明距离称为汉明权重,等于给定消息中非零数字的数量。 在我们的例子中,它等于总数。 汉明距离用于检测并在可能的情况下纠正通过不可靠的嘈杂信道传输的接收消息中的错误。 杰卡德/谷本距离(Jaccard/Tanimoto distance) 用于衡量两组数据之间相似性的指标。 有人可能会争辩说,为了测量相似性,就需要计算两个给定集合之间交集的大小(基数、素数量)。 然而,仅公共素的数量并不能告诉我们它与集合大小的相对程度。 这就是杰卡德系数背后的直觉。 因此 Jaccard 提出,为了衡量相似度,需要将两组数据的交集大小除以并集大小。
Jaccard 距离与 Jaccard 系数互补,用于衡量数据集之间的差异性,计算公式为:
下图解释了如何将此公式用于非二进制数据。
对于二属性,Jaccard相似度使用以下公式计算:
Jaccard 索引在语义分割、文本挖掘、电子商务和推荐系统等领域非常有用。 现在你可能会想:“好吧,但是你刚才提到了余弦距离也可以用于文本挖掘。 您更喜欢使用什么作为给定聚类算法的指标? 无论如何,这两个指标之间有什么区别?” 很高兴你问这个问题。 为了回答这个问题,我们需要比较两个公式的每一项。
这两个公式之间的唯一区别是分母项。 您不是使用 Jaccard 计算两个集合之间的并集大小,而是计算 P 和 Q 之间的点积的大小。而不是将 Jaccard 公式的分母中的项相加; 您正在计算余弦公式中两者之间的乘积。 我不知道那是什么解释。 据我所知,点积告诉我们一个向量朝另一个方向移动了多少。 除此之外,如果你有什么要补充的,我非常感谢在下面的评论中阅读你的想法。 索伦森-戴斯(Sørensen–Dice) Sørensen-Dice 距离是一种统计指标,用于衡量数据集之间的相似性。 它被定义为 P 和 Q 交集大小的两倍除以每个数据集 P 和 Q 中的素之和。
与 Jaccard 一样,相似度值的范围是从 0 到 1。 然而,与 Jaccard 不同的是,这种相异性度量不是度量,因为它不满足三角不等式条件。 Sørensen-Dice 用于词典编纂、图像分割和其他应用。 Pydist2 在过去的几周里,当我研究相似性和相异性度量时,我认为在 python 中重新实现这些类型的度量作为编码实践将是一个有趣/好主意。 我的灵感来自 Piotr Dollar 用 Matlab 编写的工具箱存储库,也可以在 MathWorks 网站上找到。 因此,pydist2是一个python包,1:1代码采用pdist和pdist2 Matlab函数,用于计算观测值之间的距离。 pydist2 当前支持的测量距离的方法列表可在read the docs中找到。 结论 万岁!!! 您刚刚读完本文。 希望你此时没有被它的内容所淹没,我试图尽可能简洁明了。 通过本文,您了解了数据科学中使用的不同类型的指标及其在许多领域的应用。 对我来说,写这篇文章是我数据科学之旅中的一次愉快经历。 它可以强调花费无数时间研究和探索数据科学和机器学习的数学分支以及在编写我的第一个 python 包:pydist2 时练习我的编码技能的事实。 如果你想为这个项目做出贡献,我非常欢迎在pydist2 repo上看到你的拉取请求。 如果您想做出贡献,可以查看本教程。 如果您在阅读本文时发现任何错误,请在下面的评论中指出,以便改进内容。[1]
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/36670.html