「聚类分析」16聚类分析之KMeans算法与K中心点算法

1.聚类

    聚类属于无监督式学习。在无监督式学习中,训练样本的标记信息是未知的,算法通过对无标记样本的学习来揭示蕴含于数据中的性质和规律。聚类算法的任务是根据数据特征将数据集相似的数据划分到同一簇。

2.聚类分析

    聚类分析是将物理的或者抽象的数据集合划分为多个类别的过程,聚类之后的每个类别中任意两个数据样本之间具有较高的相似度,而不同类别的数据样本之间具有较低的相似度。

3.聚类算法常用分类

①划分聚类方法

②层次聚类方法

③基于密度的聚类方法

④基于网格的聚类方法

4.聚类分析中相似度的计算方法

(1)连续型属性的相似度计算方法:欧式距离

(2)二值离散型属性的相似度计算方法

数据样本的二值离散型属性的取值情况:

二值离散性属性取值
二值离散性属性距离计算公式

(3)多值离散型属性的相似度计算方法:多值离散型属性转化为二值离散型属性  

(4)混合类型属性的相似度计算方法

    将属性按照类型分组,每个新的数据集中只包含一种类型的属性,然后对每个数据集进行单独的聚类分析,随后把混合类型的属性放在一起处理,进行一次聚类分析。

5.KMeans算法(划分法)

    KMeans也称为K均值,是一种聚类算法。它可以根据数据特征将数据集分成K个不同的簇,簇的个数K是由用户指定的。KMeans算法基于距离来度量实例间的相似程度(与KNN算法一样,大多数问题采用欧氏距离),然后把较为相似的实例划分到同一簇。

(1)聚类的性能度量大致有以下两类:

①外部指标:将聚类结果与某个“参考模型”进行比较。

②内部指标:直接考察聚类结果而不利于参考模型。

(2)聚类算法的过程:

①随机选择k个点作为聚类中心;

②计算各个点到这k个点的距离;

③将对应的点聚到与它最近的这个聚类中心;

④重新计算聚类中心;

⑤比较当前聚类中心与前一次聚类中心,如果是同一个点,得到聚类结果,如果不是,则重复②③④⑤。

(3)聚类算法的实现:

聚类算法的实现
聚类模型结果可视化
聚类模型结果
聚类模型可视化结果

【注】模型效果评估指标说明:

1)inertias_:是K-Means模型对象的属性,它作为没有真实分类结果标签下的非监督式评估指标。表示样本到最近的聚类中心的距离总和。值越小越好,越小表示样本在类间的分布越集中。

2)兰德指数(Rand index):需要给定实际类别信息C,假设n是聚类结果,a表示在C与K中都是同类别的元素对数,b表示在C与K中都是不同类别的元素对数,则兰德指数为:

兰德指数(RI)

RI取值范围为[0,1],值越大意味着聚类结果与真实情况越吻合。

对于随机结果,RI并不能保证分数接近零。为了实现“在聚类结果随机产生的情况下,指标应该接近零”,调整兰德系数(Adjusted rand index)被提出,它具有更高的区分度:

调整兰德指数(ARI)

ARI取值范围为[−1,1],值越大意味着聚类结果与真实情况越吻合。从广义的角度来讲,ARI衡量的是两个数据分布的吻合程度。

3)同质化得分(Homogeneity):如果所有的聚类都只包含属于单个类的成员的数据点,则聚类结果满足同质性。取值范围[0,1],值越大意味着聚类结果与真实情况越符合。

4)完整性得分(Complenteness):如果作为给定类的成员的所有数据点是相同集群的元素,则聚类结果满足完整性。取值范围[0,1],值越大意味着聚类结果与真实情况越符合。

5)v_meansure_score:同质化和完整性之间的谐波平均值,v=2*(同质化*完整性)/(同质化+完整性),取值范围[0,1],值越大意味着聚类结果与真实情况越符合。

6.k中心点算法

(1)原理

①随机选取k个中心点;

②遍历所有数据,将每个数据划分到最近的中心点中;

③计算每个聚类的平均值,并作为新的中心点;

④重复②③,直到这k个中线点不再变化(收敛了),或执行了足够多的迭代。

(2)与KMeans算法对比

    K-中心点聚类的基本思想和K-Means的思想相同,实质上是对K-means算法的优化和改进。在K-means中,异常数据对其的算法过程会有较大的影响。在K-means算法执行过程中,可以通过随机的方式选择初始质心,也只有初始时通过随机方式产生的质心才是实际需要聚簇集合的中心点,而后面通过不断迭代产生的新的质心很可能并不是在聚簇中的点。如果某些异常点距离质心相对较大时,很可能导致重新计算得到的质心偏离了聚簇的真实中心。

你可能感兴趣的:(「聚类分析」16聚类分析之KMeans算法与K中心点算法)