在二维空间中
根据距离的邻近关系划分为两类
假设:
空间中有N个点,每个点的取值为{Xi},i=1,2…N,我们要把这N个点划分为K类
对每个点设置一个隐含变量{Zi}i=1,2,…N
Zi的取值范围为1,2…K,为第i个点所属的类别
Ck为第k类的中心
k均值聚类的优化目标
最小化:
E
(
Z
i
,
C
k
)
=
1
N
∑
i
=
1
N
∣
∣
X
i
−
C
z
i
∣
∣
2
E({Z_i,C_k})=\dfrac{1}{N}\sum_{i=1}^N||X_i-C_{z_i}||^2
E(Zi,Ck)=N1i=1∑N∣∣Xi−Czi∣∣2
问题难点
A:不知道每个点的类别归属
B:不知道每个类别的中心
知道A,能用取平均值的方法求出B
知道B能通过计算每个点到所有类别中心欧氏距离取最小的那个值,求出B
期望最大算法(EM算法)
核心思想
假设:知道A和B中的一个
如:对A赋初值,求出B,再根据B更新A,如此循环
k均值算法的流程
1,随机赋值{Zi}=1,2…K //对每个点随机赋一个所属类别
2,求{Ck}
C
k
=
1
∑
i
=
1
N
I
(
Z
i
=
k
)
∑
i
=
1
−
N
,
Z
i
=
k
X
i
C_k=\dfrac{1}{\sum_{i=1}^NI(Z_i=k)}\sum_{i=1-N,Z_i=k}X_i
Ck=∑i=1NI(Zi=k)1i=1−N,Zi=k∑Xi//求第k个类别所有点的平均值
Z_i=k时,I(Zi=k)=1,否则等于0 //求属于第k个类别的个数
3,更新{Zi}i=1-N
Z
i
=
a
r
g
m
i
n
k
=
1
−
K
∣
∣
X
i
−
C
k
∣
∣
2
Z_i=argmin_{k=1-K}||X_i-C_k||^2
Zi=argmink=1−K∣∣Xi−Ck∣∣2
//更新每个点所属类别为离他最近的类别中心的类别
4.回到2直到算法收敛 //单调递减有下界(0)一定收敛
不同的初始类别赋值,获得的结果将可能会不一样
k-均值聚类算法,求的是目标函数的局部最优,不是全局最优。
k-均值聚类
最新推荐文章于 2022-02-06 11:53:37 发布