一、K-means算法思想
1.定义
是一种原型聚类。
原型表示:均值向量
迭代方式:根据均值向量的公式,重新计算出新的均值向量。
2.目标
簇内相似度高,簇外相似度低。即:紧密而独立
3.流程
随机挑选k个样本作为均值向量(初始化)——计算各个样本到均值向量的距离——划分样本到离其最近的均值向量所属的那个簇——重新计算每个簇的均值向量——重复2、3、4步直到均值向量不再被更新(改变)——结束
实际当中,为避免算法运行时间过长,不会运行到均值向量不再更新,而是会设置一个终止条件,当整个过程满足这个终止条件时,算法将结束。
终止条件可以是以下任意一个:
- 没有(或最小数目)对象被重新分配给不同的聚类;
- 没有(或最小数目)均值向量再发生变化;
- 误差平方和局部最小。
4.算法要点
(1)计算距离时,K-means通常采用欧式距离
(2)计算均值向量时,采用公式:
二、补充背景知识
1.监督学习和无监督学习
(1)监督学习:
指训练集有标签,学习得到的模型用于将测试集进行分类or回归
(2)无监督学习:
指训练集没有标签,学习得到的模型用于揭示数据的潜在内涵(不用测试集进行测试,而是用性能度量对结果进行评估)我猜的,待定
2.聚类的类型
根据算法思想进行分类,常见有原型聚类和密度聚类。
(1)原型聚类
思想:假设簇类结构可以通过一组具有代表性的样本(即:原型)来刻画
流程:初始化原型→迭代更新原型→直到所有原型不再变更→算法结束
核心:原型的表示+迭代的计算方式
(2)密度聚类
思想:假设簇类结构可以通过样本分布的紧密程度(即:密度)来刻画
流程:待补充
3.距离度量
当样本之间需要进行相似性度量(similarity measure)时,一般采用距离度量的方法来定义相似度。即:样本之间距离越大,相似度越低。
距离度量的计算方式有很多种,依据具体情况来选择。
e.g. 欧式距离,曼哈顿距离,切比雪夫距离等
三、代码实现