数据挖掘(聚类)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最短距离法举例
样本点 A B C D E A 0 0.4 2 2.5 3 B 0.4 0 1.6 2.1 1.9 C 2 1.6 0 0.6 0.8 D 2.5 2.1 0.6 0 1 E 3 1.9 0.8 1 0
样本点 A
A 0
B 0.4
C 2
D 2.5
E 3
B
C
0.4
2
0
1.6
1.6
0
2.1
• 比例标度型变量:比例标度型变量是在非 线性的标度上取正的测量值,诸如指数比 例,AeBt或Ae-Bt(A和B为正的常数)。
• 混合类型的变量:在实际数据库中,数据对 象往往是用复合数据类型来描述;而且它们 常常同时包含几种数据类型。
基本聚类方法概述
• • • • 划分方法 层次方法 基于密度的方法 基于网格的方法
层次聚类方法
• 层次聚类方法对给定的数据集进行层次的分解, 直到某种条件满足为止。具体又可分为:
凝聚的层次聚类:一种自底向上的策略,首先将每个对 象作为一个簇,然后合并这些原子簇为越来越大的簇 ,直到某个终结条件被满足。 分裂的层次聚类:采用自顶向下的策略,它首先将所有 对象置于一个簇中,然后逐渐细分为越来越小的簇, 直到达到了某个终结条件。
数据矩阵(data matrix)是 一个对象-属性结构,是由n 个对象组成,利用p个属性 来进行n个对象的描述.采 用Xn×p表示
11 i1 n1
x , x12, x13,......,x1 p .......... .......... .... x , xi 2, xi3,......,xip .......... .......... .... x , xn2, xn3,......,xnp
k均值方法与k中心点方法比较
• 存在噪声和离群点时,k均值方法敏感,采 用k中心点方法。
• k均值方法与k中心点方法都需要用户指定 簇数k • 复杂度比较 k均值方法:O(nkt) n是对象总数 ,k是簇数,t是迭代次数 k中心点方法:O(k(n-k)2)
k中心点方法在应用于大数据集时,没有良好的可伸缩,采用CLARA方法。
相异度矩阵是一个对象-对象结构.它存放所有n个 对象两两之间所形成的差异性(相似性).相异度矩 阵采用d(i,j) n×n的下三角矩阵表示。d(i,j)是对 象i和j之间相异性的量化表示,通常为非负值,两 个对象越相似或“接近”,其值越接近0,越不同, 其值越大。 相异度矩阵可用距离公式计算得到,相异度也称 为距离(主要欧氏距离和曼哈顿距离)。
对聚类分析的要求
• • • • • • • • • 可伸缩性 处理不同类型属性的能力 发现任意形状的聚类 用于决定输入参数的领域知识最小化 处理噪声数据和孤立点的能力 对于输入纪录的顺序不敏感 高维性 基于约束的聚类 可解释性和可用性
聚类分析中的数据结构
聚类算法中有数据矩阵和相异度矩阵两种 数据结构.但许多聚类算法都是以相异度矩 阵为基础,如果数据是用数据矩阵形式表 示,则往往要将其先转化为相异度矩阵。
pCi qC j
| p q |
其中p,q分别是簇Ci 和Cj的对象,ni是簇Ci 中对 象的数目
• 算法采用最小距离定义时,簇之间合并称为最近 邻聚类算法。如果当最近的两个簇之间的距离超 过用户给定的阈值时聚类就会停止,称为单链接 算法。 • 算法采用最大距离定义时,簇之间合并称为最远 邻聚类算法。如果当最近的两个簇之间的最大距 离超过用户给定的阈值时聚类就会停止,称为全 链接算法。
划分聚类方法
• 给定n个数据对象的数据集D,及要生成的 簇数k,划分算法把数据对象组成k(k<=n) 个分区,其中每个分区代表一个簇。而且k 满足以下条件: 1.每一个簇至少包含一个对象 2.每一个对象属于且仅属于一个簇。 • 常用的划分方法 k-均值:一种基于形心的技术 k-中心点:一种基于代表对象的技术
E是数据集中所有对象p与Ci的代表对象0i的绝对误差之和。
k-中心点算法
• 首先为每个簇随意选择一个代表对象,剩余的对象根据其 与每个代表对象的距离(此处距离不一定是欧氏距离,也 可能是曼哈顿距离)分配给最近的代表对象所代表的簇; 然后反复用非代表对象来代替代表对象,以优化聚类质量, 直到结果聚类的质量不可能被任何替换提搞。
• 曼哈顿距离:
i=(xi1,xi2,…,xip) j=(yj1,yj2,…,yjp)
PAM算法
• PAM是最早提出的k-中心点算法之一,它 选用簇中最中心的对象作为代表对象。 • 为了判定一个非代表对象Orandom是否可以 替代当前一个代表对象Oi(中心点),对于每 一个对象p,下面的四种情况被考虑:
• 层次凝聚的代表是AGNES算法。层次分裂的代表 是DIANA算法。
AGNES算法
a
b
c
d
e
AGNES算法
a
ab b
c
d
e
AGNES算法
a
ab b
c
d de e
AGNES算法
a
ab b
c cde d de e
AGNES算法
a
ab b abcde
c cde d de e
AGNES和DIANA算法
0.6
1.9
0.8
D
2.5
2.1
0.6
0
1
E
3
1.9
0.8
1
0
A
B
C
D
E
样本点
AB
C
D
E
AB
0
1.6
2.1
1.9
C
1.6
0
0.6
0.8
D
2wk.baidu.com1
0.6
0
1
A
E 1.9 0.8 1 0
B
C
D
E
样本点
AB
CD
E
AB
0
1.6
1.9
CD
1.6
0
0.8 A B C D E
E
1.9
0.8
0
样本点
AB
CDE
AB
0
1.6
CDE
1.6
0
A B C D E
Birch算法
• Birch算法是层次聚类算法之一,该算法引入了聚类特征 和聚类特征树(CF树)。 • CF是Birch聚类算法的核心,CF树中的节点都是由CF组 成,一个CF是一个三元组,这个三元组就代表了簇的所 有信息。给定N个d维的数据点{x1,x2,....,xn},CF定义如 下:
序号
属性1
属性2
1
2 3 4 5 6 7 8
1
2 1 2 4 5 4 5
1
1 2 2 3 3 4 4
第二次迭代:通过平均值调整对象 所在的簇,重新聚类。按离平均值 点(1.5,1)和(3.5,3)最近原则重 新分配,得到新簇(1,2,3,4), (5,6,7,8)计算新的平均值点 (1.5,1.5),(4.5,3.5) 第三次迭代:将所有点按离平均值 点(1.5,1.5)(4.5,3.5)最近原则 重新聚类调整簇,簇依然为 (1,2,3,4),(5,6,7,8),没发生 重新分配,程序结束。
• 标称型变量:是二元变量的一个扩展。标 称变量可对两个以上的状态进行描述,如: 红,橙,蓝,绿,青,蓝,紫。
• 序数型变量:一个序数型变量可是连续的, 也可是离散的。离散的序数型变量与标称 型变量相似。连续的序数型变量像一组未 知范围的连续数据,类似于区间标度变量, 但它没有单位,值的相对位置要比它的实 际数值有意义得多。
k-means算法的不足
• 必须事先给出要生成的簇数K,而且对初始 值敏感。 • 不适合用于发现非凸形状的簇,或大小差 别很大的簇,对噪声和离群点敏感。
为了解决k-means算法对离群点敏感这个 问题,引入了k-中心点算法
k-中心点算法
• k中心点方法不采用簇中对象的平均值作为簇中心, 而选用簇中离平均值最近的对象作为簇中心。 • k-中心点方法仍然是基于最小化所有对象与其参 照点之间的相异度之和的原则来执行的,使用了 一个绝对误差标准
• AGNES和DIANA算法比较简单,但一旦一组对象被合并 或撤销,下一步的处理将在新生成的簇上进行。已做处理 不能撤消,增加新的样本对结果的影响较大。因此,如果 合并或分裂选择不当,则可能导致低质量的簇。
• 假定在开始的时候有n个簇,在结束的时候有1个簇,因此 在主循环中有n次迭代,另外算法必须计算所有对象两两 之间的距离,因此这个算法的复杂度为 O(n2),该算法对 于n很大的情况是不适用的
两个簇之间的距离度量方法
最 小 距 离 最 大 距 离 均 值 距 离 平 均 距 离 d min (Ci , C j ) min pCi ,qC j p q d max (Ci , C j ) max pCi ,qC j p q d mean (Ci , C j ) p q d avg (Ci , C j ) 1 ni .n j
k-均值:一种基于形心的技术
• 基于形心的划分技术使用簇Ci的形心代表该 簇。从概念上来讲,簇的形心是它的中心 点,一般来说用分配给该簇的点的均值来 定义。 • 对象p∈Ci与该簇的代表ci之差用dist(p,ci) 度量,dist(x,y)是点x,y的欧氏距离。 欧氏距离:
i=(xi1,xi2,…,xin) 和 j=(yj1,yj2,…,yjn)
k-means算法示例
序号 1 2 3 4 5 6 7 8 属性1 1 2 1 2 4 5 4 5 属性2 1 1 2 2 3 3 4 4
设n=8,k=2; 第一次迭代:随机 选择序号1和3作为 初始点。 找到离二点最近的 对象,产生二个簇 {1,2}和{3,4,5,6,7,8}
均值点分别为 (1.5,1)(3.5,3)
相异度d(i,j)的具体计算会因所使用 的数据类型的不同而异。常用的数 据类型: 区间标度变量 二元变量 标称型、序数型和比例标度型变量 混合类型的变量
0 d(2,1) 0 d(3,1 ) d ( 3, 2 ) : : d ( n,1) d ( n,2)
0 : ... ... 0
• 区间标度变量:是一个粗略线性标度的连 续度量如重量、高度、温度等,选用的度 量单位将直接影响聚类的结果,度量单位 越小,变量的取值范围越大,对聚类效果 的影响就越大。需要实现度量值的标准化, 将原来的值转化为无单位的值。 • 二元变量:只有两个状态,取0或1值;其 中0代表状态不存在;而1则代表相应的状 态存在。根据0和1表示的重要性是否相同: 对称的二元变量:性别 不对称的二元变量:阴、阳性
• 数据对象 + 簇中心 ▬ 替换前 --- 替换后
Oi +
p
Oj +
Oi +
p
Oj + + Orandom
+ Orandom
1. 重新分配给Oi
2. 重新分配给Orandom
Oi + p
Oj + + Orandom
Oi +
p
Oj +
+ Orandom
4. 重新分配给Orandom
3. 不发生变化
k-means 算法基本步骤
1.从D(包含n个对象的数据集)中任意选择k 个对象作为初始簇中心; 2. 根据簇中对象的均值,将每个对象分配到 最相似的簇; 3. 更新簇均值,即重新计算每个簇中对象的 均值; 4.until不再发生变化;
不能保证k一均值方法收敛于全局最优解, 并且它常常止于于一个局部最优解。结 果可能依赖于初始簇中心的随机选择。
2 2 2 d (i, j ) (xi1 yi1) (xi 2 yi 2) ...... (xin yin)
• 簇Ci的质量可以用簇内变差度量,它是Ci中 所有对象和形心ci之间的误差的平方和,定 义为: • E是数据集中所有对象的误差的平方和;P是 空间中的点,表示给定的数据对象;ci是簇Ci: 的形心(p和ci都是多维的)
数据挖掘--聚类分析
胡志伟 何乐
什么是聚类?
聚类(clustering)也称为聚类分析 (某些应用 中也称数据分割),指将样本分到不同的组中 使得同一组中的样本差异尽可能的小,而 不同组中的样本差异尽可能的大。 聚类得到的不同的组称为簇(cluster)。
聚类和分类的区别
• 分类是一种监督学习,聚类是一种无监督 学习,二者最主要的区别是聚类的样本没 有类标号,而分类的样本具有类标号。 • 分类具有训练数据和测试数据,而聚类没 有训练,是通过观察学习。
PAM算法思想
• 每当重新分配发生时,E所产生的差对代价 函数有影响。因此,如果一个当前的代表 对象被非代表对象所取代,则代价函数就 计算绝对误差值的差,如第一种情况代价 为d(oi,p)-d(oj,p),交换的总代价 是所有非代表对象所产生的代价之和。 总代价为负,实际的绝对误差E将减少, Oj可以被Orandom所取代 总代价为正,则Oj不需被替换