KMeans聚类
1、工作原理
随机生成聚类中心,根据样本到聚类中心的距离进行分类,然后以各分类的样本中心为新的聚类中心,通过不断迭代更新聚类中心,以达到分类效果。
注:
1、KMeans聚类是根据聚类中心进行分类的,所以需要指定聚类中心的个数,也就是分类的个数。
2、KMeans聚类质量的好坏依赖于初始的聚类中心点,可以通过多次初始化聚类中心,以达到选择好的聚类结果。
3、KMeans聚类迭代到最优聚类中心时,聚类中心可能会续断更新也可能不再更新,所以需要通过指定迭代次数来结束更新。
2、sklearn中的KMeans
##导入KMeans库
from sklearn.cluster import KMeans
##创建模型
kmeans = KMeans(n_clusters=2, random_state=0)
##拟合数据
kmeans.fit(X)
##预测
kmeans.predict([[0, 0], [4, 4]])
##获取聚类中心
kmeans.cluster_centers_
参数:
n_clusters:聚类中心的个数,默认值8;
n_init:初始化聚类中心的次数,默认值10;
max_iter:迭代次数,默认值300;
3、KMeans的优缺点
( 图 一 ) ( 图 二 ) (图一)(图二) (图一)(图二)
( 图 三 ) ( 图 四 ) (图三)(图四) (图三)(图四)
如上图所示,KMeans对于图一图二的聚类效果很好,但对于图三的聚类效果就很差了,图四的聚类效果非常依懒初始聚类中心的位置。