二次判別分析の概要


一連の予測子変数があり、 応答変数を2 つのクラスのいずれかに分類したい場合、通常はロジスティック回帰を使用します。

ただし、応答変数に 3 つ以上の可能なクラスがある場合は、通常、LDA と呼ばれる 線形判別分析を使用します。

LDA は、 (1)各クラスの観測値は正規分布し(2)各クラスの観測値は同じ共分散行列を共有すると仮定します。これらの仮定を使用して、LDA は次の値を見つけます。

  • μ k : k番目のクラスのすべてのトレーニング観測値の平均。
  • σ 2 : kクラスのそれぞれのサンプル分散の加重平均。
  • π k : k番目のクラスに属するトレーニング観測の割合。

次に、LDA はこれらの数値を次の式に代入し、各観測値 X = x を、式が最大値を生成するクラスに割り当てます。

d k (x) = x * (μ k2 ) – (μ k 2 /2σ 2 ) + log(π k )

LDA の名前に線形という名前が付いているのは、上記の関数によって生成される値が x の線形関数の結果から得られるためです。

線形判別分析を拡張したものが二次判別分析であり、QDA とも呼ばれます。

この方法は LDA に似ており、各クラスの観測値が正規分布していることも前提としていますが、各クラスが同じ共分散行列を共有していることは前提としていません。代わりに、QDA は、各クラスが独自の共分散行列を持つことを前提としています。

言い換えれば、k番目のクラスの観測値は X ~ N(μ k , Σ k ) の形式であると仮定します。

この仮定を使用して、QDA は次の値を見つけます。

  • μ k : k 番目のクラスのすべてのトレーニング観測値の平均。
  • Σ k : k 番目のクラスの共分散行列。
  • π k : k番目のクラスに属するトレーニング観測の割合。

次に、QDA はこれらの数値を次の式に代入し、各観測値 X = x を、式が最大値を生成するクラスに割り当てます。

D k (x) = -1/2*(x-μ k ) T Σ k -1 (x-μ k ) – 1/2*log|Σ k | + log( πk )

QDA の名前に二次関数が含まれていることに注意してください。これは、上記の関数によって生成される値が x の二次関数の結果から得られるためです。

LDA と QDA: どちらかを使用する場合

LDA と QDA の主な違いは、LDA は各クラスが共分散行列を共有していると想定しているため、分類器の柔軟性が QDA よりもはるかに低いことです。

これは本質的に、分散が低いこと、つまり、異なるトレーニング データセットに対して同じことを実行することを意味します。欠点は、 Kクラスが同じ共分散を持つという仮定が偽の場合、LDA が高いバイアスに悩まされる可能性があることです。

一般に、次の状況では QDA が LDA よりも優先されます。

(1)トレーニングセットが大きい。

(2) K個のクラスが共通の共分散行列を共有する可能性は低いです。

これらの条件が満たされると、QDA はより柔軟でデータにうまく適応できるため、パフォーマンスが向上する傾向があります。

QDA用のデータを準備する方法

QDA モデルをデータに適用する前に、データが次の要件を満たしていることを確認してください。

1. 応答変数はカテゴリカルです。 QDA モデルは、分類問題、つまり応答変数をクラスまたはカテゴリに分類できる場合に使用するように設計されています。

2. 各クラスの観測値は正規分布に従います。まず、各クラスの値の分布がほぼ正規分布していることを確認します。そうでない場合は、 まずデータを変換して分布をより正規化することを選択できます。

3. 極端な外れ値を考慮します。 LDA を適用する前に、データセット内に極端な外れ値がないか必ず確認してください。通常、 箱ひげ図または散布図を使用するだけで、外れ値を視覚的に確認できます。

R と Python の QDA

次のチュートリアルでは、R と Python で二次判別分析を実行する方法について段階的な例を示します。

R での二次判別分析 (ステップバイステップ)
Python での二次判別分析 (ステップバイステップ)

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です