数据科学分析:Python语言实现》 —3.8 一些有用的措施:距离和相似性

网友投稿 750 2022-05-29

3.8 一些有用的措施:距离和相似性

一旦我们根据训练数据构建了一组模型,重要的是将表现良好的模型与不太好的模型区分开来。那么,我们如何确定模型足够好呢?答案是需要借助评分或目标函数来评估模型。

各种机器学习算法都有适当的方法让我们评估在多大程度上可以信任机器学习学到的内容以及模型的预测性如何。因此,模型的性能将取决于各种因素,例如类的分布、错误分类的成本、数据集的大小、用于获取数据的采样方法,甚至所选特征中的值范围。值得注意的是,评估措施方法通常专门针对所使用的问题类型和算法,并且所提供的分数对问题有意义。例如,在分类问题中,分类准确性可以提供比其他措施更有意义的分数。

通常,模型评估可以作为给定目标函数的约束优化问题。然后可以将目标表示为找到使该目标函数最小化的一组参数的问题。这是解决问题的一种非常有用的方法,因为评估措施可以作为目标函数的一部分。例如,考虑我们有兴趣在给定多个数据点的情况下找到最佳拟合线的情况:当数据点排成一条直线时,可以找到完美拟合。可以想象,这种情况很少发生。

在不考虑意外发生的情况下,通过计算点的实际位置与从模型中预测到的点的位置之间的差异,我们可以评估线与数据的拟合程度。如果我们最小化该距离,那么可以评估和比较各种已得到的预测。回归分析中使用的这种特殊评估指标称为残差平方和(SSR),我们将在第4章中对其进行更详细的讨论。

《数据科学与分析:Python语言实现》 —3.8 一些有用的措施:距离和相似性

正如我们所看到的,距离的概念作为表达评价问题的一种方式自然而然地产生了,事实上许多传统的评价程序依赖于对距离的度量。考虑图3.1所示二维空间中的点A和B。点A的坐标为p(p1,p2),点B的坐标为q(q1,q2)。我们想要计算这两点之间的距离。这可以用不同的方式来实现,我们熟悉其中的一些,例如欧几里得距离和曼哈顿距离。

图3.1 计算点A和B之间的距离

欧几里得距离:这与用连接点A和B的直线计算的普通距离相对应;在二维空间中,它与毕达哥拉斯定理给出的距离相对应。问题中分别给定两个点的坐标,我们可以得到点A和点B之间的距离dE:

其中x和y的距离如图3.1所示。将这个定义扩展到n维(即欧几里得距离):

其中xi是沿第i维的距离。欧几里得距离又称为L2范数(也称L2范式)。

曼哈顿距离:如果我们联想一辆黄色出租车在曼哈顿沿着街道所行驶的距离,就很容易看出这个距离为什么用这个名字。除了百老汇,出租车不能在街道围成的格子中沿着对角线行驶,而是只能沿南北或东西方向行驶。在图3.1所示的情况下,曼哈顿距离dM用下面的公式计算:

对于n维空间,可以把上面的定义扩展为:

曼哈顿距离也称为L1范数。

从几何学的角度来看,测量两点之间距离的想法非常直观。此外,如果距离为零,我们可以认为这两个点实际上是相同的,或者至少彼此相似。因此,这种相似性思想是评估计算过程中的另一个有用工具,特别是在特征本身不能被放置在几何空间中时。

给定两个点A和B,测量的相似性必须满足下列一般条件:

1)必须是正的:d(A, B)≥0。

2)如果测量值为零,则点A和B相等,反之,若点A和B相等,则测量值为零:d(A, B) = 0?A=B。

3)必须是对称的:d(A, B) = d(B, A)。

4)必须满足三角不等式:d(A, B) + d(B, C)≥d(A, C)。

上面讨论的这两个距离可用于衡量相似性,但是还有许多其他有用的方法可以做到这一点,例如余弦和Jaccard相似性:

余弦相似性:举个例子,这种相似性度量通常用于文本挖掘任务。在这些情况下,被挖掘的语料库的文档中的单词对应于数据特征。这些功能可以被安排到向量中,我们的任务是确定任意两个文件是否相似。余弦相似性基于特征向量的点积的计算。它实际上是向量构成的角度θ的度量:如果θ=0,则cos θ=1,并且两个矢量被认为是相似的。对于θ的其他值,余弦相似度将小于1。向量v1和v2的余弦相似度由下面的公式给出:

通常使用欧几里得范数来测量向量vi的大小|vi|。

Jaccard相似性:Jaccard相似性度量为我们提供了一种比较无序对象集合(即集合)的方法。我们根据所讨论的集合共有的元素来定义Jaccard相似性。考虑两个集合A和B,其基数分别为|A|和|B|。两个集合的共同元素由交集A??B给出。为了了解交集相对于集合的大小,我们将前者除以集合的并集。可以表示如下:

例如,在比较文档相似性时,两个相同的文档具有的Jaccard相似性为1,完全不相似的文档的Jaccard相似性为0。中间值对应于不同的相似度。

也可以使用其他距离和相似性度量。如何选择,将在很大程度上取决于要解决的问题类型以及用于解决问题的算法和技术。在接下来的章节中,我们将一一讨论适合于计算距离以及相似性的特定算法和评估措施。

Python python 机器学习

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:软件就是敲代码?一篇文章带你了解软件生存周期!
下一篇:LiteOS 5.0新功能详解,快速为你解决物联网开发难题
相关文章