判別分析を学んだ

判別分析とは、データのグループ分けを行う方法。
データを何がしかの基準で、二つに分類する。
分類の方法としては、超平面である線形判別関数を使う方法と、マハラノビス距離を使う方法がある。
今日は線形判別関数を使う方法を学んだ。

二つのグループに分ける

ってどこかで聞いたことがあると思ったら、SVMですね。

どこが違うのか

最適化(最大化)する対象が違います。
SVMは超平面に最も近いデータ点までの距離(マージン)を最大化します。
線形判別関数は二つのデータ群の中心点同士の距離を最大化します。

面白いところ

数式を書くのがめんどくさいんであれなんですが、(超平面の式の絶対値)/(超平面の係数のノルム)で、超平面からデータまでの距離を求めることができます。
SVM、判別分析ともに、上記の式を用いて超平面を求めようとするのですが、そこから枝分かれしていきます。

SVM

SVMでは、マージン領域内にデータが入り込まないという制約のため、上記の式の分子が0になります。
そのため、超平面の係数のノルムを最小化→超平面のノルムの2乗の最大化と置き換わり、2次計画問題へと定式化できます。

判別分析

判別分析では、超平面の式の絶対値を判別得点とします。
判別得点は各データによって変化するが、超平面の係数のノルムはデータによって変化しないので、判別得点について着目します。
判別得点の分散を求め、ちょちょいと式変形すると、判別分析の分散が、実はクラス間の離れ具合とクラス内の分散を表していることが分かります。
あとは、クラス間の離れ具合が最も大きくなるように、最適化を行えばおkです。

求め方

(クラス間の離れ具合)/(判別得点分散)が目的関数となり、極値条件を使って、最後に二つのクラスの中心同士の中点を超平面が通る条件を使ってやれば求まります。

まとめ

判別関数の係数によって、変量の重要性がわかる。
判別分析は割と直感的なので分かりやすい。

研究に活かせそうなアイデア

判別分析自体はすでに特徴量が決定した後の問題になるけど、特徴量を動的に選択するときに、クラス間距離とクラス内分散を考慮に入れると面白いことになるんではないだろうか。

反省

今まで統計なめてた。
統計すげぇぜ、みんな。

展望

そろそろマジでRに火を噴かせてやるか。
すでに購入済みのこいつを使ってな、ふふふ。

RとS-PLUSによる多変量解析

RとS-PLUSによる多変量解析