前言
聚类是一个将数据集中在某些方面相似的数据成员进行分类组织的过程,聚类就是一种发现这种内在结构的技术,聚类技术经常被称为无监督学习。
k均值聚类是最著名的划分聚类算法,由于简洁和效率使得他成为所有聚类算法中最广泛使用的。给定一个数据点集合和需要的聚类数目k,k由用户指定,k均值算法根据某个距离函数反复把数据分入k个聚类中。
一、调包实现
数据处理好后
from sklearn.cluster import KMeans
NumberClusters = range(2,30)
kmeans_n = [KMeans(n_clusters=i) for i in NumberClusters]
score = [kmeans_n[i].fit(scaled_data).score(scaled_data) for i in range(len(kmeans_n))]
二、手写代码
1.选择初始化的 k 个样本作为初始聚类中心 ;
2.针对数据集中每个样本 计算它到 k 个聚类中心的距离并将其分到距离最小的聚类中心所对应的类中;
3.针对每个类别 ,重新计算它的聚类中心 (即属于该类的所有样本的质心);
4.重复上面 2 3 两步操作,直到达到某个中止条件(迭代次数、最小误差变化等)。