聚类笔记(上):基本概念

来源:互联网 发布:淘宝店铺装修素材包 编辑:程序博客网 时间:2024/05/21 04:20

目录

  • 目录
  • 概述
  • 划分方法
    • Kmean算法
    • K中心法
  • 层次聚类
    • 簇间距离
  • 基于密度
  • 基于网格
  • 聚类评估
    • 聚类趋势
    • 确定簇数
      • 经验值
      • 对于层次聚类的簇数确定3
    • 聚类簇评估4
      • 非监督评估方法
      • 有监督评估方法
  • 参考

概述

划分方法、层次、基于密度、基于网格
这里写图片描述

划分方法

Kmean算法

这里写图片描述
kmean算法不能保证收敛于与全局最优,收敛结果依赖于初始化中心的选择。实际应用常用不用的初始化中心进行多次Kmean
keam是基于最小化SSE的划分方法
缺陷:
- 需要预设簇数k
- 不适合非凸形状的簇
- 不适合簇的样本数差别悬殊的情况
- 易受到异常值影响

K中心法

k中心法的典型算法是PAM:Partitioning Around Medoids
详细步骤参考:https://en.wikipedia.org/wiki/K-medoids#Step_1
算法流程:
1 在数据集中随机选择不重复的k个样本做为簇中心:o1o2,···,oi,···,ok
2 按就近原则对余下样本进行划分
3 对于簇i(其中ik):
3.1 随机选择簇中一个非中心点orandom,用orandom代替oi。现在备选中心点集合为o1o2,···,orandom,···,ok
3.2 按就近原则对余下nk个样本进行划分,并计算总体损失,如果整体损失下降,用orandom代替oi
4 重复步骤3,直到达到迭代上限或损失不再明显下降

基本思想:最小化代表对象和所有对象的绝对误差L1。其代价函数为对用于簇中心代表对象的平均绝对误差

改进
PAM鲁棒性比Kmean强,但复杂度大大提高,为了适应大规模的数据集,出现改进算法CLEARA(Clustering LARge Application,大型应用聚类)。
CLEARA是对数据集进行随机抽样,然后抽样数据集上进行PAM

层次聚类

层次聚类又称系统聚类,层次聚类的一个关键点在于选择合适的簇间距离度量方式

簇间距离

层次聚类的关键是选择合适的簇间距离计算方式,设簇MKL合并,D表示簇间聚类,d表示两个样本的距离
以下是几种常见的簇间距离1
最小距离
DKL=miniGKjGL(dij)
递推一下得:
DMJ=miniGMjGJ(dij)=min{DKJ,DLJ}
最短距离又称单链接距离,用最短距离的层次聚类又称最小生成树算法,效果如下图
这里写图片描述

最长距离
DKL=maxiGKjGL(dij)
递推一下得:
DMJ=maxiGMjGJ(dij)=max{DKJ,DLJ}

中间距离(median method)
D2KL=1/2D2KJ+1/2D2LJ1/4D2KL
几何示意图如下:
这里写图片描述

类平均距离
类平均法有两种定义
定义1
DKL=1nKnLdij
递推公式:
DMJ=1nMnLdij=nKnMDKJ+nLnMDLJ

定义2
D2KL=1nKnLd2ij
递推公式
D2MJ=1nMnLd2ij=nKnMD2KJ+nLnMD2LJ

重心法
D2KL=(x¯Kx¯L)T(x¯Kx¯L)
递推公式:
D2MJ=nKnMD2KJ+nLnMD2LJnKnLn2MD2KL

重心法对异常值和离群值的鲁棒性高

Ward

WK=(xix¯K)T(xix¯K)
WJ=(xix¯J)T(xix¯J)
WM=(xix¯M)T(xix¯M)

D2KL=WMWKWJ=nKnLnM(x¯Kx¯L)T(x¯Kx¯L)

递推公式:
D2MJ=nJ+nKnJ+nMD2KJ+nL+nJnJ+nMD2LJnJnJ+nMD2KL

Ward和重心法只差一个常数,重心法和类间距离和样本数无关,而Ward的值受样本数大的影响较大,当两个簇的样本数很大时候距离会很大,则不易合并
Ward对异常值敏感

总结
最小距离:擅长处理非椭圆形状的簇;对噪声和离群点敏感
最大距离:对噪声和离群点不敏感;偏好球形簇

Ward:
Ward和重心法只差一个常数,重心法和类间距离和样本数无关,而Ward的值受样本数大的影响较大,当两个簇的样本数很大时候距离会很大,则不易合并
Ward对异常值敏感

基于密度

(略)

基于网格

(略)

聚类评估

聚类评估主要有以下三个内容
1 估计聚类趋势:评估数据分布是否有聚类的意义
2 确定簇数
3 聚类质量评估

聚类趋势

聚类趋势度量指数据集是否有聚类的价值,如果数据集是随机均匀地分布,则聚类的价值很低。

评估指标
Hopkins统计量2

确定簇数

Kmean和PAM等算法都需要设置簇数,下面有一些统计量用于选择类别数K

经验值

一个简单的经验方法是对于n个数据样本的数据集,簇数可以选择为n/2

对于层次聚类的簇数确定3

R2统计量
R2=1PG/T
其中PG为簇数G的总类内离差平方和,T为所有变量的总离差平方和。R2越大越好。

半偏相关
把类CKCL合并为CM时,半偏相关系数为R2=BKL/T

其中BKL为合并类导致的内类离差平方和增量。系数越大说明两个类不应该合并

伪F统计量
F=(TPG)/(G1)PG/(nG)
选择伪F统计量较大,而类数较小的聚类结果

伪t统计量
t2=BKL(WKWL)/(NK+NL2)
此统计量用于评价类K和L合并的效果,如果值大这说明不应该合并

聚类簇评估4:

非监督评估方法

1 划分聚类评估
在数据挖掘导论中,对于划分方法的评估主要针对基于原型和图两种簇类型进行评估。

基于凝聚和分离的度量
对于原型和图两种不同的簇类型,仅仅是在计算凝聚度和分离度上存在差异,单整体思想是一致的
簇总体有效性度量公式如下
这里写图片描述
其中validity函数可以是凝聚度或分离度,也可以是两种的组合

轮廓系数5
轮廓系数是综合了凝聚度和分离度的综合指标,该指标不仅能用于度量簇的有效性,还能度量每个样本在聚类结果中的有效性

基于近邻度矩阵
理想的聚类效果同一个簇中的,样本间的相似度为1,而不同簇间的相似度为0。根据这个原则和聚类结果构建一个理想相似度矩阵,该矩阵中通一个簇的一对点相似度为1。然后计算理想和实际相似度矩阵之间的相关系数(注意值计算矩阵的下三角部分)

2 层次聚类评估6
层次聚类簇评估通过共性分类矩阵进行评估,思想和划分聚类基于近邻度的评估方法有点相似,都是计算两个矩阵的下三角的部分的相关系数。
共性分类距离矩阵的计算公式参考《数据挖掘导论,P338》

有监督评估方法

有监督的评估又称外在方法,和有监督的训练方法的评估是十分相似的

参考


  1. 统计建模与R软件 ↩
  2. 数据挖掘导论 ↩
  3. P330聚类分析(http://stat.smmu.edu.cn/field/sas07.htm) ↩
  4. 数据挖掘导论 P340,数据挖掘:概念与技术 P316 ↩
  5. 数据挖掘导论 P336 ↩
  6. 数据挖掘导论 P338 ↩
0 0
原创粉丝点击