人工知能してみる

人工知能の中の人が機械学習とか統計とかAI的なことを書き連ねます

KH Coderのオプション「Ward・郡平均・最短距離法」って?

前回はKH Coderを使って簡単な自然言語解析をしてみました。
grahamian.hatenablog.com

今回はKH CoderのオプションにあるWard・郡平均・最短距離法について書いてみます。

Ward・郡平均・最短距離法ってそもそも何?

そもそもWard・郡平均・最短距離法とは階層クラスター解析の際に使われる手法の一つです。
クラスタリングする方法はいくつかありますが、階層・非階層の2つがあります。
階層クラスタリングは予め決めた条件を満たすようにクラスタリングする方法です。
非階層クラスタリングは予め決めたクラスター数になるようにクラスタリングする方法です。
それぞれには次のような特徴があります。
階層クラスタリングは収束条件が決まっているため何度計算しても毎回同じようになります。
一方、非階層では初期状態によって結果のゆらぎが存在します。
計算の精度を考えると階層クラスタリングだけでいいような気がしますね。
でも階層クラスタリングはデータ量が増えると計算時間が爆発します。
そのためビッグデータ解析では非階層クラスタリングが主に使われています。

まあKH Coderでは階層クラスタリング使ってますが。

さて、そんな階層クラスタリングをするときの収束条件を決めるのがWard法とかです。

Ward法とは?

Ward法は「重心」を意識した方法です。
あるクラスタの重心をWとします。
次に2クラスターが結合することを仮定したとき生じる重心W'を考えます。
このとき、元々のクラスタの重心Wと要素との距離の二乗和と、結合後クラスタの重心W'と要素との距離の二乗和の差を算出します。
この二乗和の差が最小になるように結合していくのがWard法です。
計算量は多いですが感度が高いので一般的に使用されている手法です。

郡平均法とは?

郡平均法は各クラスタの間における要素距離の平均をクラスタ距離として計算します。
この距離を最小にする手法です。

最短距離法とは?

最短距離法はクラスタの要素距離で最も近いものをクラスタ距離とします。
これは上述の2手法に比べて計算量が非常に少ないです。
しかし、クラスタが順番に結合してしまう「鎖効果」が発生しやすいです。
そのため分類の感度が低い方法となっています。

まとめ

さて、今回は簡単にKH Coderにでてくるクラスタリングのオプションについて簡単に書いてみました。
難しい数学も無いので割りと直感的に理解できる範囲で良かったです。
クラスタリングは非常に便利で強力な手法なのでガンガン身につけて行きたいですね。