聚类分析是一种在没有给定划分类型的情况上,根据数据相似度进行样本分组的方法。
和分类模型的区别就是聚类模型是建立在一组没有类标记的数据上,是一种没有监督的学习方法。
聚类分析根据数据间的相识度进行分组,相识度越高的数据间距离越小;反之,越大。
常用的聚类方法
- 划分方法
- 层次分析
- 基于密度
- 基于网格
- 基于模型
常用聚类算法
- K-means聚类:基于距离的非层次聚类算法,在最小化误差函数的基础上,将数据划分为预定的类树k,采用距离作为相似性的评价标准,两个数据对象的距离差距越大,相似性越低。
缺点:1. k值的选择对结果有影响 2. 初始选择的每个中心点会影响后面模型的精度。3. 不能发现非凸形状的簇,或大小差别很大的簇 4. 对噪声和离群点敏感
预处理:
A. 对于连续属性,要进行零-均值规范,再进行距离计算:欧几里得距离,曼哈顿距离,闵可夫斯基距离。多用欧几里得距离,其它距离不一定保证收敛。
B. 对于文档数据,使用余弦相似度量。将文档整理成文档-词矩阵。
算法过程:
A. 从N个样本中随意抽取k个对象作为初始的聚类中心。
B. 分别计算每个样本到各个聚类中心的距离,将样本匹配到距离最近的中心
C. 所用样本分配完后,重新计算每个聚类中心所有数据的平均值作为新的聚类中心。
D. 如果新的聚类中心和原来的比发生了变化,重复B;否则,输出聚类结果。
目标函数:
使用误差平方和SSE作为度量聚类质量的目标函数。平方和越小,越准确。
须知:该结果很大程度上依赖于最初的盲选的中心,结果最后不一定最优,所以最好对同一数据集,多次选着不同的中心使用该算法。
聚类分析算法的评价:
A. purity 评价
B. RI 评价