论文部分内容阅读
【摘 要】 k均值聚类算法是一种常见的对数据进行分类的算法。本文通过k均值聚类算法对UCI数据库中的Glass Identification数据集进行分析,最后将分类结果与真实结果比较,观察分类是否准确,从而实现k均值聚类算法的数据分析。
【关键词】 k均值聚类算法 数据分析 分类
1 引言
聚类分析是数据挖掘的一个发现信息的方法,已经被人们深入的研究了很长时间,主要的是对基于距离的聚类分析的研究。聚类是一种无监督的学习,而分类正好与它相反,分类是一种有监督的学习,聚类主要是划分无标记的对象,使这些无标记的对象变的有意义,对预先定义的类与带类标记的训练实例不具有依赖性。所以聚类分析在我们的日常生活中的应用范围非常广泛:
(1)在商业上,聚类可以根据消费者数据库里面所记录的数据信息,对消费者进行划分,根据各个消费者的特征,以帮助市场营销员按照市场需求及时调整货物的摆放次序等一系列营销计划的实施;
(2)在社会学中,聚类用来发现目前社会结构组成中潜在的社会结构;
(3)在网络挖掘中对互联网上批量的数据信息进行有效的划分与分类,实现信息的有效利用,对数据信息检索效率方面有显著提高;
(4)在生物信息学中,在大量的基因群中发现功能相似的基因组,对基因因功能不同进行划分对其固有的结构特征进行分析,来更好的为我们的医学发展提供有利条件;
(5)在空间数据库领域,聚类分析能对相似地理特征区域及它们的人和环境的不同特征进行识别,来研究地域文化提供条件。
本文主要基于k均值聚类算法对数据进行实例分析,通过比较分类结果的准确率,研究k均值聚类算法的分类效果。
2 基于K均值聚类算法的数据分析
2.1 K均值聚类算法。聚类是一种无监督的学习方法。所谓无监督学习是指事先并不知道要寻找的内容,即没有目标变量。聚类将数据点归到多个簇中,其中相似数据点处于同一簇,而不相似数据点处于不同簇中。聚类中可以使用多种不同的方法来计算相似度。本文使用了聚类算法中的k均值聚类,由于该算法的简洁和效率,使得它成为所有聚类算法中最广泛使用的。该算法首先先随机选取K个对象作为初始的聚类中心;然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心,聚类中心以及分配给它们的对象就代表一个聚类,一旦全部对象都被分配了,每个聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是以下任何一个:
1)没有(或最小数目)对象被重新分配给不同的聚类。
2)没有(或最小数目)聚类中心再发生变化。
3)误差平方和局部最小。
2.2 实例分析。本文使用了K均值聚类算法对玻璃数据进行分析,这是一种分类简单快速的算法,但是也有很大的限制性,比如对极端值的变化非常敏感。现在我们假设只知道关于玻璃数据中9个特征指标的值,通过使用K均值聚类算法来将数据进行分类,最后通过与真实分类结果比较,看分类结果是否准确。
2.2.1数据集介绍。通过选取UCI数据库中的Glass Identification数据集进行分析,该数据集对玻璃种类分类的研究有利于犯罪学的调查研究。该数据集包括了用于进行玻璃分类的9种特征,分别为折射率(RI)、以及玻璃中的钠(Na)、镁(Mg)、铝(AI)、硅(Si)、钾(K)、钙(Ca)、钡(Ba)、铁(Fe)含量,所有数据都为连续型变量。
整个数据集共214个样本,将玻璃分为7类,分别是经过浮动处理的建筑物窗户、未经过浮动处理的建筑物窗户、经过浮动处理的车辆窗户、为经过浮动处理的车辆窗户(该数据集中未出现)、容器、餐具、吊灯。
2.2.2数据预处理。为了便于与真实分类结果的比较,这里将数据集处理为两种状态:一种是只包括关于玻璃的9个特征指标的值,即去掉其中的玻璃分类标签;另一种是只包含玻璃分类的真实标签。
2.2.3数据分析。通过使用python3.7软件实现K均值聚类分析算法,对玻璃数据进行分析得出结果,如图1。从图1可以看出,每个颜色代表一种分类,每一类分类明显,虽然存在个别异常值,但是大致将玻璃分为6类,似乎分类结果还不错。但是将该结果与真实结果比较后发现,准确率却只有24.77%,分类效果很不理想。进一步观察分类结果图,可以发现有很多点都偏离各簇,这说明了K均值聚类可能因其非常容易受异常值的影响,导致分类不准确。
3 结论
经过对K均值算法进行实例分析,发现该算法虽然原理简单,容易实现,但是有许多需要改进的地方,其中一点是对噪声和离群值非常敏感,还有一点就是收敛太慢,只是收敛到了局部最小值,而并非全局最小值(局部最小值指结果还可以但并非最好结果,全局最小值是可能的最好結果)。
为克服K-均值算法收敛于局部最小值的问题,所以可以引入二分K-均值对算法进行优化,该算法首先将所有点作为一个簇,然后将该簇一分为二,之后选择其中一个簇继续进行划分,选择哪一个簇进行划分取决于对"其划分是否可以最大程度降低SSE(Sum of Squared Error,误差平方和)的值,上述基于SSE的划分过程不断重复,直到得到用户指定的簇数目为止。
上述的K-均值算法以及二分K-均值算法并非仅有的聚类算法, 另外称为层次聚类的方法也被广泛使用。
【参考文献】
[1] 易燕飞.基于K-means聚类的数据分析.现代制造技术与装备.2017,4:8-13.
【关键词】 k均值聚类算法 数据分析 分类
1 引言
聚类分析是数据挖掘的一个发现信息的方法,已经被人们深入的研究了很长时间,主要的是对基于距离的聚类分析的研究。聚类是一种无监督的学习,而分类正好与它相反,分类是一种有监督的学习,聚类主要是划分无标记的对象,使这些无标记的对象变的有意义,对预先定义的类与带类标记的训练实例不具有依赖性。所以聚类分析在我们的日常生活中的应用范围非常广泛:
(1)在商业上,聚类可以根据消费者数据库里面所记录的数据信息,对消费者进行划分,根据各个消费者的特征,以帮助市场营销员按照市场需求及时调整货物的摆放次序等一系列营销计划的实施;
(2)在社会学中,聚类用来发现目前社会结构组成中潜在的社会结构;
(3)在网络挖掘中对互联网上批量的数据信息进行有效的划分与分类,实现信息的有效利用,对数据信息检索效率方面有显著提高;
(4)在生物信息学中,在大量的基因群中发现功能相似的基因组,对基因因功能不同进行划分对其固有的结构特征进行分析,来更好的为我们的医学发展提供有利条件;
(5)在空间数据库领域,聚类分析能对相似地理特征区域及它们的人和环境的不同特征进行识别,来研究地域文化提供条件。
本文主要基于k均值聚类算法对数据进行实例分析,通过比较分类结果的准确率,研究k均值聚类算法的分类效果。
2 基于K均值聚类算法的数据分析
2.1 K均值聚类算法。聚类是一种无监督的学习方法。所谓无监督学习是指事先并不知道要寻找的内容,即没有目标变量。聚类将数据点归到多个簇中,其中相似数据点处于同一簇,而不相似数据点处于不同簇中。聚类中可以使用多种不同的方法来计算相似度。本文使用了聚类算法中的k均值聚类,由于该算法的简洁和效率,使得它成为所有聚类算法中最广泛使用的。该算法首先先随机选取K个对象作为初始的聚类中心;然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心,聚类中心以及分配给它们的对象就代表一个聚类,一旦全部对象都被分配了,每个聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是以下任何一个:
1)没有(或最小数目)对象被重新分配给不同的聚类。
2)没有(或最小数目)聚类中心再发生变化。
3)误差平方和局部最小。
2.2 实例分析。本文使用了K均值聚类算法对玻璃数据进行分析,这是一种分类简单快速的算法,但是也有很大的限制性,比如对极端值的变化非常敏感。现在我们假设只知道关于玻璃数据中9个特征指标的值,通过使用K均值聚类算法来将数据进行分类,最后通过与真实分类结果比较,看分类结果是否准确。
2.2.1数据集介绍。通过选取UCI数据库中的Glass Identification数据集进行分析,该数据集对玻璃种类分类的研究有利于犯罪学的调查研究。该数据集包括了用于进行玻璃分类的9种特征,分别为折射率(RI)、以及玻璃中的钠(Na)、镁(Mg)、铝(AI)、硅(Si)、钾(K)、钙(Ca)、钡(Ba)、铁(Fe)含量,所有数据都为连续型变量。
整个数据集共214个样本,将玻璃分为7类,分别是经过浮动处理的建筑物窗户、未经过浮动处理的建筑物窗户、经过浮动处理的车辆窗户、为经过浮动处理的车辆窗户(该数据集中未出现)、容器、餐具、吊灯。
2.2.2数据预处理。为了便于与真实分类结果的比较,这里将数据集处理为两种状态:一种是只包括关于玻璃的9个特征指标的值,即去掉其中的玻璃分类标签;另一种是只包含玻璃分类的真实标签。
2.2.3数据分析。通过使用python3.7软件实现K均值聚类分析算法,对玻璃数据进行分析得出结果,如图1。从图1可以看出,每个颜色代表一种分类,每一类分类明显,虽然存在个别异常值,但是大致将玻璃分为6类,似乎分类结果还不错。但是将该结果与真实结果比较后发现,准确率却只有24.77%,分类效果很不理想。进一步观察分类结果图,可以发现有很多点都偏离各簇,这说明了K均值聚类可能因其非常容易受异常值的影响,导致分类不准确。
3 结论
经过对K均值算法进行实例分析,发现该算法虽然原理简单,容易实现,但是有许多需要改进的地方,其中一点是对噪声和离群值非常敏感,还有一点就是收敛太慢,只是收敛到了局部最小值,而并非全局最小值(局部最小值指结果还可以但并非最好结果,全局最小值是可能的最好結果)。
为克服K-均值算法收敛于局部最小值的问题,所以可以引入二分K-均值对算法进行优化,该算法首先将所有点作为一个簇,然后将该簇一分为二,之后选择其中一个簇继续进行划分,选择哪一个簇进行划分取决于对"其划分是否可以最大程度降低SSE(Sum of Squared Error,误差平方和)的值,上述基于SSE的划分过程不断重复,直到得到用户指定的簇数目为止。
上述的K-均值算法以及二分K-均值算法并非仅有的聚类算法, 另外称为层次聚类的方法也被广泛使用。
【参考文献】
[1] 易燕飞.基于K-means聚类的数据分析.现代制造技术与装备.2017,4:8-13.