\begin{equation} \newcommand{\b}[1]{\mathbf{#1}} \newcommand{\bo}[1]{\boldsymbol{#1}} \nonumber \end{equation}

  • $n$:サンプル数
  • $c$:クラスタ数
  • $\mathbf{x}_k$:特徴ベクトルのサンプル
  • $w_k$:サンプルの重み
  • $\delta_{ik}$:$k$番目のサンプルをクラスタ$\omega_i$に割り当てたとき1,そうでないとき0
  • $\mathbf{p}_i$:各クラスタのプロトタイプ

各$\mathbf{x}_k$に重み$w_k$が付けられている場合のK-meansについて考える. 通常のK-meansと大きな違いはない.


最小化

(1) $\boldsymbol{\delta}_k = \left[ \delta_{1k}, \ldots, \delta_{nk} \right]$について最小化

各$\b{p}_i$を固定.

各$e_k$について最小化すれば$e$が最小化される. よって$j = \argmin_{i} { w_k |\b{x}_k - \b{p}_i |^2 }$ならば

とすることで$e_k$を最小化できる.


(2) $\b{p}_i$について最小化

各$\boldsymbol{\delta}_k$を固定.

各$\epsilon_i$について最小化すれば$e$が最小化される. $\frac{\partial \epsilon_i}{\partial \b{p}_i} = 0$とおいて,$\b{p}_i$について解く.


アルゴリズム

  1. 適当に$c$個のプロトタイプ$\b{p}_1, \ldots, \b{p}_c$を決める.
  2. $n$個の各サンプル$\b{x}_k$について,重み付き距離$w_k |\b{x}_k - \b{p}_i |^2$が最小のクラスタに割り当てる.
  3. 各クラスタ毎に重み付き平均ベクトルを求める.
  4. クラスタの再割り当てが発生しなくなるまで2.と3.を繰り返す.