メインコンテンツへスキップ
ブログ一覧に戻る
data

判別分析(LDA/QDA)|平均と共分散で境界を引く(実務ガイド)

2025年11月5日
11分で読めます
判別分析(LDA/QDA)|平均と共分散で境界を引く(実務ガイド)

判別分析(LDA/QDA)|平均と共分散で“線形/二次”の境界を引く

「判別分析を活用したいが、どう判断すればいいかわからない」

そのとき多くの人は、LDA、QDA、判別関数、事前確率、等共分散、異共分散など「技術」を学ぶことから始めます。

もちろん技術は重要です。

ただ実務では、技術以前に「前提(目的・戦略・判断軸)」が設計されていないことで、何を学んでも噛み合わない状態になっているケースが少なくありません。

何のために判別分析を活用するのか(目的)

どこで勝つのか(戦略)

何を見て良し悪しを判断するのか(判断軸)

ここが曖昧だと、判別分析の活用が「作業」になりやすく、改善の方向性もブレます。

結果として、判別分析を活用しても成果が出ない、改善施策を打っても成果が出ない、といったズレが起きやすくなります。

平均ベクトルと共分散(分散の広がり)から、クラス間の境界を解析的に求める古典的かつ強力な手法です。線形判別分析(LDA)はクラスごとに等しい共分散を仮定し、二次判別分析(QDA)はクラスごとに異なる共分散を許す可能性があります。説明性が必要、線形に近い境界、特徴が過度に多くない表形式データなどで活用できる可能性があります。

※この記事は、判別分析を理解し、判断に活用する方向けです。即効性を求める方や、すでに前提設計が明確な方には、より具体的な実践記事をおすすめします。

まずはここだけ(やさしい導入)

  • 何をする?: 各クラスの“中心(平均)”と“広がり(共分散)”から境界を決め、未知データのクラスを当てる
  • いつ使う?: 説明性が必要、線形に近い境界、特徴が過度に多くない表形式データ
  • どう読む?: LDA は直線/超平面の境界、QDA は曲線/曲面の境界。評価は AUC/Recall など課題に応じて

用語ミニ辞典(1 行で)

  • 判別関数: クラスごとのスコア。最大のクラスに割当
  • 事前確率: 各クラスの出現確率。データの不均衡に対応
  • 等共分散/異共分散: LDA/QDA の前提(境界が線形/二次に)

前提と注意

  • 線形分離に近い問題で強い(LDA)。非線形なら QDA か別手法
  • 特徴量は標準化を推奨。外れ値に敏感
  • 次元が高い/サンプルが少ないと共分散推定が不安定(正則化 LDA を検討)

最小コード(scikit-learn)

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis, QuadraticDiscriminantAnalysis
from sklearn.model_selection import train_test_split
from sklearn.metrics import roc_auc_score, classification_report
import pandas as pd

X = pd.DataFrame({
  'age':[22,25,47,52,46,56,55,60],
  'spend':[200,220,500,520,480,600,590,610]
})
y = [0,0,1,1,1,1,1,1]

X_tr, X_te, y_tr, y_te = train_test_split(X, y, test_size=0.3, random_state=42)

lda = LinearDiscriminantAnalysis()
lda.fit(X_tr, y_tr)
proba = lda.predict_proba(X_te)[:,1]
print('LDA AUC=', roc_auc_score(y_te, proba))
print(classification_report(y_te, lda.predict(X_te)))

qda = QuadraticDiscriminantAnalysis()
qda.fit(X_tr, y_tr)
proba2 = qda.predict_proba(X_te)[:,1]
print('QDA AUC=', roc_auc_score(y_te, proba2))

実務ケーススタディ(解約/継続の判別)

目的: 顧客の継続/解約を、基本属性と行動特徴から判別し、フォロー対象を抽出する。

  1. 前処理

  • 標準化、外れ値の確認、カテゴリのエンコード

  1. 学習と選択

  • LDA をベースラインに、非線形が強ければ QDA も比較

  1. 評価と運用

  • AUC/PR-AUC、しきい値はコストで最適化。週次再学習とドリフト監視

よくある誤解とその構造

判別分析を活用する際、「手法を選べば成果が出る」という誤解が生じやすいです。具体的には「判別分析を活用すれば成果が出る」「LDA/QDAを選べば成果が出る」「評価指標を選べば成果が出る」といった形で現れます。

