1.k-means算法的思想
k-means算法是一种非监督学习方式,没有目标值,是一种聚类算法,因此要把数据划分成k个类别,那么一般k是知道的。
那么假设k=3,聚类过程如下:随机在数据当中抽取三个样本,当做三个类别的中心点(k1,k2,k3);
计算其余点(除3个中心点之外的点)到这三个中心点的距离,每一个样本应该有三个距离(a,b,c),然后选出与自己距离最近的中心点作为自己的标记,形成三个簇群;
分别计算这三个簇群的平均值,把三个平均值与之前的旧三个中心点比较,那么分两种情况:
如果相同:结束聚类。
如果不同:把这三个平均值当做新的中心点,然后重复第二步。
2.轮廓系数sci
那么,我们有一个评估标准:轮廓系数sci=(bi-ai)/max(bi,ai),其中i是样本,bi是i到其他簇群的所有样本距离的最小值,ai是i到本身簇群距离的平均值。需要注意:每一个样本都有一个轮廓系数,它的范围是[-1,1]。
那么以这个图为例,说明一下怎么计算轮廓系数:计算蓝1到自身类别的点距离的平均值ai;
计算蓝1分别到红、绿类别所有点的距离,求出平均值b1,b2,取其中最小值bi
那么蓝1的轮廓系数=(bi-ai)/max(bi,ai),我们希望做到外部距离最大化,内部距离最小化
sc