K-Means & Fuzzy C-Means
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Means聚类法,但其权重矩阵 W 不再是二元矩 阵,而是应用了模糊理论的概念,使得每一输
入向量不再仅归属于某一特定的聚类,而以其 归属程度来表现属于各聚类的程度
http://www.cs.uwf.edu/~jbezdek/
Fuzzy C-Means聚类法
目标函数 J 为(5)式
J
Kห้องสมุดไป่ตู้
Ji
Colour
red black red gray blue white black red gray
Air resistance 0.30 0.32 0.29 0.35 0.33 0.40 0.50 0.60 0.55
Weight Kg 1300 1400 1500 800 950 600 3000 2500 3500
Tiles data: o = whole tiles, * = cracked tiles, x = centres
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
-8
-6
-4
-2
0
2
log(intensity) 475 Hz
Iteration 5
Tiles data: o = whole tiles, * = cracked tiles, x = centres
(这个要求在某些模糊聚类算法中可以放宽)
(2)每一个数据纪录属于且仅属于一个分组
聚类(Clustering)-划分法
• 对于给定的K,算法首先给出一个初始的分 组方法,以后通过反复迭代的方法改变分 组,使得每一次改进之后的分组方案都较 前一次好
• 而所谓好的标准就是:同一分组中的记录 越近越好,而不同分组中的纪录越远越好
聚类(Clustering)-划分法
• 使用这个基本思想的算法有:
K-MEANS算法
Fuzzy C-Means算法
K-MEDOIDS算法
Clara算法
CLARANS算法
Vehicle Example
Vehicle
V1 V2 V3 V4 V5 V6 V7 V8 V9
Top speed
(km/h)
220 230 260 140 155 130 100 105 110
(1)
4. 以(4)式更新聚类的中心点。回到步骤2
n
wji X j
Ci
j 1 n
wji
j 1
(4)
N 次迭代以后
K-means编程步骤
1. 设定聚类数目K,最大执行步骤tmax,一个很小的容忍误差ε>0
2. 决定聚类中心起始位置Cj(0),0 < j ≤ K
3. for t=1,......,tmax
• (A)for j=1,......,N
– (i)计算各数据点到聚类中心的距离
d (t) ij
X j Ci(t1) ; i 1,...K
–
(ii)计算数据点属于哪一聚类(隶属度矩阵)wji
1,
arg
min iK1{d
} (t )
ji
0, otherwise
N
w(t) ji
X
j
• (B)更新聚类中心 Cit j1
N ;i 1,...K
w(t) ji
j 1
1. (C)计算收敛准则,若 E(t) J (t) J (t1) 算,否则进行下一轮迭代 E(t)= C(t) C(t1)
成立则停止运
使用K-Means聚类法
• 需事先确定聚类的数目K
• 若初始聚类中心位置不理想,使得目标 函数 J 落入局部解,最后分类出来的群 集将不甚理想
K-Means & Fuzzy C-Means
报告人:马宝秋
聚类(Clustering)
• “物以类聚,人以群分”
• 是对于静态数据分析的一门技术,在许多 领域受到广泛应用,包括机器学习,数据 挖掘,模式识别,图像分析以及生物信息
聚类(Clustering)
• 聚类是把相似的对象通过静态分类的方法分 成不同的组别或者更多的子集(Subset), 这样让在同一个子集中的成员对象都有相似 的一些属性
2
1
0
log(intensity) 557 Hz
-1
-2
-3
-4
-5
-6
-7
-8
-8
-6
-4
-2
0
2
log(intensity) 475 Hz
Iteration 10
Tiles data: o = whole tiles, * = cracked tiles, x = centres
Vehicle Clusterings
Weight (kg)
3500
3000
Lorries
2500 2000
Sports cars
1500 1000
Medium market cars
500
100
150
200
250
300
Top speed (km/h)
feature
Weight (kg)
Terminology
K-means实现步骤
1. 随机选取k个数据点Ci,i=1,…,k,并将之分 别视为各聚类的初始中心
2. 决定各数据点所属之聚类,若数据点Xj判定属 于第 i 聚类,则权重值wji = 1,否则为 0
w ji
1,
if X j Ci X j Cm ,
m j
0,
otherwise
且满足:
k
kn
使用K-Means聚类法
使用K-Means聚类法
Cluster 形状以类圆形为主
使用K-Means聚类法
K-Means聚类分析是一种硬划分(Hard Clustering),它把每个待辨识的对象严格 地划分到某个类中,具有非此即彼的性质
200 210 250 20 20 20 20 20 20
Object or data point
3500
3000
Lorries
2500 2000 1500 1000
cluster
label
Medium market cars
Sports cars
500 100
150
200
250
Top speed (km/h)
feature
feature space
300
• 基于模型的方法给每一个聚类假定一个模 型,然后去寻找能个很好的满足这个模型 的数据集
• 它的一个潜在的假定就是:目标数据集是 由一系列的概率分布所决定的
聚类(Clustering)-划分法
• 给定一个有N个元组或者纪录的数据集,构 造K ( K < N)个分组,每一个分组就代表 一个聚类
(1)每一个分组至少包含一个数据纪录
KN
wmji
2 X j Ci
i 1
i1 j1
其中:
– Xj 为数据点 – Ci 为聚类中心点 – N 为数据个数
– K 为聚类中心点个数
– m 为权重指数
(5)
与K-Means不同点
样本点 Xj
聚
0.0025 0.0091 0.0129 0.0001 0.0107 0.9393 0.9638 0.9574 0.9906 0.9807
• 其他分析算法的一个预处理步骤
• 在这一过程中没有监督,因此是一种无监督 的分类
聚类(Clustering)
• 聚类分析的算法可以分为:
• 划分法(分割式)(Partitioning Methods) • 层次法(阶层式)(Hierarchical Methods) • 基于密度的方法(Density-based Methods) • 基于网格的方法(Grid-based Methods) • 基于模型的方法(Model-Based Methods)
K-Means聚类法(C-Means)
– 将N个数据依照其数据特征聚类为K类的聚类算法, K为一正整数
– 目标在于求各个数据与其对应聚类中心点距离平方 和的最小值
K
KN
2
J Ji
wji X j Ci
i 1
i1 j1
(1)
– Ji 为第 i 类聚类的目标函数 – K为聚类个数
– Xj为第 j 个输入向量 – Ci为第 i 个聚类中心(向量) – wji 为权重 (Xj 是否属于聚类Ci)
• Cheung和Chen从汉字识别的应用背景得出的最 佳取值应在1.25~1.75之间
• 高新波等和刘宜平等分别提出了基于模糊决策的 m值优选方法
• 这些有关m的取值方法,实际上都可以看成是对分 类结果的评价问题
Fuzzy C-means 实现步骤
1. 设定分类个数 k,设定初始权重矩阵,随机给定 0~1 之值,并满足权重总和为 1 如(6)式
wji 1, j 1, ..., n, wji n
i 1
i1 j1
(3) (2)
K-means实现步骤
3. 由(1)式计算目标函数 J,如果 J 保持不变,代表聚 类结果已经稳定不变,则可结束此迭代方法,否则进 入步骤4
k
kn
2
J Ji
w ji X j Ci
i 1
i 1 j 1
K-means的归属矩阵
K
KN
wji 1,j 1,..., N;
wji N
i 1
i1 j1
(2)
w ji
1,
if X j Ci X j Cm ,
m j
0,
otherwise
(3)
数据点 Xj
1 0 1 0 0 0 1 0 0 W 0 1 0 1 0 1 0 0 0 聚类Ci
0 0 0 0 1 0 0 1 1
• 这样就能克服基于距离的算法只能发现 “类圆形”的聚类的缺点
聚类(Clustering)-基于网格的方法
• 这种方法首先将数据空间划分成为有限个 单元(Cell)的网格结构,所有的处理都是 以单个的单元为对象的
• 这么处理的一个突出的优点就是处理速度 很快
聚类(Clustering)-基于模型的方法
W 0.9975 0.9909 0.9871 0.9999 0.9893 0.0607 0.0362 0.0426 0.0094 0.0193 类
Ci
参数m
• Bezdek和Hathaway 等人从算法的收敛性角度着 手得出m的取值要大于n/(n-2),其中n为待分析样本 的数目
• Pal和Bezdek等人从聚类有效性角度得出m的取值 范围为[1.5, 2.5]
22 2 11 1 11 1
Cluster 1: mean=35 Cluster 2: mean=230
蝴蝶型数据集
很明确的属于 Cluster 1
属于Cluster 1 or 2 ? 很明确的属于Cluster 2
蝴蝶型数据集
聚类中心
*
*
蝴蝶型数据集
Fuzzy C-Means聚类法
Dunn 利用 Ruspini 提出的模糊划分的概念, 将硬聚类推广到模糊聚类, 1973年 Jim Bezdek 将 Dunn 的工作推广到基于模糊度 m 的一般 Fuzzy C-Means 形式,其目标函数定义如同K-
2
1
0
log(intensity) 557 Hz
-1
-2
-3
-4
-5
-6
-7
-8
-8
-6
-4
-2
log(intensity) 475 Hz
1. Compute the new centre of each class 2. Move the crosses (x)
0
2
Iteration 2
log(intensity) 557 Hz
K
N
wji 1,wji 0,1, j 1,......N , 0 wji N(6)
i 1
j 1
2. 如(7)式计算聚类中心点
N
wmji X j
Ci
j 1 N
wmji
j 1
(7)
Fuzzy C-Means实现步骤
3. 由(5)式计算目标函数值,当目标函数值小于设定的容 忍误差可结束迭代过程,否则执行步骤4。
E(t) J (t) J (t1)
4. 重新计算权重矩阵W如(8)式,并回到步骤 2 进行运算
wji
1
2
K
X j Ci
m1
s1 X j Cs
(8)
Tiles data: o = whole tiles, * = cracked tiles, x = centres
2
1
0
log(intensity) 557 Hz
-1
-2
-3
-4
-5
-6
-7
-8
-8
-6
-4
-2
0
2
log(intensity) 475 Hz
1. Place two cluster centres
2. Assign a fuzzy membership to each data point depending on distance
Tiles data: o = whole tiles, * = cracked tiles, x = centres
聚类(Clustering)-层次法
• 这种方法对给定的数据集进行层次似的分解,直 到某种条件满足为止
• 具体又可分为“自 底向上”和“自顶向 下”两种方案。
聚类
数据1 数据2 数据3 数据4 数据5
聚类(Clustering)-基于密度的方法
• 基于密度的方法与其它方法的一个根本区 别是:它不是基于各种各样的距离的,而 是基于密度的
入向量不再仅归属于某一特定的聚类,而以其 归属程度来表现属于各聚类的程度
http://www.cs.uwf.edu/~jbezdek/
Fuzzy C-Means聚类法
目标函数 J 为(5)式
J
Kห้องสมุดไป่ตู้
Ji
Colour
red black red gray blue white black red gray
Air resistance 0.30 0.32 0.29 0.35 0.33 0.40 0.50 0.60 0.55
Weight Kg 1300 1400 1500 800 950 600 3000 2500 3500
Tiles data: o = whole tiles, * = cracked tiles, x = centres
2
1
0
-1
-2
-3
-4
-5
-6
-7
-8
-8
-6
-4
-2
0
2
log(intensity) 475 Hz
Iteration 5
Tiles data: o = whole tiles, * = cracked tiles, x = centres
(这个要求在某些模糊聚类算法中可以放宽)
(2)每一个数据纪录属于且仅属于一个分组
聚类(Clustering)-划分法
• 对于给定的K,算法首先给出一个初始的分 组方法,以后通过反复迭代的方法改变分 组,使得每一次改进之后的分组方案都较 前一次好
• 而所谓好的标准就是:同一分组中的记录 越近越好,而不同分组中的纪录越远越好
聚类(Clustering)-划分法
• 使用这个基本思想的算法有:
K-MEANS算法
Fuzzy C-Means算法
K-MEDOIDS算法
Clara算法
CLARANS算法
Vehicle Example
Vehicle
V1 V2 V3 V4 V5 V6 V7 V8 V9
Top speed
(km/h)
220 230 260 140 155 130 100 105 110
(1)
4. 以(4)式更新聚类的中心点。回到步骤2
n
wji X j
Ci
j 1 n
wji
j 1
(4)
N 次迭代以后
K-means编程步骤
1. 设定聚类数目K,最大执行步骤tmax,一个很小的容忍误差ε>0
2. 决定聚类中心起始位置Cj(0),0 < j ≤ K
3. for t=1,......,tmax
• (A)for j=1,......,N
– (i)计算各数据点到聚类中心的距离
d (t) ij
X j Ci(t1) ; i 1,...K
–
(ii)计算数据点属于哪一聚类(隶属度矩阵)wji
1,
arg
min iK1{d
} (t )
ji
0, otherwise
N
w(t) ji
X
j
• (B)更新聚类中心 Cit j1
N ;i 1,...K
w(t) ji
j 1
1. (C)计算收敛准则,若 E(t) J (t) J (t1) 算,否则进行下一轮迭代 E(t)= C(t) C(t1)
成立则停止运
使用K-Means聚类法
• 需事先确定聚类的数目K
• 若初始聚类中心位置不理想,使得目标 函数 J 落入局部解,最后分类出来的群 集将不甚理想
K-Means & Fuzzy C-Means
报告人:马宝秋
聚类(Clustering)
• “物以类聚,人以群分”
• 是对于静态数据分析的一门技术,在许多 领域受到广泛应用,包括机器学习,数据 挖掘,模式识别,图像分析以及生物信息
聚类(Clustering)
• 聚类是把相似的对象通过静态分类的方法分 成不同的组别或者更多的子集(Subset), 这样让在同一个子集中的成员对象都有相似 的一些属性
2
1
0
log(intensity) 557 Hz
-1
-2
-3
-4
-5
-6
-7
-8
-8
-6
-4
-2
0
2
log(intensity) 475 Hz
Iteration 10
Tiles data: o = whole tiles, * = cracked tiles, x = centres
Vehicle Clusterings
Weight (kg)
3500
3000
Lorries
2500 2000
Sports cars
1500 1000
Medium market cars
500
100
150
200
250
300
Top speed (km/h)
feature
Weight (kg)
Terminology
K-means实现步骤
1. 随机选取k个数据点Ci,i=1,…,k,并将之分 别视为各聚类的初始中心
2. 决定各数据点所属之聚类,若数据点Xj判定属 于第 i 聚类,则权重值wji = 1,否则为 0
w ji
1,
if X j Ci X j Cm ,
m j
0,
otherwise
且满足:
k
kn
使用K-Means聚类法
使用K-Means聚类法
Cluster 形状以类圆形为主
使用K-Means聚类法
K-Means聚类分析是一种硬划分(Hard Clustering),它把每个待辨识的对象严格 地划分到某个类中,具有非此即彼的性质
200 210 250 20 20 20 20 20 20
Object or data point
3500
3000
Lorries
2500 2000 1500 1000
cluster
label
Medium market cars
Sports cars
500 100
150
200
250
Top speed (km/h)
feature
feature space
300
• 基于模型的方法给每一个聚类假定一个模 型,然后去寻找能个很好的满足这个模型 的数据集
• 它的一个潜在的假定就是:目标数据集是 由一系列的概率分布所决定的
聚类(Clustering)-划分法
• 给定一个有N个元组或者纪录的数据集,构 造K ( K < N)个分组,每一个分组就代表 一个聚类
(1)每一个分组至少包含一个数据纪录
KN
wmji
2 X j Ci
i 1
i1 j1
其中:
– Xj 为数据点 – Ci 为聚类中心点 – N 为数据个数
– K 为聚类中心点个数
– m 为权重指数
(5)
与K-Means不同点
样本点 Xj
聚
0.0025 0.0091 0.0129 0.0001 0.0107 0.9393 0.9638 0.9574 0.9906 0.9807
• 其他分析算法的一个预处理步骤
• 在这一过程中没有监督,因此是一种无监督 的分类
聚类(Clustering)
• 聚类分析的算法可以分为:
• 划分法(分割式)(Partitioning Methods) • 层次法(阶层式)(Hierarchical Methods) • 基于密度的方法(Density-based Methods) • 基于网格的方法(Grid-based Methods) • 基于模型的方法(Model-Based Methods)
K-Means聚类法(C-Means)
– 将N个数据依照其数据特征聚类为K类的聚类算法, K为一正整数
– 目标在于求各个数据与其对应聚类中心点距离平方 和的最小值
K
KN
2
J Ji
wji X j Ci
i 1
i1 j1
(1)
– Ji 为第 i 类聚类的目标函数 – K为聚类个数
– Xj为第 j 个输入向量 – Ci为第 i 个聚类中心(向量) – wji 为权重 (Xj 是否属于聚类Ci)
• Cheung和Chen从汉字识别的应用背景得出的最 佳取值应在1.25~1.75之间
• 高新波等和刘宜平等分别提出了基于模糊决策的 m值优选方法
• 这些有关m的取值方法,实际上都可以看成是对分 类结果的评价问题
Fuzzy C-means 实现步骤
1. 设定分类个数 k,设定初始权重矩阵,随机给定 0~1 之值,并满足权重总和为 1 如(6)式
wji 1, j 1, ..., n, wji n
i 1
i1 j1
(3) (2)
K-means实现步骤
3. 由(1)式计算目标函数 J,如果 J 保持不变,代表聚 类结果已经稳定不变,则可结束此迭代方法,否则进 入步骤4
k
kn
2
J Ji
w ji X j Ci
i 1
i 1 j 1
K-means的归属矩阵
K
KN
wji 1,j 1,..., N;
wji N
i 1
i1 j1
(2)
w ji
1,
if X j Ci X j Cm ,
m j
0,
otherwise
(3)
数据点 Xj
1 0 1 0 0 0 1 0 0 W 0 1 0 1 0 1 0 0 0 聚类Ci
0 0 0 0 1 0 0 1 1
• 这样就能克服基于距离的算法只能发现 “类圆形”的聚类的缺点
聚类(Clustering)-基于网格的方法
• 这种方法首先将数据空间划分成为有限个 单元(Cell)的网格结构,所有的处理都是 以单个的单元为对象的
• 这么处理的一个突出的优点就是处理速度 很快
聚类(Clustering)-基于模型的方法
W 0.9975 0.9909 0.9871 0.9999 0.9893 0.0607 0.0362 0.0426 0.0094 0.0193 类
Ci
参数m
• Bezdek和Hathaway 等人从算法的收敛性角度着 手得出m的取值要大于n/(n-2),其中n为待分析样本 的数目
• Pal和Bezdek等人从聚类有效性角度得出m的取值 范围为[1.5, 2.5]
22 2 11 1 11 1
Cluster 1: mean=35 Cluster 2: mean=230
蝴蝶型数据集
很明确的属于 Cluster 1
属于Cluster 1 or 2 ? 很明确的属于Cluster 2
蝴蝶型数据集
聚类中心
*
*
蝴蝶型数据集
Fuzzy C-Means聚类法
Dunn 利用 Ruspini 提出的模糊划分的概念, 将硬聚类推广到模糊聚类, 1973年 Jim Bezdek 将 Dunn 的工作推广到基于模糊度 m 的一般 Fuzzy C-Means 形式,其目标函数定义如同K-
2
1
0
log(intensity) 557 Hz
-1
-2
-3
-4
-5
-6
-7
-8
-8
-6
-4
-2
log(intensity) 475 Hz
1. Compute the new centre of each class 2. Move the crosses (x)
0
2
Iteration 2
log(intensity) 557 Hz
K
N
wji 1,wji 0,1, j 1,......N , 0 wji N(6)
i 1
j 1
2. 如(7)式计算聚类中心点
N
wmji X j
Ci
j 1 N
wmji
j 1
(7)
Fuzzy C-Means实现步骤
3. 由(5)式计算目标函数值,当目标函数值小于设定的容 忍误差可结束迭代过程,否则执行步骤4。
E(t) J (t) J (t1)
4. 重新计算权重矩阵W如(8)式,并回到步骤 2 进行运算
wji
1
2
K
X j Ci
m1
s1 X j Cs
(8)
Tiles data: o = whole tiles, * = cracked tiles, x = centres
2
1
0
log(intensity) 557 Hz
-1
-2
-3
-4
-5
-6
-7
-8
-8
-6
-4
-2
0
2
log(intensity) 475 Hz
1. Place two cluster centres
2. Assign a fuzzy membership to each data point depending on distance
Tiles data: o = whole tiles, * = cracked tiles, x = centres
聚类(Clustering)-层次法
• 这种方法对给定的数据集进行层次似的分解,直 到某种条件满足为止
• 具体又可分为“自 底向上”和“自顶向 下”两种方案。
聚类
数据1 数据2 数据3 数据4 数据5
聚类(Clustering)-基于密度的方法
• 基于密度的方法与其它方法的一个根本区 别是:它不是基于各种各样的距离的,而 是基于密度的