第五章 聚类及其应用分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于划分的聚类方法 基于层次的聚类方法 基于密度的聚类方法 基于网格的聚类方法 基于模型的聚类方法
实际应用中的聚类算法,往往是上述聚类方法中多种 方法的整合
(1) 基于划分的聚类方法
给定一个n个对象或元组的数据库,一个划分方法构建 数据的k个划分,每个划分表示一个簇,并且k<=n。
具体过程如表:
m1 m2 K1 K2
2
4
{2,3}
{4,10,12,20,30,11,25}
2.5
16
{2,3,4}
{10,12,20,30,11,25}
3
18
{2,3,4,10}
{12,20,30,11,25}
4.75
19.6
{2,3,4,10,11,12}
{20,30,25}
7
25
{2,3,4,10,11,12}
(2) 基于层次的聚类方法
对给定数据对象集合进行层次分解
自底向上方法(凝聚agglomerative):
• 开始将每个对象作为单独的一个组,然后相继的合并相 近的对象或组,直到所有的组合并为一个,或者达到一 个终止条件。
自顶向下方法(分裂divisive):
• 开始将所有的对象置于一个簇中,在迭代的每一步,一 个簇被分裂为多个更小的簇,直到最终每个对象在一个 单独的簇中,或达到一个终止条件
典型算法:COBWEB和神经网络算法等。
主要内容
1 2 3 4 聚类分析基本概念 典型聚类算法简介 K-means算法的实现 聚类分析的应用实例
K-means算法简介
K-means算法是很典型的基于距离的聚类算法, 采用距离作为相似性的评价指标,即认为两个对 象的距离越近,其相似度就越大。该算法认为簇 是由距离靠近的对象组成的,因此把得到紧凑且 独立的簇作为最终目标。 K-均值聚类是属于划分方法中的基于质心技术的 一种方法,即簇的相似度是关于簇中对象的均值 度量,可以看作簇的质心(centroid) K-均值(k-means)是一种简便、实用的无监督 聚类分析算法。这种算法在已知簇的个数时,可 很好地实现数据的聚类分析。
• 可以过滤掉“噪声”和“离群点” • 发现任意形状的簇
典型算法:DBSCAN、OPTICS和DENCLUE等
(4) 基于网格的聚类方法
把对象空间量化为有限数目的单元,形成一个网 格结构。所有的聚类都在这个网格结构上进行。
优点:
• 处理数度快(因为处理时间独立于数据对象数目,只与 量化空间中每一维的单元数目有关)
重新分派…
10
10 9 8 7
重新分派
K=2 随机选择2个对象, 作为簇的中心
9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10
更新每 个簇的 均值
6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10
K-means聚类实例
假设给定如下要进行聚类的元组: {2,4,10,12,3,20,30,11,25},并假设k=2.初始时用前 两个数值作为类的均值;m=2 和 m=4.利用欧几里 德距离,可得K1={2,3}和 K2={4,10,12,20,30,11,25}。数值3与两个均值的距 离相等,所以任意地选择K1作为其所属类。在这种 情况下,可以进行任意指派。计算均值可得m1=2.5 和 m2=16。重新对类中的成员进行分配,不断重复 上述过程,直至均值不再变化。
Y
X
输出结果 1 2
簇中心
(2.610, 4.610) (2.00, 1.83) (1.5, 1.5) (2.105, 4.125) (1.8, 2.10) (5, 6)
簇点
2, 4, 6 1, 3, 5 1, 3 2, 4, 5, 6 1, 2, 3, 4, 5 6
K-means算法示例
10
10 9 8 7 6 5
10
9
wk.baidu.com
9
8
8
7
7
6
6
5
5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10
将每个 对象指 派到最 相似的 簇
4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10
更新每 个簇的 均值
4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 10
相异度矩阵:存储n个对象 两两之间的临近度
• 也叫单模矩阵,行和列代 表相同的实体 许多聚类算法都是以相异度矩 阵为基础,如果数据是用数据 矩阵形式表示,则往往要将其 先转化为相异度矩阵。
0 d(2,1) d(3,1 ) : d ( n ,1)
0 d ( 3,2 ) : d ( n ,2 ) 0 : ...
欧几里德距离(Euclidean Distance) 皮尔逊相关系数(Pearson Correlation Coefficient) Cosine相似度(Cosine Similarity) Tanimoto系数(Tanimoto Coefficient)
(1) 欧几里德距离
欧几里德距离,即欧氏距离,最早用于计算欧式 空间中两个点的距离。假设x,y是n维空间的两个 点,它们之间的欧式距离为:
... 0
1.4 对象间的相似度和相异度
由于数据对象大都可以表示为向量形式,因此判 断对象间的相似度和相异度通常是将所有数据对 象的向量看作向量空间中的点,然后通过计算向 量空间中点与点之间的距离衡量数据对象之间的 相似性。 常用的基于向量的相似度计算方法:
{20,30,25}
注意在最后两步中类的成员是一致的,由于均值 不再变化,所以均值已经收敛了。因此,该问题 的答案为: K1={2,3,4,10,11,12} 和 K2={20,30,25}
K-means算法评价
由上述流程可知:
k-均值算法是不断趋于最优解的试探过程。 每一次迭代都试图使簇中心的选择更加接近于数据集的实际簇中心。 k-means完全可以保证收敛性,但是对质心初始位置的选取比较敏感 ,但一般情况下k-means达到的局部最优已经满足需求。
Cosine相似度是计算文档数据之间相似性的最常用的 度量准则之一,如下式所示:
(4) Tanimoto系数
主要内容
1 2 3 4 聚类分析基本概念 典型聚类算法简介 K-means算法的实现 聚类分析的应用实例
2 典型聚类算法简介
聚类分析算法种类繁多,具体的算法选择取决于数据 类型、聚类的应用和目的,常用的聚类算法包括:
可以看出,当n=2时,欧式距离就是平面上两个 点的距离。当用欧式距离表示相似度时,一般采 用以下公式进行转换:
由此可知:欧式距离越小,相似度越大。
(2) 皮尔逊相关系数
皮尔逊相关系数一般用于计算两个变量间联系的 紧密程度,其取值在[-1,+1]之间,如下式所示:
(3) Cosine相似度
找到既满足约束条件(如聚类数k) ,又具有良好聚类 特性的数据分组
可解释性和可用性
聚类要和特定的语义解释和应用相联系
1.3 聚类分析中的数据类型
许多基于内存的聚类算法 采用以下两种数据结构
数据矩阵:用p个变量来表 示n个对象
• 也叫二模矩阵,行与列代 表不同实体
x 11 ... x i1 ... x n1 ... ... ... ... ... x 1f ... x if ... x nf ... ... ... ... ... x 1p ... x ip ... x np
Step 3 Step 2 Step 1 Step 0
divisive (DIANA)
(3) 基于密度的聚类方法
基于距离的聚类方法的缺点:
只能发现球状的簇,难以发现任意形状的簇。
基于密度的聚类:
只要临近区域的密度(对象或数据点的数目)超过某 个临界值(某一阈值),就继续聚类。 优点:
让生成的簇内部的任意两个对象之间具有较高的相似度 而属于不同簇的两个对象间具有较高的相异度。
聚类是一种无指导(无监督)的学习:
没有预定义的类编号
聚类分析的数据挖掘功能
作为一个独立的工具来获得数据分布的情况 作为其他算法的预处理步骤
有指导的学习 V.S. 无指导的学习
聚类分析
典型算法:STING、WareCluster和CLIQUE等
(5) 基于模型的聚类方法
为每个簇假定一个模型,寻找数据对给定模型的 最佳拟合。
一个基于模型的算法可能通过构建反映数据点空间分 布的密度函数来定位聚类 这种方法同时也用于自动的决定数据集中聚类的数目
• 通过统计学的方法,考虑噪声和离群点,从而产生健壮 的聚类方法
缺点:
• 合并或分裂的步骤不能被撤销
典型算法:CURE、Chameleon和BIRCH等
这类方法不需要预先给定参数(聚类数),但需要 终止条件。
Step 0 Step 1 Step 2 Step 3 Step 4
a b c d e
Step 4
agglomerative (AGNES)
ab abcde cde de
优势
算法简单; 执行和收敛过程相对较快;
局限性
必须事先知道聚类数; 算法要求簇是密集的、簇和簇之间的差异比较大; 对于某些孤立数据和“噪声”点敏感。
K-平均值算法:例
K-平均值算法的最优聚类标准
Y
数据实例与它们所对应的簇中心之间的误差平方和最小 K-平均值算法的几个应用
从统计学的观点看
聚类分析是对数据建模,从而简化数据的一种方法, 作为多元统计分析的主要分支之一,聚类分析已被研 究了很多年,主要集中在基于距离和基于相似度的聚 类方法。
从机器学习的观点看
簇相当于隐藏模式,聚类是搜索簇的无监督学习过程。
从实际应用的角度看
聚类分析是数据挖掘的主要任务之一。数据挖掘领域 主要研究面向大型数据库、数据仓库的高效和实用的 聚类分析算法。
每个组至少包含一个对象 每个对象属于且仅属于一个组
需要预先给定参数(聚类数k)
划分准则
同一个聚类中的对象尽可能的接近或相关,不同聚类中的对 象尽可能的远离或不同
簇的表示
k-平均算法(k-means算法)
• 由簇的平均值来代表整个簇
k中心点算法
• 由处于簇的中心区域的某个值代表整个簇
LOGO
第五章 聚类及其 应用分析
主要内容
1 2 3 4 聚类分析基本概念 典型聚类算法简介 K-means算法的实现 聚类分析的应用实例
1.1 什么是聚类?
聚类(Clustering)是将物理或抽象的对象集合分 成多个组的过程,聚类生成的组称为簇 (Cluster),即簇是数据对象的集合。 聚类就是要:
用于决定输入参数的领域知识最小化
对于高维数据,参数很难决定,聚类的质量也很难控制
处理噪声数据的能力
对空缺值、离群点、数据噪声不敏感
对于输入数据的顺序不敏感
同一个数据集合,以不同的次序提交给同一个算法, 应该产生相似的结果
高维性
高维的数据往往比较稀松,而且高度倾斜
基于约束的聚类
1.2 数据挖掘对聚类分析的九大要求
可扩展性(Scalability)
大多数来自于机器学习和统计学领域的聚类算法在处理数百 条数据时能表现出高效率
处理不同数据类型的能力
数字型;二元类型,分类型/标称型,序数型,比例标度型等 等
发现任意形状的能力
基于距离的聚类算法往往发现的是球形的聚类,其实现实的 聚类是任意形状的
K-means算法的基本思想
首先,随机选择k个数据点做为聚类中心; 然后,计算其它点到这些聚类中心点的距离,将 其划分为距离最近的中心点;并通过对簇中距离 平均值的计算,不断改变这些聚类中心的位置; 直到这些聚类中心不再变化为止。
K-means算法的实现
输入:n个数据的数据集合和已知的簇个数k 输出:n个数据各属于k个簇中哪个簇的信息 算法步骤: 1)任意从n个数据中选择k个作为初始的簇中心; 2)将剩余的n-k个数据按照一定的距离函数划分到 最近的簇; 3)按一定的距离函数计算各个簇中数据的各属性平 均值,作为新的簇中心(质心); 4)重新将n个数据按照一定的距离函数划分到最近 的簇; 5)repeat 3和4 6)until 新的质心与原质心相等或小于指定阈值。
相关文档
最新文档