本篇文章3543字,读完约9分钟

雷锋。这篇文章的作者是李荣恒。原文包含在作者的个人博客中。雷锋。com已被授权。

分类作为一种有监督的学习方法,要求每个类别的信息必须事先清楚地知道,并且主张所有要分类的项目都有一个与之对应的类别。然而,在许多情况下,上述条件无法满足,尤其是在处理海量数据时。如果数据经过预处理达到分类算法的要求,代价很高,所以此时可以考虑聚类算法。

聚类属于无监督学习。与分类相比,聚类不依赖于预定义类和类标签的训练示例。本文首先介绍了聚类的基础——距离和相异度,然后介绍了一种常用的聚类算法——k-means算法,并利用K-means算法对nba球队近四年的实力进行了分析。因为我更喜欢看nba比赛,我用这个作为例子,它可以在各种现实生活和生产环境中使用。

在正式讨论聚类之前,我们应该首先了解一个问题:如何定量计算两个可比元素之间的差异。

用通俗的话来说,区别在于两件事有多不同。例如,人类和章鱼之间的差异明显大于人类和黑猩猩之间的差异,这可以被我们直观地感觉到。然而,计算机没有这种直观的感觉能力,所以我们必须在数学中定量地定义这种不同。建立

其中x和y是两个元素项,每个元素项具有n个可测量的特征属性,那么x和y之间的差异定义为:

其中r是实数域。也就是说,相异度是两个元素到实数域的映射,映射的实数定量地表示两个元素的相异度。下面描述不同类型变量相异度的计算方法:

1.标量标量是一个没有方向意义的数字,也称为标度变量。现在考虑元素的所有特征属性都是标量的情况。例如,计算x={2,1,102}和y={1,3,2}的相异度。一个自然的想法是用它们之间的欧几里德距离作为差值。欧几里得距离定义如下:

它的意义在于欧几里得空.中两个元素之间的设定距离因为它直观且可解释,所以它被广泛用于识别两个标量元素之间的差异。将上述两个示例数据代入公式,我们可以得到它们之间的欧几里德距离,如下所示:

除了欧几里德距离,曼哈顿距离和闵可夫斯基距离通常用于度量标量相异度,其定义如下:

曼哈顿距离:

闵可夫斯基距离:

欧氏距离和曼哈顿距离可以看作是p=2和p=1下闵可夫斯基距离的特例。此外,这三个距离可以被加权,这是容易理解的,并且将不再描述。

让我们来谈谈标量的规范化。上述计算相异度的方法存在一个问题,即值范围大的属性比值范围小的属性对距离的影响更大。例如,在上面的示例中,第三个属性的值跨度比前两个属性的值跨度大得多,这不利于真实地反映实际的差异。为了解决这个问题,通常需要对属性值进行规范化。归一化是将每个属性值按比例映射到同一个值区间,以平衡每个属性对距离的影响。通常,每个属性都映射到[0,1]区间,映射公式为:

用 Python 分析过去四年的比赛数据,实力最强的 NBA 球队原来是它

Max(ai)和min(ai)表示所有元素项中ith属性的最大值和最小值。例如,将示例中的元素归一化为[0,1]后,它们变成x'={1,0,1},y'={0,1,0},重新计算的欧几里德距离约为1.732。

2.二次变量所谓的二进制变量是只能取两个值的变量,0和1,它们有点类似于布尔值,通常用于识别它们是否是二进制属性。对于二元变量,前面提到的距离不能很好地识别它们的差异,所以我们需要一个更合适的识别。一种常见的方法是通过相同顺序和相同值属性的比例来识别元素的不同。

在x = {1,0,0,1,0,1,1}和y = {0,0,1,1,1,1,1}的情况下,可以看出两个元素的第2,3,5,7和8个属性具有相同的值,而第1,4和6个属性具有不同的值。通常,对于二进制变量,相异度可以通过“具有不同值的同位属性的数量/单个元素的属性位数”来识别。

上面提到的相异点应该叫做对称二元相异点。实际上,还有另一种情况,那就是我们只关心他们都取1的情况,他们都取0的属性并不意味着他们更相似。例如,当根据病人的疾病对他们进行分组时,如果他们都患有肺癌,我们认为他们之间的相似性增强了,但是如果他们都没有患肺癌,则不会增强他们之间的相似性。在这种情况下,相异度由“具有不同值的同位属性的数量/(单个元素的属性的数量-具有相同值0的数字的数量)”来标识,这被称为不对称二进制相异度。如果不对称二进制相异度减1,不对称二进制相似度,也称为jaccard系数,是一个非常重要的概念。

用 Python 分析过去四年的比赛数据,实力最强的 NBA 球队原来是它

