赞
踩
1、基本概念;
聚类分析简称聚类(clustering),是一个把数据集划分成子集的过程,每一个子集是一个簇(cluster),使得簇中的样本彼此相似,但与其他簇中的样本不相似。
聚类分析不需要事先知道样本的类别,甚至不用知道类别个数,因此它是一种典型的无监督学习算法,一般用于数据探索,比如群组发现和离群点检测,还可以作为其他算法的预处理步骤。
在工作中遇到用户画像、群组划分问题,而kmeans聚类这一无监督学习算法,可以在无数据标注训练情况下,基于距离按将群组划分不同的簇。
主要的聚类算法一般可以划分为以下几类:
方法 | 一般特点 |
---|---|
划分方法 | 1.发现球形互斥的簇 2.基于距离 3.可用均值或中心点代表簇中心 4.对中小规模数据有效 |
层次方法 | 1.聚类是一个层次分解 2.不能纠正错误的合并或划分 3.可以集成其他技术 |
基于密度的方法 | 1.可以发现任意形状的簇 2.簇是对象空间中被低密度区域分隔的稠密区域 3.簇密度 4.可能过滤离群点 |
基于网格的方法 | 1.使用一种多分辨率网格数据结构 2.快速处理 |
Kmeans属于划分方法的经典聚类方法。
算法步骤如下:
选择K个点作为初始质心(随机产生或者从D中选取)
repeat
将每个点分配到最近的质心,形成K个簇
重新计算每个簇的质心
until 簇不发生变化或达到最大迭代次数
2.1 k值选取
k的值是用户指定的,表示需要得到的簇的数目。在运用Kmeans算法时,我们一般不知道数据的分布情况,不可能知道数据的集群数目,所以一般通过枚举来确定k的值。另外,在实际应用中,由于Kmean一般作为数据预处理,或者用于辅助分类贴标签,所以k一般不会设置很大。
Kmeans算法对初始质心的选取比较敏感,选取不同的质心,往往会得到不同的结果。初始质心的选取方法,常用以下两种的简单方法:一种是随机选取,一种是用户指定。
需要注意的是,无论是随机选取还是用户指定,质心都尽量不要超过原始数据的边界,即质心每一维度上的值要落在原始数据集每一维度的最小与最大值之间。
距离度量方法(或者说相似性度量方法)有很多种,常用的有欧氏距离,余弦相似度,街区距离,汉明距离等等。在Kmeans算法中,一般采用欧氏距离计算两个点的距离,欧氏距离如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。