統計学
統計学
  • 2024/05/13
  • 2024/09/19

「判別分析」入門

与えられたデータについて、各サンプルがどのグループに属するかを判定する「判別分析」についての理論を簡単に理解したいと思います。

判別分析とは


与えられたデータについて、その特徴量の情報から各サンプルがどのグループに属するかを判別する方法を 判別分析 といいます。

設定

いま、2群 の判別を考えます。このとき、群 に属する 番目のサンプルを、

と定義します。 はデータを説明するための特徴量の数です。ここで、各特徴量の重みを表す 次元ベクトル

を考え、 を重みつけし、特徴量の次元を1次元に射影したサンプルを次で定義します:

いま、群 のどちらかに属するかわからないサンプル があるとします。このとき、 がどちらの群に属するかの情報を与える関数 判別関数 といいます。

フィッシャーの線形判別


2群 への分類を行うために、フィッシャーの線形判別 とよばれる方法を用いることができます。

群内分散・群間分散

各群 内の射影したサンプルの分散(群内分散)は、

で与えられます。ここで は群 のサンプル の分散共分散行列です。いっぽう、群 間の分散(群間分散)は、2群のサンプル平均の差を考えることで、

と定義します。

フィッシャーの線形判別関数

判別関数を構成するために、最も適切な重み の条件を考えます。いま、各群のサンプル平均どうしは離れていたほうがよく、一方で群内での分散は小さいほうが適するため、

という基準を最大化することを考えます。ここで は統合分散共分散行列:

です。最適な射影方向を定める重みは、

と与えられます。これを用いて、分類未知のサンプル のように射影されることになります。一方、各群のサンプル平均 で射影した後の重心位置は、

であるので、それらの差分として フィッシャーの線形判別関数 を次のように定義します:

フィッシャーの線形判別関数

のとき:
は群 と推定される
のとき:
は群 と推定される

マハラノビス距離による判別

をサンプル から重心位置への マハラノビス距離(の平方)といいます。一方、

をサンプル から群 のサンプル平均 へのマハラノビス距離(の平方)といいます。ここで、フィッシャーの線形判別関数との間に、

の関係があるため、

2次判別関数

のとき:
のほうが小さく、 は群 と推定される
のとき:
のほうが小さく、 は群 と推定される

のように判別することも可能です。この場合、統合した分散共分散行列 の代わりに、各群ごとの分散共分散行列 を用いることになります。

正準判別


多群の判別において、サンプルを低次元に射影して重心位置との比較で判別を行う方法は、正準判別 という名前で呼ばれます。いま、 個の群があるとき、各群のサンプル平均を 、分散共分散行列を とし、系の全サンプルの平均を とするとき、群内変動行列 および 群間変動行列 を以下で定義します:

これらに対し、比 を最大化するような射影軸 の固有ベクトルとして複数得られます。

サポートベクターマシン


基本理論

2群 のいずれかに属する 個の特徴量からなる トレーニングデータ と、属するクラスを表すクラスラベル:

が与えられているとします。いま、分類未知のサンプル に対し、トレーニングデータから がどちらの群に属するかを判別するための判別器を構成することを考えましょう。サポートベクターマシン (SVM) と呼ばれる手法では、もとのサンプルをある関数 で変換した について、判別関数:

を考え、 の正負に応じて に対応するクラスラベル を貼ることで判別を行います:

つまり、トレーニングデータ については、

をみたすため、これを最適化の制約条件とします。

は2群を完全に分離するような判別平面を与えることになりますが、SVMにおいてはこれを最適化するために各トレーニングデータ と平面の最短距離を考えます。これを マージン といい、次で表されます[1]

つまり、SVMは についての以下のような最適化問題として表すことができます:

SVM

サポートベクトル

上記の最適化問題は、 であることに注目すると、制約条件をより厳しくして、

とすることも可能です。ここで、 のうち判別平面に一番近い を与えるものを サポートベクトル といい、これを とするとき、そのマージン は以下を満たすはずです:

すなわち、サポートベクトルにのみ注目するとき、最適化問題はサポートベクトルが与えるマージン を用いて と置き換えることで正規化することができます:

さらに、 に関する最小化問題に置き換えることまでできて、

SVM:別表現

という表現を得ます。

カーネル関数とSVMの種類

パラメータ について、

というトレーニングデータでの線形展開を考えます。これを用いると、最適化問題の別の形式として、

SVM:カーネル関数による表現

と表すこともできます。ここで、トレーニングデータの内積を用いる関数

カーネル関数 といいます。SVMはカーネル関数によって線形・非線形に大別できます:

名称 表式 SVM形式
線形カーネル 線形SVM
多項式カーネル 非線形SVM
ガウシアンカーネル 非線形SVM

ハードマージン・ソフトマージン

すべてのトレーニングデータが線形分離可能でない場合、そのような に対し、

のペナルティ(線形分離可能であれば )を課して、最適化問題を次のように書き換えます:

ソフトマージンSVM

ここで はペナルティの強さを制御するパラメータであり、このような形式のSVMを ソフトマージンSVM と呼びます。対して、すべてのデータが線形分離可能であれば、今までの最適化条件の下 ハードマージンSVM を用いることができます。

参考


書籍

永田靖・棟近雅彦『多変量解析入門』(サイエンス社, 2001)第7章


『統計学実践ワークブック』(学術図書出版社, 2020)第23章

サイト

線形SVM | Qiita


SVMをおさらい(ソフトマージン線形SVMの編)| Qiita

脚注


  1. ここでは絶対値とベクトルの大きさの表記を分けるために、ベクトルの ノルム で書いています。 ↩︎

関連記事


    記事がありません

Shota Inoue
Shota Inoue

大学生 | 化学・Webプログラミング・統計学など