第十四章聚类方法.14.3K均值聚类
Posted oldmao_2001
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十四章聚类方法.14.3K均值聚类相关的知识,希望对你有一定的参考价值。
本课程来自深度之眼,部分截图来自课程视频以及李航老师的《统计学习方法》第二版。
公式输入请参考: 在线Latex公式
主要内容
k均值聚类的定义:类的中⼼、硬聚类
样本空间划分:特征向量、类与簇、从样本到类的函数
k均值聚类策略:损失函数最⼩化
损失函数的定义:各类损失函数的表达式与异同点
聚类算法总结:迭代算法、新类中⼼、收敛
k均值聚类实例:运⽤算法逐步求解聚类过程
k均值聚类算法特性:收敛性、初始类的选择、类别数k的选择
k均值聚类工作框架与改进:k均值算法流程与缺点改进方法
k均值聚类的定义
k均值聚类是基于样本集合划分的聚类算法。
k均值聚类将样本集合划分为k个⼦集,构成k个类,将n个样本分到k个类中,每个样本到其所属类的中⼼的距离最小。
每个样本只能属于⼀个类,k均值聚类是硬聚类。
样本空间划分
给定n个样本的集合
每个样本由⼀个特征向量表示,特征向量的维数是m。
k均值聚类的⽬标是将n个样本分到k个不同的类或簇中,这⾥假设
k
<
n
k<n
k<n。
k个类
G
1
,
G
2
,
…
,
G
k
G_1,G_2,…,G_k
G1,G2,…,Gk形成对样本集合X的划分,划分结果满足子空间互不相交:
G
i
∩
G
j
=
∅
G_i\\cap G_j=\\varnothing
Gi∩Gj=∅
且每个样本都属于某一个类:
⋃
i
=
1
k
G
i
=
X
\\bigcup_{i=1}^k G_i=X
i=1⋃kGi=X
⽤C表示划分,⼀个划分对应着⼀个聚类结果。
划分C是⼀个多对⼀的函数,因为不同的划分获得的损失函数值可能一样。
k均值聚类的模型是⼀个从样本到类的函数。
划分或者聚类可以⽤函数
l
=
C
(
j
)
l=C_{(j)}
l=C(j)表示,其中样本⽤⼀个整数
i
∈
{
1
,
2
,
⋯
,
n
}
i\\in\\{1,2,\\cdots,n\\}
i∈{1,2,⋯,n}表示,类⽤⼀个整数
l
∈
{
1
,
2
,
⋯
,
k
}
l\\in\\{1,2,\\cdots,k\\}
l∈{1,2,⋯,k}表示。
k均值聚类策略
k均值聚类归结为样本集合X的划分,或者从样本到类的函数的选择问题。
k均值聚类的策略是通过损失函数的最⼩化选取最优的划分或函数
C
∗
C^*
C∗。
k均值聚类采⽤欧⽒距离平⽅(squared Euclidean distance)作为样本之间的距离
d
(
x
i
,
x
j
)
d(x_i, x_j)
d(xi,xj)
d
(
x
i
,
x
j
)
=
∑
k
=
1
m
(
x
k
i
−
x
k
j
)
2
=
∣
∣
x
i
−
x
j
∣
∣
2
d(x_i, x_j)=\\sum_{k=1}^m(x_{ki}-x_{kj})^2=||x_i-x_j||^2
d(xi,xj)=k=1∑m(xki−xkj)2=∣∣xi−xj∣∣2
然后,定义样本与其所属类的中⼼之间的距离的总和为损失函数,即
W
(
C
)
=
∑
l
=
1
k
∑
C
(
i
)
=
l
∣
∣
x
i
−
x
ˉ
l
∣
∣
2
W(C)=\\sum_{l=1}^k\\sum_{C(i)=l}||x_i-\\bar x_l||^2
W(C)=l=1∑kC(i)=l∑∣∣xi−xˉl∣∣2
内层求和是求各个样本点到该类中心的偏离程度求和,外层求和是各个类的偏离程度求和。
x
ˉ
l
=
(
x
ˉ
1
l
,
x
ˉ
2
l
,
⋯
,
x
ˉ
m
l
)
T
\\bar x_l=(\\bar x_{1l},\\bar x_{2l},\\cdots,\\bar x_{ml})^T
xˉl=(xˉ1l,xˉ2l,⋯,xˉml)T是第l个类的均值或中⼼,
n
l
=
∑
i
=
1
n
I
(
C
(
i
)
=
l
)
n_l=\\sum_{i=1}^n I(C(i)=l)
nl=∑i=1nI(C(i)=l)
I
(
C
(
i
)
=
l
)
I(C(i)=l)
I(C(i)=l)是指示函数,取值1或0
W
(
C
)
W(C)
W(C)函数也称为能量函数, 表示相同类中的样本相似的程度,我们希望
W
(
C
)
W(C)
W(C)越小越好。
k均值聚类就是求解最优化问题:
C
∗
=
a
r
g
min
C
W
(
C
)
=
a
r
g
min
C
∑
l
=
1
k
∑
C
(
i
)
=
l
∣
∣
x
i
−
x
ˉ
l
∣
∣
2
C^*=arg\\underset{C}{\\min}W(C)=arg\\underset{C}{\\min}\\sum_{l=1}^k\\sum_{C(i)=l}||x_i-\\bar x_l||^2
C∗=argCminW(C)=argCminl=1∑kC(i)=l∑∣∣xi−xˉl∣∣2
相似的样本被聚到同类时,损失函数值最⼩,这个⽬标函数的最优化能达到聚类的⽬的。
但是,这是⼀个组合优化问题,n个样本分到k类,所有可能分法的数⽬是:
S
(
n
,
k
)
=
1
k
!
∑
l
=
1
k
(
−
1
)
k
−
1
(
l
k
)
k
n
S(n,k)=\\cfrac{1}{k!}\\sum_{l=1}^k(-1)^{k-1}(_l^k)k^n
S(n,k)=k!1l=1∑k(−1)k−1(lk)kn
事实上,k均值聚类的最优解求解问题是NP困难问题。现实中采⽤迭代的⽅法求解。归纳表达式为:
S
(
n
,
k
)
=
S
(
n
−
1
,
k
−
1
)
+
k
S
(
n
−
1
,
k
)
S(n,k)=S(n-1,k-1)+kS(n-1,k)
S(n,k)=S(n−1,以上是关于第十四章聚类方法.14.3K均值聚类的主要内容,如果未能解决你的问题,请参考以下文章