3.分类变量分类变量是二进制变量的推广,它类似于程序中的枚举变量,但每个值都没有数字或序数的含义,如颜色、国籍等。对于分类变量,相异度由“具有不同值的同源属性的数量/单个元素的所有属性的数量”来标识。

4.序数变量序数变量是具有序数意义的分类变量,通常可以按一定的顺序排列,如冠军、亚军和季军。序数变量通常被赋予一个数字给每个值,这被称为这个值的秩,然后秩被用作标量属性而不是原始值来计算相异度。

5.向量对于向量来说,因为它不仅有大小而且有方向,闵可夫斯基距离不是一个好的方法来衡量它的不同。一种流行的方法是测量两个向量的余弦,其测量公式是:

其中||x||表示X的欧氏范数..应该注意的是,余弦度量不是两者之间的区别,而是相似性!

在讨论了相异点之后,我们可以正式定义聚类问题。所谓的聚类问题就是给定一组元素,其中每个元素都有N个可观察的属性,并通过某种算法将元素分成K个子集,这就要求每个子集中元素之间的相异度尽可能低,而不同子集中元素之间的相异度尽可能高。每个子集称为一个集群。与分类不同,分类是示范性的学习,它要求分类前每个类别都要清晰,每个元素都要映射到一个类别。聚类是一种观察学习,它是一种无监督的学习,在聚类之前不知道类别,甚至不给出类别的数量。目前,聚类广泛应用于统计学、生物学、数据库技术和市场营销等领域,并有许多相应的算法。本文只介绍了最简单的聚类算法之一-k均值算法。

用 Python 分析过去四年的比赛数据,实力最强的 NBA 球队原来是它

给一颗栗子:

让我们先了解一下k均值的计算过程:

1.从集合d中随机选择k个元素作为k个簇的各自中心;

2.计算剩余元素与k个聚类中心之间的相异度,并将这些元素分类到相异度最低的聚类中;

3.根据聚类结果,取聚类中所有元素各自维度的算术平均值,重新计算k个聚类的各自中心;

4.根据新的中心重新聚集所有元素;

5.重复步骤4,直到聚类结果不变;

6.输出结果。

下面的列表显示了nba在过去四年的常规赛和季后赛记录(因为16/17的季后赛还没有结束,这个数据暂时不包括在内):

以下数据通过[0,1]进行标准化,以下是标准化数据:

然后,使用k-均值算法进行聚类,假设k = 5,将30个团队分成5组。勇士、快船、掘金、国王和76人的值被选择作为五个集群的种子,即,五个集群的中心被初始化如下:A {0.18、0.00、0.00、0.00、0.81、0.00、0.06}、B {0.08、0.16、0.27、0.06} 1.00}、d {0.55、0.57、0.55、0.52

从聚类结果可以看出,近四年来最强的球队是骑士队和勇士队,或者很多球迷会有其他意见,但至少从数据层面来看,骑士队和勇士队是近四年来最强的球队,是第一组;下一支球队基本上是每年都必须进入季后赛的球队,包括马刺、雷霆、快船、公牛等球队,它们都是第二组;第三组是凯尔特人、黄蜂、小牛和其他偶尔进入季后赛的球队;接下来是第四组和第五组,他们基本上已经退出了季后赛,并且每年都垫底。

用 Python 分析过去四年的比赛数据,实力最强的 NBA 球队原来是它

本文仅讲述聚类小案例的应用。事实上,聚类有非常广泛的应用,包括图像分割和生物种群分类。事实上,早期的移动公司也推出了适合不同人群的电话卡(动感地带、环球联通、神州行等)。)根据聚类分析。

此示例的源代码地址:

download.csdn/detail/u013043346/9833529

参考文章:

cn blogs/Leo 2sk/archive/2010/09/20/k-means

张量流&神经网络算法高级应用类即将开始!从初级到高级,理论+实战,一站式深入了解张量流!

本课程面向深度学习型开发人员,教授如何使用张量流解决特定问题,如图像识别和文本分析。为期10周的课程将从张量流的原理和基本实践技能开始,逐步教会学生如何在张量流上构建cnn、自编码、rnn、gan等模型,最终掌握一套基于张量流的深度学习和发展的专业技能。

作为思想工作的高级技术专家,童达和白华川两位教师在构建大数据平台和开发深度学习系统方面有着丰富的经验。

时间:每周二和周四晚上20: 00到21: 00

课程时长:共20小时,10周完成,每周2次,每次1小时

在线教学地址:mooc.ai/

雷锋。(公开号码:雷锋。相关阅读:

机器学习算法在实践K-均值聚类中的实用技巧

历史上最简明易懂的教程使用excel来理解梯度下降

雷锋文章版权所有。严禁擅自转载。详情请参考转载说明。

来源:搜狐微门户

标题:用 Python 分析过去四年的比赛数据,实力最强的 NBA 球队原来是它

地址:http://www.shwmhw.com/shxw/61657.html