kkk-均值聚类,就是利用每个样本到各个类中心的距离来判断属于哪个类,或者知道属于某个类别来求解中心。但是,这就陷入先有鸡还是先有蛋的问题,因为此问题有隐含变量,故可以用EM算法求解。
- ① 随机化
假设你想分成 kkk 类,那么可以随机化 μ1,μ2,⋯ ,μk\mu_1,\mu_2,\cdots,\mu_kμ1,μ2,⋯,μk - ② E-step
Zi=arg mink∣∣xi−μk∣∣,i=1∼NZ_i=\argmin_k||x_i-\mu_k||,\quad i=1\sim NZi=kargmin∣∣xi−μk∣∣,i=1∼N 此处很好理解,离谁进属于谁嘛 - ③ M-step
{Nk=∑i=1NI(Zi=k)N个样本中多少个属于第k类μk=1Nk∑i=1Zi=kxiμk是第k类样本均值\begin{cases} N_k=\displaystyle\sum_{i=1}^NI(Z_i=k)&N个样本中多少个属于第k类\\\\ \mu_k=\displaystyle\frac{1}{N_k}\sum_{i=1\atop Z_i=k}x_i&\mu_k是第k类样本均值 \end{cases}⎩⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎧Nk=i=1∑NI(Zi=k)μk=Nk1Zi=ki=1∑xiN个样本中多少个属于第k类μk是第k类样本均值 - ④跳到②,循环直至收敛