K-means原理
K-means算法解决的问题是:在不知道如何分类的情况下,让程序根据距离的远近,把N个对象划分为k类(局部最优)。它是无监督算法中较常见的一种,原理比较简单易懂。本质就是通过循环,迭代类的中心点,计算每个对象到中心点的距离,根据距离重新分类。
K-means步骤如下:
1.指定聚类的个数k;
2.随机选定k个对象作为聚类中心;
3.计算每个对象到这k个聚类中心的距离,并将其进行分类:分到距离最近的聚类中心;
4.重新计算每个聚类的中心(求均值),得到新的聚类中心;
5.重复3和4,直到满足迭代终止条件;
终止条件一般为:①迭代次数达到上限;②聚类中心点不发生变化或没有对象被分配给新的类;③误差平方和局部最小。
K-means算法使用:
1.导包from sklearn.cluster import KMeans
2.sklearn.cluster.KMeans(n_clusters=8,init=‘k-means++’),其中
n_clusters是开始的聚类中心数量,init是初始化方法,默认为’k-means++’
性能评估
此处介绍的是轮廓系数法:
S = b − a m a x ( a , b ) , − 1 ≤ S ≤ 1 \Large {S} = \frac{b-a}{max(a,b)},-1 \le S \le 1 S