K均值聚类算法
EM算法策略----
(通俗的说就是先给出参数对隐变量进行估计,然后根据隐变量的估计得出结果,当得出的结果不
再发生变化时即结束算法)
目标:
最小化平方误差
E
(
{
μ
k
}
)
=
∑
k
=
1
K
∑
i
=
1
,
z
i
=
k
N
∣
∣
x
i
−
μ
k
∣
∣
2
E(\{\mu_k\})=\sum_{k=1}^K\sum_{i=1,z_i=k}^N||x_i-\mu_k||^2
E({μk})=∑k=1K∑i=1,zi=kN∣∣xi−μk∣∣2,此优化目标一
定会收敛,可以通过其误差函数确定最优的k值。
输入:N个样本 { x 1 , x 2 , . . . , x N } \{x_1,x_2,...,x_N\} {x1,x2,...,xN},
输出:N个样本的类别 { z i } i = 1 − N \{z_i\}_{i=1-N} {zi}i=1−N;----(相当于隐变量)
1、随机化中心 μ 1 , μ 2 , . . . , μ k \mu_1,\mu_2,...,\mu_k μ1,μ2,...,μk
2、E-step:
z
i
=
a
r
g
m
i
n
k
∣
∣
x
i
−
μ
k
∣
∣
z_i=argmin_k||x_i-\mu_k||
zi=argmink∣∣xi−μk∣∣----可以使
E
E
E变小
(对每个质心:
计算质心与数据点之间的距离
将数据点分配到距其最近的簇)
3、M-step:
N
k
=
∑
i
=
1
N
I
(
z
i
=
k
)
N_k=\sum_{i=1}^NI(z_i=k)
Nk=∑i=1NI(zi=k)
μ
k
=
1
N
∑
i
=
1
,
z
i
=
k
N
x
i
\mu_k = \frac{1}{N}\sum_{i=1,z_i=k}^Nx_i
μk=N1∑i=1,zi=kNxi
(对每个簇计算簇中的所有点的均值,并将均值作为质心)
4、(当任意一个点的簇分配结果发生变化时)转至2直到收敛。
DBSCAN
----具有噪声的基于密度的聚类方法,不需要输入类别K。
对于样本N个样本 D = { x 1 , x 2 , . . . , x N } D=\{x_1,x_2,...,x_N\} D={x1,x2,...,xN},参数 ( ε , M i n p t s ) (\varepsilon,Minpts) (ε,Minpts)描述了邻域的样本
的分布紧密程度。 ε \varepsilon ε表示某一样本 x i x_i xi邻域距离阈值;Minpts用来衡量样本
x i x_i xi在其邻域内成为核心对象的样本个数的阈值。
定义
(1) ε \varepsilon ε-邻域: ∀ x j ∈ D \forall x_j\in D ∀xj∈D,与样本 x i x_i xi的距离小于阈值 ε \varepsilon ε的子样本集,此区域样本数可记为 N ε ( x i ) N_\varepsilon(x_i) Nε(xi)。
(2)核心对象: ∀ x i ∈ D \forall x_i\in D ∀xi∈D,如果其 ε \varepsilon ε的邻域的样本集个数大于阈值Minpts,则为核心对象。
(3)密度直达:对于一核心对象 x i x_i xi,在其邻域内任一样本 x j x_j xj,则称样本 x j x_j xj可有 x i x_i xi密度直达。
(4)密度可达(根据此标准进行聚类):对于样本 x i , x j x_i,x_j xi,xj,如果存在样本序列
x k , 1 , x k , 2 , . . . , x k , n x_{k,1},x_{k,2},...,x_{k,n} xk,1,xk,2,...,xk,n,满足 x i = x k , 1 , x j = x k , n x_i=x_{k,1},x_j=x_{k,n} xi=xk,1,xj=xk,n,并且样本 x k , i + 1 x_{k,i+1} xk,i+1由样
本 x k , i x_{k,i} xk,i密度直达,则称样本 x i , x j x_i,x_j xi,xj密度可达,此时,样本
x k , 1 , x k , 2 , . . x k , n − 1 x_{k,1},x_{k,2},..x_{k,n-1} xk,1,xk,2,..xk,n−1为核心对象,** x j x_j xj**不一定要求是核心对象。
也就是把这些样本序列归成一类。