一.KMeans算法
1.KMeans算法原理
-->无监督学习.输入的只有特征值,目标值prediction是 模型训练得出来的
k-means其实包含两层内容:K表示初始中心点个数(计划聚类数),
means求中心点到其他数据点距离的平均值,
K自己设置(2,3,4,5,6,7,8),K必须大于数据本身的分散度
具体步骤如下:
1. 随机设置K个特征空间内的点作为初始的聚类中心
2. 对于其他每个点计算到K个中心的距离,
未知的点 选择最近的一个聚类中心点作为标记类别
3. 接着对着标记的聚类中心之后,
重新计算出每个聚类的新中心点(平均值)
4. 如果计算得出的新中心点与原中心点一样(质心不再移动),那么结束,否则重新进行第二步过程
伪代码:
输入:k, data[n];
1.选择k个初始中心点,例如c[0]=data[0],…c[k-1]=data[k-1];
初始点的选择,利用的是Kmeans++的算法(在Kmeas算法的基础上).在让这两个点尽可能远,这样影响会降低.
2.对于data[0]….data[n], 分别与c[0]…c[k-1]比较,假定与c[i]差值最少,就标记为i;
怎么标记i,比如用字典保存,key为i,value为类别.
3.对于所有标记为i点,重新计算c[i]={ 所有标记为i的data[j]之和}/标记为i的个数;
4.重复(2)(3),直到所有c[i]值的变化小于给定阈值。
2.Kmeans算法特点
优点:速度快,简单
&n