kmeans聚类随记

244 阅读1分钟

k:把数据划分成多少个类别

  • 知道类别的个数,可根据业务需求得到
  • 不知道类别的个数,视为超参数

例子:(k=3)

1.随机在数据上抽取三个样本当做三个类别的中心点。
2.计算其余的点分别到这三个中心点的距离(欧氏距离),每一个样本有三个距离(a,b,c),从中选出距离自己最近的一个中心点作为自己的标记,形成三个族群。
3.分别计算这三个族群的平均值(平均值有可能不是族群内数据本身的点),把这三个平均值与之前的三个旧中心点进行比较,如果相同 结束聚类,如果不相同 把这三个平均值当做新的中心点 重复第二步

聚类 做在分类之前。即如果数据没目标的时候,应该先做聚类,然后再做类别预测。

使族群之间的样本距离最大化,族群内的样本距离最小化。

轮廓系数

对于每个样本
1.计算样本1到自身类别下所有的点的距离平均值a_i
2.分别计算样本1到其它各类别下所有的点的距离平均值b1,b2,取其中最小的值当做b_i
3.计算样本1的轮廓系数

极端情况

b_i >> a_i 这种情况最完美,轮廓系数计算值是:1
a_i >> b_i 这种情况最糟糕,轮廓系数计算值是:-1

所以轮廓系数的取值范围在[-1,1]之间,越靠近1越好。

kmeans缺点:容易收敛到局部最优解