K-means聚类
聚类是无监督学习当中非常重要的一部分,能够在没有标签的情况下将数据分类。说到聚类,最常用也是最重要的一个算法就是K-means算法。
算法介绍
K-means是一种非常简单快速高效的算法,只需要迭代几次即可。
其原理用一句话来说就是一个“标记实例,更新中心点”的循环。通过几次迭代达到收敛,但是往往是局部最优解。
这里也提出了一种k-means++的算法,这种方法使k-means收敛到最优解的可能性很小。其实一般直接调用sklearn的k-means默认就是k-means++算法,如果你想使用原来的k-means算法,将超参数设置为init=“random”即可
选择k值方法
k-means最重要的参数应该是类别数量了,也就是k值,一般寻找最优的k值有一下两种方法
手肘法
手肘法在很多选取最佳参数的方法中是很常见的,通过找到惯性(簇内平方和)的转折点来找到最佳k值
代码实例
from sklearn.cluster import KMeans