聚类综述

尽量让自己快乐


聚类分析

即使很小的孩子也能很快将图片上的对象划分为车、人、建筑等,聚类就是利用机器模拟人类实现这样的划分。其目标是:聚类分析将数据划分成有意义或者有用的组(簇),组内的对象尽可能相似,组间(不同组)之间的对象差别尽可能大。
聚类

聚类:刚开始对数据集所属组(类别)并不清楚,利用每个对象个体的属性之间区别去区分所有样本所属组。

聚类应用

聚类分析利用数据分布进行独立划分,现实生活中:
* 商务上,聚类能帮助市场分析人员从客户基本库中发现不同的客户群,并且用不同的购买模式来刻画不同的消费群体的特征。* 生物学上,聚类能用于帮助推导植物和动物的种类,基因和蛋白质的分类,获得对种群中固定结构的认识。
* 聚类也能用来对web上的文档进行分类,以发现有用的信息
聚类也可为其他算法的预处理:异常点检测、模式识别、数据压缩

聚类类型

聚类也可以利用不同的方法进行组划分:基于距离(划分及层次)、基于密度、基于网格、基于模型、模糊聚类2

聚类评价指标

基于划分的方法(Partition-based methods):

思想:给定一个数据集D,假设划分数为k:创建初始划分(中心点),采用迭代将数据不断在这些中心点集合中移动。移动目的:将每个点划分到与它最近的点集,不同中心点集尽可能远。区分工具:每个样本属性间的距离计算。

基于划分聚类算法:
基于划分算法

Kmeans

Kmeans为一种典型的基于划分的聚类,由于该算法的效率高,所以在对大规模数据进行聚类时被广泛应用。
Kmeans聚类流程

算法流程
输入:数据集D及k个簇数目
输出: k个族
(1)从数据集D随机选择k个样本作为初始簇中心点
(2)对数据集D中每个样本,计算其与K个中心点距离,将其加入距离最近的中心点所属集合中
(3)对每个簇,计算所有对象(每个属性)的平均值,将此平均值对象作为此簇新的中心点
(4)重复(2)(3),直到符合终止条件:达到指定的迭代次数、中心点集不再变化、准则函数收敛

时间复杂度:O(tKmn),其中,t为迭代次数,K为簇的数目,m为记录数,n为维数
空间复杂度:O((m+K)n),其中,K为簇的数目,m为记录数,n为维数

Kmeans优缺点
优点:简单、时间复杂度低
缺点:
k值:K值大小需手动确定、k个初始点随机确定
数据类型:只能用于numerical型
距离计算:对噪声和离群值非常敏感

优化:
canopy粗聚类实现k值确定及k个初始点确定

Canopy粗聚类优化

一种粗聚类(点可属于多个类别),速度快但精度低,所以一般作为优化kmeans算法的辅助手段。通过Canopy,可快速确定k及k个初始点

Canopy算法
算法流程

基于层次划分(Hierarchicalmethods)

对数据集进行层次分解,分为自低向上的凝聚聚类和自顶向下的分裂聚类。

分级聚类

分裂聚类流程:初始全部对象为一个类,一层层分解划分直到每个对象自成一类
凝聚聚类流程:初始每个对象为一类,将类逐渐合并直到所有对象为一个类

层次划分算法:
层次划分算法

层次聚类的主要问题:
1、缺乏全局目标函数,也就是说层次聚类技术使用各种标准,在每一步局部地确定哪些类应该合并或者分裂。
2、需要考虑大小类的临近合并能力
3、每次合并或分裂都是局部最优的,但一旦做出决策不能撤销,阻碍了局部最优解变成全局最优。
4、最噪点、多维数据处理比较困难。
5、由于较高的时间复杂度,一般会较少使用

基于密度的方法(Density-based methods)

背景:k-means只能发现球状的类,解决不了不规则形状的聚类,
思想: 思路就是定一个距离半径,最少有多少个点,然后把可以到达的点都连起来

基于密度算法:
基于密度算法
最典型代表算法:DBSCAN、OPTICS和DENCLUE
基于密度算法缺点:
算法计算度很高: o(n^2)
不适合密度分布不均的数据集

DBSCAN

DBSCAN
算法流程
输入:数据集、圆半径eps、最小点minPoints
输出:密度结果集
(1)初始数据集点:ABCN
(2)选取A为算法初始点,以A为中心点,半径eps范围内。找到密度可达点,若点数大于等于minPoints,它们成为一个簇,并标记为边缘点
(3)边缘点集中选取一个点,再次划圆。若点数超过minPoint,记该点为中心点。
(4)递归边缘点集合直到所有边缘点被处理完,标记完以A为初始的聚类,图红色为中心点、黄色为边缘点。
(5)若还有point为处理,再次新产生一个类别来重启上述步骤
(6)当所有点都遍历完。存在点既不是中心点也不是边缘点,此点为噪音

时间复杂度:O(nlog(n))
涉及概念

DBSCAN优缺点:
优点:
1. DBSCAN不需要事先知道要形成的簇类的数量。
2. DBSCAN可以发现任意形状的簇类。
3. DBSCAN能够识别出噪声点。

缺点:
1. DBScan不能很好反映高尺寸数据。
2. DBScan不能很好反映数据集变化的密度。
3. 不适合高纬度高稀疏数据

基于网格计算

基于网格算法:

参考博客
[1] http://www.cnblogs.com/taojake-ML/p/6144266.html)
[2] http://blog.chinaunix.net/uid-10289334-id-3758310.html
[3] https://wenku.baidu.com/view/9eff29b752d380eb63946d3f.html
[4] http://blog.pureisle.net/archives/1982.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值