源代码python机器学习专题之聚类分析-meanspeaker.pdf
#源代码#Python机器学习专题之聚类分析——K-means聚类
Peaker
KMeans算法基于n组独立样本方差相等,最小化准则或within-cluster平方和将样本数
据进行聚类。该算法需要指定集群的数量。其良好的可扩展性,因此被应用在大范围的许多
不同领域。
k-means算法将一组N个样本的集群X划分为k个不相交的集群C,每个集群的特征是
通过集群内样本的均值来描述的。每个集群的均值通常被称为“质心”。k-means算法旨在选
择能够最小化准则的质心,或within-cluster的平方准则:
惯性,或平方准则内群集总和,是一种描述各个集群相关性的测度。它存在各种缺点:
1.惯性使得假设簇是凸的和各向同性的,而事实上并不总是如此。对于拉长集群,或流体
与不规则形状的数据,它的相应不佳。
降维算法如PCA可以缓解这一问题,并加速计算。
K均值常常称为算法。在基本术语中,算法具有三个步骤。第一步选择的初始
质心,最基本的方法是,选择从数据集中的样品。初始化完成后,K-mean包括两个步骤之
间的循环。第一步骤分配每个样品到其最接近的质心。第二步骤通过取所有分配给每个形
心以前样品的平均值创建新的质心。旧的和新的质心之间的差被计算,并且算法重复这最
后两个步骤,直至该值小于一个阈值。换句话说,它反复进行,直到形心不显著移动。K-
均值是等效于期望最大化算法具有小的全相等,对角协方差矩阵。
下面是一个利用k-means对数据进行聚类分析的实例
数据中缩写代表的含义为
Shorthandfullname
homohomogeneityscore
complcompletenessscore
v-measVmeasure
ARIadjustedRandindex
AMIadjustedmutualinformation
silhouettesilhouettecoefficient
输出结果如下
对数据进行k均值聚类后可视化结果如图所示
实现上述过程的Python代码如下(网盘地址:)
print(__doc__)
fromtimeimporttime
importnumpyasnp
importmatplotlib.pyplotasplt
fromsklearnimportmetrics
fromsklearn.clusterimportKMeans
fromsklearn.dataset