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

一、算法图解ML:非监督学习之 聚类 之 1 KMeans聚类(skearn.cluster.KMeans)_第1张图片
  1. 首先,指定cluster的个数。上图设k=2(初始点为从图b开始出现的“+”号;
  2. 其次,把每个数据样本划到到最近的中心点那一cluster;
  3. 再次,指第一轮化cluster之后,更新中心点(一般是把该cluster的所有数据坐标加起来取平均值);
  4. 重复划类和中心点更新,知道达到指定的迭代次数或者中心点的移动距离小于给定值或者中心点不在移动;
二、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种中的一个;
)
三、优缺点
  • 对离群点敏感(对均值的影响大)
  • 不能对环形&漩涡形正确聚类;

你可能感兴趣的:(kmeans,sklearn,python,聚类,机器学习,机器学习算法)