ロジスティック回帰 完全ガイド:理論・推定・正則化・評価指標からscikit‑learn実装まで実務で使える解説
はじめに
ロジスティック回帰は、機械学習と統計学で広く使われる分類モデルの一つです。特に2値分類(成功/失敗、陽性/陰性など)で用いられ、予測確率を直接出力できるため実務での解釈や意思決定に向いています。本コラムではロジスティック回帰の理論、推定方法、実務上の注意点、拡張(多クラス、正則化)や評価指標までを体系的に解説します。
基本概念と直感
ロジスティック回帰は「説明変数 x の線形結合」を「ある事象が起きる確率 p」に変換するモデルです。線形予測子 z = β0 + β1 x1 + ... + βp xp をシグモイド関数(ロジスティック関数)で変換します。
シグモイド関数:
- σ(z) = 1 / (1 + exp(−z))
この変換により、出力は常に 0〜1 の確率として解釈可能になります。また、ロジット(log-odds)変換を用いると線形性が保たれます:
- logit(p) = log(p / (1 − p)) = z = Xβ
数学的定式化と推定
観測 i に対して応答 yi ∈ {0,1}、特徴ベクトル xi が与えられるとき、モデルは
- P(yi = 1 | xi) = σ(xi^T β)
と表されます。パラメータ β は最尤推定(MLE)で求められ、対数尤度は
- ℓ(β) = Σ [ yi log σ(xi^T β) + (1−yi) log(1−σ(xi^T β)) ]
を最大化することと同値です。負の対数尤度は交差エントロピー損失(binary cross-entropy)に対応します。
最適化手法
- ニュートン法 / IRLS(反復加重最小二乗法): 二階微分(ヘッセ行列)を使い高速収束。ただしデータが大きいと計算コストが高い。
- 勾配降下法(SGD, ミニバッチ): 大規模データ向け。特徴量のスケーリングが重要。
- 準ニュートン法(LBFGS): 二階情報を近似し、安定して速い。
正則化と過学習対策
過学習や多重共線性を抑えるために正則化を導入します。損失にペナルティ項を加えます:
- L2正則化(ridge): λ ||β||_2^2。係数を小さくする効果。
- L1正則化(lasso): λ ||β||_1。スパース化(特徴選択)を実現。
- Elastic Net: L1 と L2 の組合せ。
scikit-learn 等ではソルバー(liblinear, lbfgs, saga など)によってサポートされる正則化や多クラス対応が異なるので注意が必要です。
多クラス分類への拡張
多クラスでは softmax 回帰(多項ロジスティック回帰)を用います。k クラスについて各クラスのスコア zk = x^T βk を計算し、確率は
- p(yk = 1 | x) = exp(zk) / Σ_j exp(zj)
としてモデル化します。二値を多重二値に分ける One-vs-Rest(OvR)も使われますが、softmax の方が一貫した確率を出します。
評価指標と性能確認
- 混同行列、精度(Accuracy)
- 適合率(Precision)、再現率(Recall)、F1スコア
- ROC曲線とAUC:閾値を変化させたときの真陽性率と偽陽性率の関係
- 精度–再現率曲線:クラス不均衡時に有用
- キャリブレーションプロット:予測確率が実測確率と一致しているか
実務上の前処理と注意点
- 特徴量スケーリング: 勾配法や正則化感度のために標準化が望ましい。
- カテゴリ変数: ワンホットエンコーディングやターゲットエンコーディングを使用。
- 欠損値処理: 欠損が多い特徴は除去、あるいは適切な補完。
- 多重共線性: VIF で確認。強い相関がある場合は次元削減や正則化を検討。
- クラス不均衡: サンプリング(オーバー/アンダー)、クラス重み、閾値調整を検討。
- 完全分離(complete separation): ある説明変数でクラスが完全に分離されると係数が発散する。正則化や Firth 推定を検討。
係数の解釈と統計的検定
係数 βj は「その特徴が1単位増加したときの log-odds の変化」を表します。exp(βj) をとればオッズ比(odds ratio)となり、解釈が直感的です。統計学的には標準誤差、z検定、信頼区間(Wald検定)や尤度比検定で係数の有意性を検定できます。大標本での漸近性に依存するので小サンプルでは注意が必要です。
長所・短所
- 長所: 実装が容易で解釈性が高く、確率出力が得られ、推論と予測の両方に使える。計算コストも比較的低い。
- 短所: 線形分離境界に限定される(非線形関係は特徴変換や多項式、相互作用項で対応)し、外れ値や高次元スパースデータの扱いに注意が必要。
実装上のヒント(scikit-learn 等)
- 特徴量はトレーニング時と同じ前処理で本番系にも適用すること(スケーラ、エンコーダを保存)。
- solver の選択: 小規模・L1 を使いたいなら liblinear、マルチクラスや大規模なら lbfgs や saga。saga は L1/L2/elasticnet とマルチクラス両方に対応。
- 正則化パラメータ C(scikit-learn では逆正則化強度)やペナルティ型はクロスバリデーションでチューニングする。
- モデルをデプロイする際は係数と前処理を安定的に再現できるように保存(pickle や ONNX)する。
まとめ
ロジスティック回帰はシンプルで強力な分類モデルです。理論的には対数オッズの線形性や独立性などの仮定がありますが、正則化や特徴エンジニアリング、適切な評価指標を用いることで多くの実務課題に適用可能です。モデルの解釈性や確率出力が重要な場面では第一選択となることが多く、後続モデルのベースラインとしても有用です。
参考文献
- Logistic regression — Wikipedia
- Christopher Manning / Lecture notes on logistic regression(解釈補助)
- T. Hastie, R. Tibshirani, J. Friedman — The Elements of Statistical Learning
- Firth's bias reduction for logistic regression — John D. Cook
- scikit-learn: LogisticRegression
- statsmodels: Logit


