Re Reference AI

技術

ロジスティック回帰とは

Logistic Regression

特徴量の線形結合をシグモイド関数で確率に変換し、2値分類する統計的機械学習モデル

機械学習分類

ひとことで言うと

データから「はい・いいえ」のような2択の確率を計算する、基本的な統計モデル。

概要

ロジスティック回帰とは、入力特徴量の線形結合をシグモイド関数(ロジスティック関数)に通すことで0〜1の確率値へ変換し、その確率に基づき2値分類(あるいは多クラス分類)を行う統計的機械学習モデル。 名前に「回帰」とあるが、実際に予測するのは連続値ではなくクラスに属する確率であり、分類タスクに使われる手法。 モデルの構造が単純で各特徴量の係数がそのまま結果への影響度として解釈しやすいため、医療診断や与信審査など、判断根拠の説明が重視される場面で古くから使われている。

背景

線形回帰をそのまま分類問題に適用すると、出力が0〜1の範囲に収まらず確率として解釈できないという問題があった。 ロジスティック回帰は、線形結合の出力をシグモイド関数で0〜1の範囲へ変換し、分類問題における確率的な解釈を可能にする手法として考案された。

歴史

1958年: David Coxが、二項応答データに対する統計モデルとしてロジスティック回帰を定式化した論文を発表。 以降、統計学・疫学分野で標準的な手法として普及し、機械学習分野でも基本的な分類アルゴリズムの1つとして広く使われている。

アーキテクチャ

各特徴量に重み(係数)を掛けて足し合わせた線形結合に、シグモイド関数を適用して0〜1の確率値に変換する。 出力確率が閾値(通常0.5)を超えるかどうかでクラスを判定し、多クラス分類に拡張する場合はソフトマックス関数を用いた多項ロジスティック回帰が使われる。 過学習を抑えるため、係数の大きさにペナルティを課すL1正則化(Lasso)やL2正則化(Ridge)と組み合わせて使われることが多い。

ワークフロー

特徴量の線形結合を計算 → シグモイド関数で確率に変換 → 正解ラベルとの誤差(対数損失)を計算 → 勾配降下法等で係数を更新して誤差を最小化 → 学習後は閾値に基づき新しいデータのクラスを判定する。

コード例

scikit-learnでロジスティック回帰を学習する

from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split

X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)
print(model.score(X_test, y_test))

利点

  • 各特徴量の係数がそのまま結果への影響度として解釈しやすく、説明性が高い
  • 学習・推論の計算コストが低く、大規模データにも適用しやすい
  • 出力がクラスに属する確率として得られ、閾値の調整で適合率再現率のバランスを制御しやすい

欠点

  • 特徴量とクラス確率の関係が線形結合をベースにしているため、複雑な非線形関係を捉えにくい
  • クラス間のデータ数が大きく偏っている場合、少数派クラスの予測精度が低下しやすい
  • 特徴量間に強い相関(多重共線性)があると、係数の推定が不安定になることがある

比較

  • SVMSVMがマージン最大化に基づく境界を求めるのに対し、ロジスティック回帰は線形結合をシグモイド関数で確率に変換する

関連用語

SVM機械学習

よくある質問

ロジスティック回帰は回帰と分類のどちら?

名前に「回帰」とあるが、実際に予測するのはクラスに属する確率であり、分類タスクに使われるモデル。

ロジスティック回帰とSVMはどちらを使うべき?

確率としての解釈や係数による説明性を重視するならロジスティック回帰、マージン最大化に基づく汎化性能を重視するならSVMが向く。

参考文献

関連Zenn記事