ML:非监督学习之 聚类 之 1 KMeans聚类(sklearn.cluster.KMeans)

一、算法图解

在这里插入图片描述

  1. 首先,图a & 图b:指定cluster的个数。上图设k=2(初始点为从图b开始出现的“+”号);
  2. 其次,图c:把每个数据样本划到到最近的中心点那一cluster;
  3. 再次,图d & 图e:指第一轮化cluster之后,更新中心点(一般是把该cluster的所有数据座标加起来取平均值);
  4. 重复划类和中心点更新,一直到满足指定的迭代次数,或者中心点的移动距离小于给定值,或者中心点不再移动,图f
二、sklearn官方文档链接
sklearn.cluster.KMeans(
n_clusters=8,                  # 设定要聚类的个数,默认8;
init='k-means++',              # 设定选择初始中心点的方法,默认是“k-means++”(一种可以加速聚类收敛的方法),还可以是“random”(随机选择初始点),或者是shape为[n_clusters, n_features]的数组,即自己指定初始点;
n_init=10,                     # 设定中心点的批数,最终输出效果最好的那批中心点产生的cluster。默认是10批;
max_iter=300,                  # 设定对于每批中心点,最大的迭代次数。默认300;
tol=0.0001,                    # 设定可接受的中心点最小移动距离,默认是1e-4
precompute_distances='auto',   # 
verbose=0,
random-state=None,
copy_x=True,                   # 是否copy样本x。默认True,False即跟新样本x;
n_jobs=None,
algorithm='auto'               # 指定kmeans的算法。默认是“autor”,即对于密集的样本用“elkan”算法,离散的样本用“full”算法;可自行指定“elkan”或“full”2种中的一个;
)
三、优缺点
  • 对离群点敏感(因为对均值的影响大)
  • 不能对环形&漩涡形正确聚类;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章