Kmeans聚类
本次学习总结:
1、理解相似度度量的各种方法及其相互联系
2、掌握K-means算法思路及其使用条件
3、层次聚类的思路和方法
4、密度聚类并能够应用于实践
- DBSCAN
- 密度最大值聚类
5、谱聚类算法
谱聚类算法与PCA之间的关系
聚类的定义:
聚类就是将大量未知标注的数据,按照数据的内在相似性将数据划分为多个类别,使得类别之间的相似性较大而且类别见的相似性较小。是一种物件都学习算法。
相似度/距离计算方法总结
1、闵可夫斯基距离
2、杰卡德相似系数
3、余弦相似度
4、Person相似系数
5、相对熵距离(K-L)
6、Hellinger距离
各个距离公式的推导过程
Hellinger距离推导过程:
余弦相似度与Person相似系数:
N维向量x和y之间的夹角记作@,根据余弦定理得:
这两个向量之间的相关系数是:
相关系数即为X和Y坐标向量各自平移到原点的距离的夹角余弦。
聚类的基本思想
给定一个有N个对象的数据集,构造数据的K个族,k<=n,满足下列条件:
1、每一个族至少包含一个对象
2、每一个对象仅仅属于一个族
3、将满足上述条件的K个族做一个合理的划分。
基本思想: 给定N个样本,根据距离计算每一个样本属于哪一个族,然后利用迭代的思想改变样本和族的隶属关系。 使得每一次迭代之后划分比上一次的划分效果要好。
k-Means算法:
k-Means算法的过程图:
计算聚类中心的方法代码实例一:
计算聚类中心的方法代码实例二:
k-Means算法公式化解
记K个族中心为u1,u2,u3,…un,每个族的样本个数为N1,N2,N3,Nk.
使用平方误差作为目标函数:
该函数为关于U1,U2,U3,…的凸函数,其驻点为:
k-Means算法总结
优点:
1、是解决聚类问题的一种经典算法,简单,快捷
2、对处理大量的数据,该算法保持可伸缩性和高效率
3、当簇接近于高斯分布时,该算法效果较好。
缺点:
1、在簇的平均值定义的情况下才能使用,可能不适用于某些应用
2、必须要实现给出K值,对于不同的K值会有不同的分类结果
3、对噪声和孤立点数据敏感
聚类的衡量标准
1、均一性
含义: 一个簇类只包含一个类别的样本,则满足均一性
2、完整性
含义: 同类别的样本被归属于相同的簇中,则满足完整性
3、V-measure
含义: 均一性和完整性的加权平均
轮廓系数
计算样本i到同簇中其他样本的距离的平均ai,ai越小,说明样本i越归属于该簇,将ai成为簇内不相似度。
簇的不相似度: 簇C中所有样本的ai的平均值
簇间不相似度: 计算样本i到其他簇的所有样本的平均距离。
轮廓系数: 根据样本i的簇内相似度和簇间相似度。
S(i)越接近1,说明样本i聚类越合理,-1,则说明样本不该属于该簇类,0,说明在边界上。
所有样本的S(i)的均值为聚类结果的轮廓系数,是该聚类是否合理、有效的度量。
层次聚类方法
1、层次聚类方法是对给定的数据集进行层次的分解,直到满足某种条件就停止,具体可以分为:
凝聚的层次聚类和分裂的层次聚类。
参考文献:
[1] 统计学习方法–李航
[2] 机器学习–周志华