k-平均クラスタリング
アルゴリズム
入力
次元のデータ個と、自然数が与えられているとする。
ステップ 1. 初期化
個の点をランダムに定める。各はクラスタの平均になる。
ステップ 2. 距離計算
番目のデータとに対してを計算する。その中で最も小さいものを選び、それをにする。各に対して繰り返す。
ステップ 3. の更新
以下の更新をに対して繰り返す。 更新してもがこれ以上変わらない場合、アルゴリズムを終了し、きちんと更新された場合はステップ 2に戻る。
出力
各クラスタの重心であると、各データがどのクラスタに属するかを返す。
- ここでは、ノルム、またはユーグリッドノルム、普通のノルムと呼ばれる距離の概念である。
説明
平均クラスタリングは、与えられたデータを個の類にクラスタリングする教師なし学習法である。上記のイラストは特に、次元で与えられた個のデータを個の類に分けることを示している。
平均は二乗誤差を最小化する代表値であり、平均クラスタリングはこの数学的事実に基づいてデータをうまく分類する。もっと簡単に説明すると、座標を足して平均を出すというのは、幾何学的なセンスからすると重心を意味するので、はあるデータの中心に引き寄せられるわけだ。もちろん、これを保証するためには、より強い条件と数式的な説明が必要だが、そもそも平均クラスタリングは単純さが魅力のアルゴリズムなので、この点に深く立ち入らない。
長所と短所
最大の問題は、この分類があまり正確でないということだが、これを補うための多くのアルゴリズムが出てきたにもかかわらず、単純さでこのアルゴリズムを圧倒するアルゴリズムはない。データサイエンティストの立場からすると、データを受け取ったらまず試すのは、まさしく平均クラスタリングだ。クラスタリング一回で分析を終えるのではなく、分析を始めるにあたって感触を得るために使うアルゴリズムというわけだ。