なぜこの誤解が生じるのか

これらの誤解は、「手法の選択」と「前提設計」の関係を逆転させて考えることで生じます。

多くの解説では、手法の選択(判別分析の適用、LDA/QDAの選択、評価指標の選択など)が重要であることが強調されます。確かに手法の選択は重要です。しかし、手法の選択が先に来るのではなく、「何を達成したいのか」「どこで勝つのか」「何を見て良し悪しを判断するのか」という前提設計が先にあるべきです。

前提設計が明確でない状態で手法を選んでも、どれを選んでも効果が発揮されにくい傾向があります。なぜなら、手法は「手段」であり、目的が明確でなければ、手段の選択基準が曖昧になるからです。

判断の構造を可視化する

判別分析を活用する際の判断プロセスを整理すると、以下のようになります:

  1. 前提設計(目的・戦略・判断軸の明確化)

  • 何を達成したいのか(クラス分類?説明性?予測精度?)
  • どこで勝つのか(どの特徴量を使うのか)
  • 何を見て良し悪しを判断するのか(AUC?Recall?解釈可能性?)

  1. データの明確化(分析対象の特定)

  • どのデータを分析するのか
  • データの種類と品質はどうか

  1. 前処理の実施(前提設計に基づく前処理)

  • 標準化、外れ値処理、カテゴリのエンコードなど

  1. 手法の選択(前提設計に基づく選択)

  • LDA/QDAの選択(線形分離に近い問題ならLDA、非線形ならQDAか別手法)
  • 評価指標の選択(AUC/Recallなど課題に応じて)

  1. 解釈と活用(実務での活用)

  • 判別関数の解釈
  • クラス分類の活用

この順序を逆転させると、手法の選択が目的化し、成果につながりにくくなります。

実務で見落とされがちな点

前提設計が欠落している場合、以下のような問題が起きやすいです:

  • 判別分析を活用しても成果が出ない
  • 改善施策を打っても成果が出ない
  • 改善の方向性がブレる

これらの問題は、手法の選択ではなく、前提設計の欠落が原因である可能性が高いです。

また、評価指標の選択が目的化してしまう誤解も生じやすいです。評価指標は「目的に応じた選択」であり、前提設計が明確でなければ、どれを選んでも効果が発揮されにくい傾向があります。

一般的に語られる判別分析の考え方

判別分析について、多くの場合、以下のような考え方が語られます。ただし、これらは一般的な傾向であり、すべてのケースに当てはまるわけではありません。

判別分析の重要性

判別分析は、平均ベクトルと共分散(分散の広がり)から、クラス間の境界を解析的に求める古典的かつ強力な手法として重要とされています。線形判別分析(LDA)はクラスごとに等しい共分散を仮定し、二次判別分析(QDA)はクラスごとに異なる共分散を許すことができ、説明性が必要、線形に近い境界、特徴が過度に多くない表形式データなどで活用できる可能性があります。

判断の軸

  • 自社の目的(何を達成したいか)に照らして、どの判別分析が重要か
  • 自社のリソース(時間・予算・人材)に照らして、どの判別分析が現実的か
  • 自社のターゲット顧客に照らして、どの判別分析が有効か

実務視点で見ると見落とされがちな点

一般的な考え方とは別に、実務では以下の点が見落とされがちです。ただし、これらもすべてのケースに当てはまるわけではありません。

前提設計の欠落

判別分析で成果が出ない最大の原因は、手法の選択ではなく、前提設計(目的・戦略・判断軸)の欠落である可能性が高いです。

何が起きるか

  • 判別分析を活用しても成果が出ない
  • 改善施策を打っても成果が出ない
  • 改善の方向性がブレる

判断の軸

  • 目的(何を達成したいか)が明確か
  • 戦略(どこで勝つか)が決まっているか
  • 判断軸(何を見て良し悪しを判断するか)が設定されているか

前処理と評価

標準化、外れ値の確認、カテゴリのエンコードなどの前処理が適切でないと、判別分析の性能が低下する可能性があります。特徴量は標準化を推奨。外れ値に敏感とされています。次元が高い/サンプルが少ないと共分散推定が不安定(正則化 LDA を検討)とされています。

評価と運用

AUC/PR-AUC、しきい値はコストで最適化。週次再学習とドリフト監視が重要とされています。実務では「使える評価」との両立が重要です。

