1.归类:
聚类 (clustering)属于非监督学习(UNsupervised learning)
无类别标记(class label)
2. K-means算法:
2.1 clustering中的经典算法,数据挖掘十大经典算法之一
2.2 算法接受参数K,然后将事先输入的n个对象划分为k个聚类以便使得所获得的聚类满足:同一聚类对象的相似度(大多数时候为距离的远近)较高,而不同聚类的对象相似度较小。
2.3 算法思想:
以空间的k个点为中心进行聚类,对最靠近他们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果
2.4 算法描述:
(1)适当选择c个类的初始中心;
(2)在第m次迭代,对任一一个样本,求其到c各中心的距离,将样本归到距离最短的中心所在的类;
(3)利用均值等方法更新该类的中心;
(4)对于所有的c个聚类中心,如果利用(2)(3)的迭代更新后,值保持不变,则迭代结束,否则继续迭代。
2.5 算法流程:
输入: K,data[n];
(1) 选择k个初始中心点,例如c[0] = data[0],...,c[k]=data[k-1]
(2) 对于data[0],...,data[n],分别与c[i]比较,假定与c[i]差值最小,就标记为i;
(3)对于多有标记为i的点,重新计算c[i] = {所有标记为data[j]之和}/标记为i的个数;(此处是重新找聚类中心,即标记为i的类的样本的中心)
(4)重复(2),(3),直到所有的c[i]值的变化小于给定的阈值。或者达到给定的迭代上限。
注意:
算法优点:速度快,简单
缺点:(1)最终的结果跟初始点选择相关,(2)容易陷入局部最优,(3)需要直到k值。、