k平均法
k平均法(k-means method)とは、クラスタ分析の手法の1つで、クラスタの重心との距離を最も小さくする基準でクラスタを形成していく方法です。クラスタの数($k$)は固定とするため、この名前が付いています。
尚、クラスタ分析とは、対象(サンプル)間の距離を定義し、距離の近さによって対象を分類する分析方法の総称です。
k平均法の目的関数 $J$ を以下で定義します。ここで、$x$ はサンプル(総数 $n$ 個)です。$r_{ij}$ は、クラスタ $j$ にサンプル $x_i$ が含まれれば “1”、含まれなければ “0” の2値をとります。
$$J=\sum_{i=1}^n\sum_{j=1}^kr_{ij}(x_i-z_j)^2 -①$$
k平均法では、この $J$ を最小にする $r_{ij}$ を求めます。
尚 $z$ は、与えられた $r_{ij}$ の下、$J$ が最小値(停留値)をもつ条件として求められます。
$$\frac{\partial J}{\partial z_j}=-\sum_{i=1}^n2r_{ij}(x_i-z_j)=0$$$$z_j=\frac{\sum_{i=1}^nr_{ij}x_i}{\sum_{i=1}^nr_{ij}} -②$$
このように、$z_j$ は各クラスタの重心を表すことが分かります。
アルゴリズム
k平均法のアルゴリズムは以下になります。
- 初期のクラスタ分けはランダムに行い、この{$r_{ij}$}を $R_0$ とする。
- $R_0$ でのクラスタ重心を計算する。
$$z_j=\frac{\sum_{i=1}^nr_{ij}x_i}{\sum_{i=1}^nr_{ij}} -②$$ - 目的関数(①)を小さくする $R_1$ を求める。
つまり、各サンプルから最も近い重心のクラスタに移動させます。
$$m=\mathrm{arg}\Big(\mathrm{min}|x_i-z_m|\Big)$$$$r_{ij}=\left\{\begin{array}{ll}
1 & (j=m) \\
0 & (j\ne m)\end{array} \right.$$例えば、サンプル $x_1$ をクラスタ2に移動する場合は、$r_{12}=1$ とし、それ以外を $r_{ij}=0$ とします。 - 収束条件は $R_l=R_{l+1}$(クラスタを移動させるサンプルがない)とする。収束していなければ、ステップ2から繰り返す。
事例
サンプル数を5、クラスタ数を2の例を考えます。
サンプル | $x_1$ | $x_2$ | $x_3$ | $x_4$ | $x_5$ |
値 | $3$ | $7$ | $1$ | $6$ | $2$ |
- 初期状態($l=0$)として、クラスタ1($x_1,x_2$)、クラスタ2($x_3,x_4,x_5$)とする。
- クラスタ重心を計算する。
$$z_1=\frac{3+7}{2}=5$$$$z_2=\frac{1+6+2}{3}=3$$ - サンプルとクラスタ重心の距離 $J_1,J_2$ を計算する。
- $x_1$ $x_2$ $x_3$ $x_4$ $x_5$ $J_1=(x_i-z_1)^2$ $4$ $4$ $16$ $1$ $9$ $J_2=(x_i-z_2)^2$ $0$ $16$ $4$ $9$ $1$ クラスタの移動 $1\to2$ なし なし $2\to1$ なし $l=1$ として、クラスタ1($x_2,x_4$)、クラスタ2($x_1,x_3,x_5$)とする。
- クラスタ重心を計算する。
$$z_1=\frac{7+6}{2}=6.5$$$$z_2=\frac{3+1+2}{3}=2$$ - サンプルとクラスタ重心の距離 $J_1,J_2$ を計算する。
- $x_1$ $x_2$ $x_3$ $x_4$ $x_5$ $J_1=(x_i-z_1)^2$ $12.25$ $0.25$ $30.25$ $0.25$ $20.25$ $J_2=(x_i-z_2)^2$ $1$ $25$ $1$ $16$ $0$ クラスタの移動 なし なし なし なし なし クラスタの移動がなくなり、クラスタ1($x_2,x_4$)、クラスタ2($x_1,x_3,x_5$)で確定となります。
数学
解析学、代数学、幾何学、統計学、論理・基礎論、情報・暗号、機械学習、金融・ゲーム理論、高校数学
散策路TOP
数学、応用数学、古典物理、量子力学、物性論、電子工学、IT、力学、電磁気学、熱・統計力学、連続体力学、解析学、代数学、幾何学、統計学、論理・基礎論、プラズマ物理、量子コンピュータ、情報・暗号、機械学習、金融・ゲーム理論