5分診断:判別分析を活用する前に確認すべきこと

判別分析を活用する前に、以下の診断で自社の状況を確認することが有効な場合があります。

Q1:前提設計(目的・戦略・判断軸)が明確か?

  • Yes → Q2へ
  • No → 前提設計を明確にする(判別分析活用の目的、どの指標を重視するか、何を見て良し悪しを判断するか)

Q2:データ(どのデータを分析するか)が明確か?

  • Yes → Q3へ
  • No → データを明確にする(分析対象のデータ、データの種類、データの品質など)

Q3:継続的な改善(効果測定・改善サイクル)ができているか?

  • Yes → 次のステップへ
  • No → 継続的な改善の仕組みを作る(効果測定、改善サイクル、次の施策の決定)

診断結果に基づく次のアクション

  • Q1がNoの場合:前提設計を明確にする(判別分析活用の目的、どの指標を重視するか、何を見て良し悪しを判断するか)
  • Q2がNoの場合:データを明確にする(分析対象のデータ、データの種類、データの品質など)
  • Q3がNoの場合:継続的な改善の仕組みを作る(効果測定、改善サイクル、次の施策の決定)

練習問題(理解を定着)

  1. 特徴量が多くサンプルが少ない。LDA/QDA は不安定。対策は?

  • ヒント: 次元削減(PCA)、正則化 LDA、特徴量選択

  1. クラス不均衡で Recall が低い。どう調整?

  • ヒント: しきい値最適化、重み付け、再サンプリング

  1. LDA とロジスティック回帰の違いは?

  • ヒント: 仮定と導出は異なるが、線形境界という点では近い。性能と解釈で選択

判別分析の要点と判断の軸

判別分析は、平均ベクトルと共分散(分散の広がり)から、クラス間の境界を解析的に求める古典的かつ強力な手法です。線形判別分析(LDA)はクラスごとに等しい共分散を仮定し、二次判別分析(QDA)はクラスごとに異なる共分散を許すことができ、説明性が必要、線形に近い境界、特徴が過度に多くない表形式データなどで活用できる可能性があります。

ただし、これらは一般的な傾向であり、すべてのケースに当てはまるわけではありません。状況に応じて、複数の視点から検討し、最適な方法を見つけることが重要です。

判断の軸

判別分析を活用する際は、以下の判断軸を参考にすることが有効な場合があります:

  1. 前提設計(目的・戦略・判断軸)が明確か
  2. データ(どのデータを分析するか)が明確か
  3. 継続的な改善(効果測定・改善サイクル)ができているか

ただし、これらは一般的な傾向であり、すべてのケースに当てはまるわけではありません。状況に応じて、複数の視点から検討し、最適な方法を見つけることが重要です。

重要なポイント

  • 前提と注意:線形分離に近い問題で強い(LDA)。非線形なら QDA か別手法
  • 特徴量は標準化を推奨。外れ値に敏感
  • 次元が高い/サンプルが少ないと共分散推定が不安定(正則化 LDA を検討)
  • 評価:AUC/PR-AUC、しきい値はコストで最適化。週次再学習とドリフト監視

次のステップ

今回紹介した考え方は、あくまで一つの視点です。重要なのは、自社の状況・リソース・目的に照らして、どこを採用し、どこを捨てるかを考えることです。

「正解」は存在しませんが、「自社にとって可能性が高い選択肢」を複数の視点から検討し、検証を繰り返すことで、成果につながる可能性があります。

具体的には、以下のステップを検討することが有効な場合があります:

  1. 前提設計(目的・戦略・判断軸)を明確にする
  2. 診断フローで自社の状況を確認する
  3. 前処理:標準化、外れ値の確認、カテゴリのエンコード
  4. 学習と選択:LDA をベースラインに、非線形が強ければ QDA も比較
  5. 評価と運用:AUC/PR-AUC、しきい値はコストで最適化。週次再学習とドリフト監視

はじめて取り組む方へ(補足)

判別分析は、最初から完璧を目指すよりも、目的→判断軸→小さな検証の流れを一度回してみる方が前に進みやすいです。まずは自社にとって重要度が高い論点を1つだけ選び、身近なデータで小さく試してみてください。


判別分析についてのご相談はこちら

次の一手

状況に合わせて、選んでください。