《百面机器学习》学习笔记(五)非监督学习
相比于监督学习,非监督学习的输入数据没有标签信息,需要通过算法模型来挖掘数据内在的结构和模式。非监督学习主要包含两大类学习方法: 数据聚类和 特征变量关联。其中, 聚类算法往往是通过多次迭代来找到数据的最优分割,而特征变量关联则是利用各种相关性分析方法 来找到变量之间的关系。
K-Means
证明K-Means算法的收敛性
首先,我们需要知道K均值聚类的迭代算法实际上是一种EM算法,EM算法原理总结。K均值算法等价于用EM算法求解以下含隐变量的最大似然问题:
其中
z
∈
{
1
,
2
,
.
.
,
k
}
z\in \{1,2,..,k\}
z∈{1,2,..,k} 是模型的隐变量。直观地理解,就是当样本 x 离第 k 个簇的中心点
μ
k
μ_k
μk 距离最近时,概率正比于
e
x
p
(
−
∣
∣
x
−
u
z
∣
∣
2
2
)
exp(-||x-u_z||_2^2)
exp(−∣∣x−uz∣∣22),否则为0。
- E步:计算联合分布的条件概率
等同于在K均值算法中对于每一个点 x ( i ) x^{(i)} x(i)找到当前最近的簇 z ( i ) z^{(i)} z(i)。 - M步:极大化似然函数,求解参数
θ
=
{
u
1
,
u
2
,
.
.
.
,
u
k
}
θ=\{u_1,u_2,...,u_k\}
θ={u1,u2,...,uk}
经过推导可得:
因此,这一步骤等同于找到最优的中心点,使得损失函数达到最小,此时每个样本x(i)对应的簇z(i)已确定,因此每个簇k对应的最优中心点μk可以由该簇中所有点的平均计算得到,这与K均值算法中根据当前簇的分配更新聚类中心的步骤是等同的。
高斯混合模型(Gaussian Mixed Model,GMM)
参考:
https://blog.csdn.net/lin_limin/article/details/81048411
1 单高斯模型
高斯模型是一种常用的变量分布模型,一维高斯分布的概率密度函数如下:
多维变量
X
=
(
x
1
,
x
2
,
.
.
.
x
n
)
X = ({x_1},{x_2},...{x_n})
X=(x1,x2,...xn)的联合概率密度函数为:
其中:
服从二维高斯分布的数据主要集中在一个椭圆内部,服从三维的数据集中在一个椭球内部。
2 高斯混合模型
高斯混合模型(Gaussian Mixed Model,GMM)也是一种常见的聚类算法,与K均值算法类似,同样使用了EM算法进行迭代计算。高斯混合模型假设每个簇的数据都是符合高斯分布(又叫正态分布)的,当前数据呈现的分布就是各个簇的高斯分布叠加在一起的结果。理论上,高斯混合模型可以拟合出任意类型的分布。
高斯混合模型的 核心思想 :假设数据可以看作从多个高斯分布中生成出来的。在该假设下,每个单独的分模型都是标准高斯模型,其均值
μ
i
μ_i
μi和方差
Σ
i
Σ_i
Σi 是待估计的参数。此外,每个分模型都还有一个参数
π
i
π_i
πi,可以理解为权重或生成数据的概率(第k类样本在总体样本中所占的比例)。高斯混合模型的公式为:
p
(
x
)
=
∑
i
=
1
k
π
i
N
(
x
∣
μ
i
,
Σ
i
)
p(x)=\sum_{i=1}^kπ_iN(x|μ_i,Σ_i)
p(x)=i=1∑kπiN(x∣μi,Σi)
∑
k
=
1
K
π
k
=
1
\sum_{k=1}^Kπ_k=1
k=1∑Kπk=1
高斯混合模型是一个生成式模型。可以这样理解数据的生成过程,假设一个最简单的情况,只有两个一维标准高斯分布的分模型N(0,1)和N(5,1),权重分别为0.7和0.3。在生成第一个数据点时,先按照权重的比例,随机选择一个分布,若选择第一个高斯分布,接着从N(0,1)中生成一个点,如−0.5,便是第一个数据点。在生成第二个数据点时,随机选择到第二个高斯分布N(5,1),生成了第二个点4.7。如此循环执行,便生成出了所有的数据点。
然而,通常我们并不能直接得到高斯混合模型的参数,而是观察到了一系列数据点,给出一个类别的数量K后,希望求得最佳的K个高斯分模型。因此,高斯混合模型的计算,便成了最佳的均值μ,方差Σ、权重π的寻找,这类问题通常通过最大似然估计来求解。遗憾的是,此问题中直接使用最大似然估计,得到的是一个复杂的非凸函数,目标函数是和的对数,难以展开和对其求偏导。
3 EM算法求解高斯混合模型
高斯混合模型的对数似然函数表示为:
L
(
μ
,
Σ
,
π
)
=
∏
t
=
1
T
(
∑
k
=
1
K
π
k
N
(
x
t
∣
μ
k
,
Σ
k
)
)
L(\mu ,\Sigma ,\pi ) = \prod_{t=1}^T(\sum_{k=1}^K\pi _kN({x_t}|{\mu _k},{\Sigma _k}))
L(μ,Σ,π)=t=1∏T(k=1∑KπkN(xt∣μk,Σk))
ln
L
(
μ
,
Σ
,
π
)
=
∑
t
=
1
T
ln
∑
k
=
1
K
π
k
N
(
x
t
∣
μ
k
,
Σ
k
)
\ln{L(\mu ,\Sigma ,\pi )}= \sum\limits_{t= 1}^T {\ln \sum\limits_{{\rm{k}} = 1}^K {{\pi _k}N({x_t}|{\mu _k},{\Sigma _k})} }
lnL(μ,Σ,π)=t=1∑Tlnk=1∑KπkN(xt∣μk,Σk)
E步:
- 构造Q函数:
Q
i
(
z
k
)
=
p
(
z
k
∣
x
t
;
μ
k
,
Σ
k
,
π
k
)
Q_i(z_k)=p(z_k|x_t;\mu_k ,\Sigma_k ,\pi_k)
Qi(zk)=p(zk∣xt;μk,Σk,πk)
对于一个新样本需要预测其所属的类别,可以通过贝叶斯公式得到:观察到一个样本 x t x_t xt,其属于第 k 类的概率为: p ( z k ∣ x t ) = p ( x t , z k ) p ( x t ) = π k N ( x t ∣ μ k , Σ k ) ∑ k = 1 K π k N ( x t ∣ μ k , Σ k ) p(z_k|x_t)=\frac{p(x_t,z_k)}{p(x_t)}=\frac{\pi _kN({x_t}|{\mu _k},{\Sigma _k})}{\sum_{k=1}^K\pi _kN(x_t|\mu _k,\Sigma _k)} p(zk∣xt)=p(xt)p(xt,zk)=∑k=1KπkN(xt∣μk,Σk)πkN(xt∣μk,Σk)为方便将 p ( z k ∣ x t ) p(z_k|x_t) p(zk∣xt) 记做 γ t ( z k ) γ_t(z_k) γt(zk)。 - 构造目标函数的下界函数 ln L ( μ , Σ , π ) = ∑ t = 1 T ln ∑ k = 1 K Q t ( z k ) π k N ( x t ∣ μ k , Σ k ) Q t ( z k ) ≥ ∑ t = 1 T ∑ k = 1 K Q t ( z k ) ln π k N ( x t ∣ μ k , Σ k ) Q t ( z k ) \begin{aligned}\ln{L(\mu ,\Sigma ,\pi )}&= \sum_{t= 1}^T \ln \sum_{k = 1}^KQ_t(z_k) \frac{\pi _kN(x_t|\mu _k,\Sigma _k)}{Q_t(z_k)}\\ & \geq \sum_{t= 1}^T\sum_{k = 1}^K Q_t(z_k)\ln\frac{\pi _kN(x_t|\mu _k,\Sigma _k)}{Q_t(z_k)} \end{aligned} lnL(μ,Σ,π)=t=1∑Tlnk=1∑KQt(zk)Qt(zk)πkN(xt∣μk,Σk)≥t=1∑Tk=1∑KQt(zk)lnQt(zk)πkN(xt∣μk,Σk)下界函数为: B ( θ , θ j − 1 ) = ∑ t = 1 T ∑ k = 1 K Q t ( z k ) ln π k N ( x t ∣ μ k , Σ k ) Q t ( z k ) = ∑ t = 1 T ∑ k = 1 K γ t ( z k ) ln π k N ( x t ∣ μ k , Σ k ) γ t ( z k ) = ∑ t = 1 T ∑ k = 1 K γ t ( z k ) [ ln N ( x t ∣ μ k , Σ k ) + ln π k − ln γ t ( z k ) ] \begin{aligned} B(θ,θ_{j-1}) &= \sum_{t= 1}^T\sum_{k = 1}^K Q_t(z_k)\ln\frac{\pi _kN(x_t|\mu _k,\Sigma _k)}{Q_t(z_k)}\\ &= \sum_{t= 1}^T\sum_{k = 1}^K γ_t(z_k)\ln\frac{\pi _kN(x_t|\mu _k,\Sigma _k)}{γ_t(z_k)}\\ &= \sum_{t= 1}^T\sum_{k = 1}^K γ_t(z_k)[\ln{N(x_t|\mu _k,\Sigma _k)}+\ln{\pi _k}-\ln{γ_t(z_k)}] \end{aligned} B(θ,θj−1)=t=1∑Tk=1∑KQt(zk)lnQt(zk)πkN(xt∣μk,Σk)=t=1∑Tk=1∑Kγt(zk)lnγt(zk)πkN(xt∣μk,Σk)=t=1∑Tk=1∑Kγt(zk)[lnN(xt∣μk,Σk)+lnπk−lnγt(zk)]在上式中(此处考虑的是二维高斯分布的情况(d=2)): ln N ( x t ∣ μ k , Σ k ) = ln [ 1 2 π ∣ Σ k ∣ 1 2 e x p ( − 1 2 ( x t − μ k ) T Σ k − 1 ( x t − μ k ) ) ] = − ln ( 2 π ) − 1 2 ln ∣ Σ k ∣ − 1 2 ( x t − μ k ) T Σ k − 1 ( x t − μ k ) \begin{aligned} \ln{N(x_t|\mu _k,\Sigma _k)}&=\ln[\frac1{2\pi|\Sigma _k|^{\frac12}}exp(-\frac12(x_t - \mu _k)^T\Sigma _k^{ - 1}(x_t - \mu _k))]\\ &=- \ln (2\pi ) - \frac12\ln|\Sigma _k| -\frac12(x_t - \mu _k)^T\Sigma _k^{ - 1}(x_t - \mu _k) \end{aligned} lnN(xt∣μk,Σk)=ln[2π∣Σk∣211exp(−21(xt−μk)TΣk−1(xt−μk))]=−ln(2π)−21ln∣Σk∣−21(xt−μk)TΣk−1(xt−μk)整合上式有(去除无关项): B ( θ , θ j − 1 ) = ∑ t = 1 T ∑ k = 1 K γ t ( z k ) [ − 1 2 ln ∣ Σ k ∣ − 1 2 ( x t − μ k ) T Σ k − 1 ( x t − μ k ) + ln π k ] B(θ,θ_{j-1})= \sum_{t= 1}^T\sum_{k = 1}^K γ_t(z_k)[- \frac12\ln|\Sigma _k| -\frac12(x_t - \mu _k)^T\Sigma _k^{ - 1}(x_t - \mu _k)+\ln{\pi _k}] B(θ,θj−1)=t=1∑Tk=1∑Kγt(zk)[−21ln∣Σk∣−21(xt−μk)TΣk−1(xt−μk)+lnπk]有了下界函数,我们就可以来求得第 j 次迭代的参数估计值了.
M步: 极大化下界函数,求解参数 u , π , Σ u,\pi,\Sigma u,π,Σ
首先对均值向量
u
k
u_k
uk 求偏导,并令偏导数为0:
∂
B
∂
u
k
=
∑
t
=
1
T
∑
k
=
1
K
γ
t
(
z
k
)
[
Σ
k
−
1
(
x
t
−
μ
k
)
]
=
0
=
>
Σ
k
−
1
∑
t
=
1
T
γ
t
(
z
k
)
(
x
t
−
μ
k
)
=
0
=
>
u
k
=
∑
t
=
1
T
γ
t
(
z
k
)
x
t
∑
t
=
1
T
γ
t
(
z
k
)
\begin{aligned} \partial B \over \partial u_k &=\sum_{t= 1}^T\sum_{k = 1}^K γ_t(z_k)[ \Sigma _k^{ - 1}(x_t - \mu _k)]=0\\ & => \Sigma _k^{ - 1} \sum_{t= 1}^T γ_t(z_k)(x_t - \mu _k)=0\\ & => u_k=\frac{\sum_{t= 1}^T γ_t(z_k)x_t }{\sum_{t= 1}^T γ_t(z_k)} \end{aligned}
∂uk∂B=t=1∑Tk=1∑Kγt(zk)[Σk−1(xt−μk)]=0=>Σk−1t=1∑Tγt(zk)(xt−μk)=0=>uk=∑t=1Tγt(zk)∑t=1Tγt(zk)xt
对协方差矩阵
Σ
k
\Sigma _k
Σk 求偏导,并令偏导数为0:
∂
B
∂
Σ
k
=
∑
t
=
1
T
∑
k
=
1
K
γ
t
(
z
k
)
[
−
1
2
∣
Σ
k
∣
+
1
2
(
x
t
−
μ
k
)
T
Σ
k
−
2
(
x
t
−
μ
k
)
]
=
0
=
>
∑
t
=
1
T
γ
t
(
z
k
)
[
Σ
k
−
1
−
(
x
t
−
μ
k
)
T
Σ
k
−
2
(
x
t
−
μ
k
)
]
=
0
=
>
Σ
k
=
∑
t
=
1
T
γ
t
(
z
k
)
(
x
t
−
μ
k
)
T
(
x
t
−
μ
k
)
∑
t
=
1
T
γ
t
(
z
k
)
\begin{aligned} \partial B \over \partial \Sigma _k &=\sum_{t= 1}^T\sum_{k = 1}^K γ_t(z_k)[- \frac1{2|\Sigma _k|} +\frac12(x_t - \mu _k)^T\Sigma _k^{ - 2}(x_t - \mu _k)]=0\\ & => \sum_{t= 1}^T γ_t(z_k)[\Sigma _k^{ - 1} -(x_t - \mu _k)^T\Sigma _k^{ - 2}(x_t - \mu _k)]=0\\ & =>\Sigma _k=\frac{\sum_{t= 1}^T γ_t(z_k)(x_t - \mu _k)^T(x_t - \mu _k)}{\sum_{t= 1}^T γ_t(z_k)} \end{aligned}
∂Σk∂B=t=1∑Tk=1∑Kγt(zk)[−2∣Σk∣1+21(xt−μk)TΣk−2(xt−μk)]=0=>t=1∑Tγt(zk)[Σk−1−(xt−μk)TΣk−2(xt−μk)]=0=>Σk=∑t=1Tγt(zk)∑t=1Tγt(zk)(xt−μk)T(xt−μk)
求解
π
k
\pi_k
πk,直接对其求偏导不能求出其表示,并且正对所有的
π
\pi
π有和为1的约束条件,使用拉格朗日乘子法进行求解,并分别对
π
k
,
λ
\pi_k,λ
πk,λ求偏导:
L
(
π
1
,
.
.
.
,
π
k
,
λ
)
=
∑
t
=
1
T
∑
k
=
1
K
γ
t
(
z
k
)
ln
π
k
+
λ
(
∑
k
=
1
K
π
k
−
1
)
L(\pi_1,...,\pi_k,λ)=\sum_{t= 1}^T\sum_{k = 1}^Kγ_t(z_k)\ln \pi_k+λ(\sum_{k = 1}^K \pi_k-1)
L(π1,...,πk,λ)=t=1∑Tk=1∑Kγt(zk)lnπk+λ(k=1∑Kπk−1)
∂
L
∂
λ
=
∑
k
=
1
K
π
k
−
1
=
0
=
>
∑
k
=
1
K
π
k
=
1
\frac{\partial L}{\partial λ} =\sum_{k = 1}^K \pi_k-1=0=>\sum_{k = 1}^K \pi_k=1
∂λ∂L=k=1∑Kπk−1=0=>k=1∑Kπk=1
∂
L
∂
π
k
=
1
π
k
∑
t
=
1
T
γ
t
(
z
k
)
+
λ
=
0
=
>
π
k
=
−
∑
t
=
1
T
γ
t
(
z
k
)
λ
=
>
∑
t
=
1
T
γ
t
(
z
k
)
+
λ
π
k
=
0
=
>
∑
k
=
1
K
(
∑
t
=
1
T
γ
t
(
z
k
)
+
λ
π
k
)
=
0
=
>
∑
k
=
1
K
∑
t
=
1
T
γ
t
(
z
k
)
+
λ
∑
k
=
1
K
π
k
=
0
=
>
λ
=
−
∑
k
=
1
K
∑
t
=
1
T
γ
t
(
z
k
)
=
>
π
k
=
∑
t
=
1
T
γ
t
(
z
k
)
∑
k
=
1
K
∑
t
=
1
T
γ
t
(
z
k
)
=
∑
t
=
1
T
γ
t
(
z
k
)
T
\begin{aligned} \frac{\partial L}{\partial \pi_k} &=\frac1{\pi_k}\sum_{t= 1}^Tγ_t(z_k)+λ=0 =>\pi_k=-\frac{\sum_{t= 1}^Tγ_t(z_k)}{λ} \\ &=>\sum_{t= 1}^Tγ_t(z_k)+λ{\pi_k}=0 \\ &=>\sum_{k = 1}^K(\sum_{t= 1}^Tγ_t(z_k)+λ{\pi_k})=0 \\ &=>\sum_{k = 1}^K\sum_{t= 1}^Tγ_t(z_k)+λ\sum_{k = 1}^K{\pi_k}=0 \\ &=>λ=-\sum_{k = 1}^K\sum_{t= 1}^Tγ_t(z_k) \\ &=>\pi_k=\frac{\sum_{t= 1}^Tγ_t(z_k)}{\sum_{k = 1}^K\sum_{t= 1}^Tγ_t(z_k)} =\frac{\sum_{t= 1}^Tγ_t(z_k)}T \end{aligned}
∂πk∂L=πk1t=1∑Tγt(zk)+λ=0=>πk=−λ∑t=1Tγt(zk)=>t=1∑Tγt(zk)+λπk=0=>k=1∑K(t=1∑Tγt(zk)+λπk)=0=>k=1∑Kt=1∑Tγt(zk)+λk=1∑Kπk=0=>λ=−k=1∑Kt=1∑Tγt(zk)=>πk=∑k=1K∑t=1Tγt(zk)∑t=1Tγt(zk)=T∑t=1Tγt(zk)
4 EM算法求解高斯混合模型算法流程
- 初始化 π k , u k , Σ k \pi_k,u_k,\Sigma _k πk,uk,Σk,可以选择向样本空间随机布置几个 Σ = I \Sigma=I Σ=I 的高斯分布得到,也可以使用K-means算法进行初始聚类后,对每个类生成一个初始高斯分布得到。
- (E step)计算 γ t ( z k ) γ_t(z_k) γt(zk),即预测对于一个样本 x t x_t xt 属于哪个类 γ t ( z k ) = p ( z k ∣ x t ) = p ( x t , z k ) p ( x t ) = π k N ( x t ∣ μ k , Σ k ) ∑ k = 1 K π k N ( x t ∣ μ k , Σ k ) γ_t(z_k)=p(z_k|x_t)=\frac{p(x_t,z_k)}{p(x_t)}=\frac{\pi _kN({x_t}|{\mu _k},{\Sigma _k})}{\sum_{k=1}^K\pi _kN(x_t|\mu _k,\Sigma _k)} γt(zk)=p(zk∣xt)=p(xt)p(xt,zk)=∑k=1KπkN(xt∣μk,Σk)πkN(xt∣μk,Σk)
- (M step)对所有样本预测完成后根据 γ t ( z k ) γ_t(z_k) γt(zk) 重新计算 π k , u k , Σ k \pi_k,u_k,\Sigma _k πk,uk,Σk u k = ∑ t = 1 T γ t ( z k ) x t ∑ t = 1 T γ t ( z k ) Σ k = ∑ t = 1 T γ t ( z k ) ( x t − μ k ) T ( x t − μ k ) ∑ t = 1 T γ t ( z k ) π k = ∑ t = 1 T γ t ( z k ) T \begin{aligned} u_k &=\frac{\sum_{t= 1}^T γ_t(z_k)x_t }{\sum_{t= 1}^T γ_t(z_k)}\\ \Sigma _k &=\frac{\sum_{t= 1}^T γ_t(z_k)(x_t - \mu _k)^T(x_t - \mu _k)}{\sum_{t= 1}^T γ_t(z_k)}\\ \pi_k &=\frac{\sum_{t= 1}^Tγ_t(z_k)}{T} \end{aligned} ukΣkπk=∑t=1Tγt(zk)∑t=1Tγt(zk)xt=∑t=1Tγt(zk)∑t=1Tγt(zk)(xt−μk)T(xt−μk)=T∑t=1Tγt(zk)
- 评估似然函数,若似然函数的变化没有低于某个阈值,继续迭代
5 高斯混合模型与K均值算法
相同点:
- 都可用于聚类的算法
- 都需要指定K值
- 都是使用EM算法来求解
- 都往往只能收敛于局部最优
不同点:
- 相比于K均值算法的优点是,可以给出一个样本属于某类的概率是多少
- 不仅仅可以用于聚类,还可以用于概率密度的估计
- 并且可以用于生成新的样本点。
聚类算法评估
数据的聚类依赖于实际需求,同时也依赖于数据的特征度量以及评估数据相似性的方法。相比于监督学习,非监督学习通常没有标注数据,模型、算法的设计直接影响最终的输出和模型的性能。为了评估不同聚类算法的性能优劣,我们需要了解常见的数据簇的特点。
- 以中心定义的数据簇:这类数据集合倾向于球形分布,通常中心被定义为质心,即此数据簇中所有点的平均值。集合中的数据到中心的距离相比到其他簇中心的距离更近。
- 以密度定义的数据簇:这类数据集合呈现和周围数据簇明显不同的密度,或稠密或稀疏。当数据簇不规则或互相盘绕,并且有噪声和离群点时,常常使用基于密度的簇定义。
- 以连通定义的数据簇:这类数据集合中的数据点和数据点之间有连接关系,整个数据簇表现为图结构。该定义对不规则形状或者缠绕的数据簇有效。
- 以概念定义的数据簇:这类数据集合中的所有数据点具有某种共同性质。
聚类评估的任务是估计在数据集上进行聚类的可行性,以及聚类方法产生结果的质量。这一过程又分为三个子任务。
1 估计聚类趋势
这一步骤是检测数据分布中是否存在非随机的簇结构。如果数据是基本随机的,那么聚类的结果也是毫无意义的。
- 观察聚类误差是否随聚类类别数量的增加而单调变化,如果数据是基本随机的,即不存在非随机簇结构,那么聚类误差随聚类类别数量增加而变化的幅度应该较不显著,并且也找不到一个合适的K对应数据的真实簇数。
- 霍普金斯统计量(Hopkins Statistic):判断数据在空间上的随机性。首先,从所有样本中随机找n个点,记为 p 1 , p 2 , . . . , p n p_1,p_2,...,p_n p1,p2,...,pn,对其中的每一个点 p i p_i pi,都在样本空间中找到一个离它最近的点并计算它们之间的距离 x i x_i xi,从而得到距离向量 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn;然后,从样本的可能取值范围内随机生成n个点,记为 q 1 , q 2 , . . . , q n q_1,q_2,...,q_n q1,q2,...,qn,对每个随机生成的点,找到一个离它最近的样本点并计算它们之间的距离,得到 y 1 , y 2 , . . . , y n y_1,y_2,...,y_n y1,y2,...,yn。霍普金斯统计量H可以表示为: H = ∑ i = 1 n y i ∑ i = 1 n x i + ∑ i = 1 n y i H=\frac{\sum_{i=1}^ny_i}{\sum_{i=1}^nx_i+\sum_{i=1}^ny_i} H=∑i=1nxi+∑i=1nyi∑i=1nyi如果样本接近随机分布,那么 ∑ i = 1 n x i \sum_{i=1}^nx_i ∑i=1nxi 和 ∑ i = 1 n y i \sum_{i=1}^ny_i ∑i=1nyi 的取值应该比较接近,即H的值接近于0.5;如果聚类趋势明显,则随机生成的样本点距离应该远大于实际样本点的距离,即H的值接近于1。
2 判定数据簇数
确定聚类趋势之后,我们需要找到与真实数据分布最为吻合的簇数,据此判定聚类结果的质量。数据簇数的判定方法有很多,例如手肘法和Gap Statistic方法。需要说明的是,用于评估的最佳数据簇数可能与程序输出的簇数是不同的。例如,有些聚类算法可以自动地确定数据的簇数,但可能与我们通过其他方法确定的最优数据簇数有所差别。【机器学习】确定最佳聚类数目的10种方法
3 测定聚类质量
3.1 轮廓系数
3.2 均方根标准偏差
用来衡量聚结果的同质性,即紧凑程度,定义为:
其中
C
i
C_i
Ci 代表第i个簇,
c
i
c_i
ci 是该簇的中心,
x
∈
C
i
x∈C_i
x∈Ci 代表属于第i个簇的一个样本点,
n
i
n_i
ni为第i个簇的样本数量,P为样本点对应的向量维数。
∑
i
=
1
(
n
i
−
1
)
=
n
−
N
C
\sum_{i=1}(n_i-1)=n-NC
∑i=1(ni−1)=n−NC 其中n为样本点的总数,NC为聚类簇的个数,通常NC<<n,因此
∑
i
=
1
(
n
i
−
1
)
\sum_{i=1}(n_i-1)
∑i=1(ni−1) 的值接近点的总数,为一个常数。综上,RMSSTD可以看作是经过归一化的标准差。
3.2 R方(R-Square)
衡量聚类的差异度,定义为:
其中D代表整个数据集,c代表数据集D的中心点,从而
∑
x
∈
D
∣
∣
x
−
c
∣
∣
2
\sum_{x∈D}||x-c||^2
∑x∈D∣∣x−c∣∣2 代表将数据集D看作单一簇时的平方误差和。与上一指标RMSSTD中的定义相同,
∑
i
∑
x
∈
C
i
∣
∣
x
−
c
i
∣
∣
2
\sum_{i}\sum_{x∈C_i}||x-c_i||^2
∑i∑x∈Ci∣∣x−ci∣∣2 代表将数据集聚类之后的平方误差和,所以RS代表了聚类之后的结果与聚类之前相比,对应的平方误差和指标的改进幅度。
3.3 改进的HubertΓ统计
通过数据对的不一致性来评估聚类的差异,定义为: