AIの最新情報・実演を動画でチェック

*当ブログではアフィリエイト広告を利用しています。

データ分析・機械学習

ロジスティック回帰とは?線形回帰との違いを初心者向けに解説【分類問題への第一歩】

ロジスティック回帰のアイキャッチ画像。S字シグモイド曲線と分類問題を表す○×アイコン、ロボットキャラクターのルミィのイラスト
ルミィ

📌 「ロジスティック回帰」って、名前に「回帰」って入っているのに、実は分類問題を解くための手法なんです。

結論をひとことで言うと、こうです。

ロジスティック回帰は「線形回帰の出力を、シグモイド関数で0〜1の確率に押し込めた」分類の手法。「Yes/Noを確率で答えたい」場面で活躍します。

この記事は「機械学習入門」シリーズの1本です。AIの全体像から知りたい方はAIの地図|目的別にAIツールを探す、分析手法を順番に学びたい方はデータ分析・機械学習カテゴリもあわせてご覧ください。

「線形回帰は知ってるけど、ロジスティック回帰って何が違うの?」「シグモイド関数とかオッズ比とか、用語がややこしくて挫折しそう…」そんな悩みを持つ方に向けて、この記事ではロジスティック回帰の仕組みを、線形回帰と比較しながらやさしく解説していきます。私自身、最初にこの手法を学んだとき、「『回帰』なのに『分類』?」と頭が混乱したのを覚えています。同じところでつまずいた方も、安心して読み進めてください。

ルミィ
ルミィ

「回帰」とついてるのに「分類」に使うって、最初はビックリするよね!でも仕組みを知ると、「なるほど!」ってスッキリするはずだよ~

📖 まずは線形回帰の基礎から学びたい方は 線形回帰分析とは?やり方から活用法まで徹底解説 をご覧ください。

🙋 この記事はこんな人に向いています

  • 線形回帰は学んだが、次に何を学べばいいか迷っている人
  • 「Yes/No」「買う/買わない」「合格/不合格」を予測したい人
  • シグモイド関数・オッズ比という用語に苦手意識がある人
  • 精度だけでなく、適合率・再現率・F値の使い分けを知りたい人
  • 決定木やランダムフォレストに進む前の土台を作りたい人

📍 ロジスティック回帰とは|「分類」のための回帰モデル

ロジスティック回帰とは、ある事象が「起こる」か「起こらない」かを確率で予測するための統計手法です。一見「回帰」と名がついていますが、実際は2値分類(Yes/No、0/1)に使われる代表的な機械学習アルゴリズムです。

身近な例だと、こんな場面で使われています。

  • 迷惑メール判定:このメールはスパムか、そうでないか
  • 与信審査:このお客様は貸し倒れリスクが高いか、低いか
  • 医療診断:この検査値から病気の可能性は高いか、低いか
  • マーケティング:このユーザーは商品を買うか、買わないか

このように、「Yes/No」を確率で答えるような問題で大活躍するのがロジスティック回帰です。

💡 ポイント

ロジスティック回帰は「分類」のための手法ですが、出力されるのは0〜1の確率値。たとえば「迷惑メールである確率:0.92」のように予測します。一般的に0.5を閾値として、それ以上なら「Yes」と判定しますが、用途によっては閾値を調整することもあります(後述の適合率・再現率と関係します)。

🔍 線形回帰との違い|「直線」か「S字カーブ」か

ロジスティック回帰を理解する一番の近道は、線形回帰との違いを比較することです。まず全体像を表で押さえてから、個別に見ていきましょう。

観点線形回帰ロジスティック回帰
予測対象連続値(売上、気温など)確率(0〜1)→分類に使う
モデルの形直線S字カーブ(シグモイド関数)
出力の解釈そのまま数値として読める確率→閾値で「Yes/No」に分ける
評価指標R²、RMSE、MAE精度、適合率、再現率、F値、AUC
よく使う場面売上予測、価格予測、需要予測スパム判定、与信審査、医療診断

線形回帰:連続値を予測する「直線」モデル

線形回帰は、身長から体重を予測する広告費から売上を予測するのように、連続的な数値を予測する手法です。グラフにすると、データの傾向を表す1本の直線でモデル化されます。

ロジスティック回帰:確率を予測する「S字カーブ」モデル

一方、ロジスティック回帰では出力を必ず0〜1の範囲に収めたいので、直線ではなくシグモイド関数と呼ばれるS字カーブを使います。これにより、どんな入力値でも確率として解釈できる出力が得られます。

📝 ふたつの共通点

線形回帰とロジスティック回帰は、見た目こそ違いますが、「説明変数の重み付き合計(z = β₀ + β₁x₁ + β₂x₂ + …)」を作るという土台は共通です。違いは、そのzをそのまま使うか(線形回帰)、シグモイド関数で確率に変換するか(ロジスティック回帰)だけ。だから「線形回帰の兄弟」と言われます。

ルミィ
ルミィ

S字カーブと「重み付き合計」、この2つを押さえればロジスティック回帰の骨組みはばっちりだよ!見た目はちょっと違って見えるけど、中身は線形回帰と友達みたいなものなんだよね~

🧮 シグモイド関数のしくみ|ロジスティック回帰の心臓部

シグモイド関数は、ロジスティック回帰の心臓部とも言える重要な関数です。式は少し難しく見えますが、やっていることはシンプルです。

σ(z) = 1 / (1 + e−z)

ここで z = β₀ + β₁x₁ + β₂x₂ + … で、これは線形回帰と同じ形です。つまり、線形回帰の出力をシグモイド関数で「0〜1の確率」に押し込めたのが、ロジスティック回帰なのです。

  • z が大きい(プラス方向) → p は 1 に近づく(=「Yes」の確率が高い)
  • z が小さい(マイナス方向) → p は 0 に近づく(=「No」の確率が高い)
  • z = 0 → p = 0.5(=どちらとも言えない)

手で計算してみる|数値例

式だけ見てもピンとこない人のために、実際の数値で追ってみましょう。

z の値ごとに、シグモイド関数の出力 σ(z) を計算してみる:

z = 0 → σ(0) = 1 / (1 + 1) = 0.500(ちょうど真ん中)
z = 1 → σ(1) ≈ 0.731(Yes寄り)
z = 2 → σ(2) ≈ 0.881(かなりYes)
z = −1 → σ(−1) ≈ 0.269(No寄り)
z = −2 → σ(−2) ≈ 0.119(かなりNo)

→ z がプラスに大きくなるほど確率は1に近づき、マイナスに大きくなるほど0に近づく。けっして1を超えたり、0より下になったりしない(=これが「確率として扱える」ポイント)。

📊 オッズと対数オッズ|ロジスティック回帰の係数の意味

ロジスティック回帰でよく出てくる用語が「オッズ」「オッズ比」です。馬券で聞くオッズと考え方は同じです。

  • オッズ= p / (1 − p)(起こる確率 ÷ 起こらない確率)
  • 対数オッズ= log(p / (1 − p)) = z
  • オッズ比=説明変数が1単位増えたときに、オッズが何倍になるか

たとえば、年齢が1歳上がるごとに「ある病気にかかるオッズ比が1.05」だとすると、1歳ごとにオッズが約5%上がると解釈できます。10歳上がれば、おおよそ 1.0510 ≈ 1.63 倍。「年齢」という変数が、結果にどれくらい効いているかを、こうした形で具体的に説明できるのがロジスティック回帰の強みです。

💡 補足|「確率の比」ではなく「オッズの比」

オッズ比は厳密には「確率が何倍になるか」ではなく「オッズが何倍になるか」です。確率が0.1のときと0.9のときでは、同じ「オッズ1.5倍」でも実際の確率変化は大きく異なります。正確な解釈が必要な場面(医療・金融など)では、確率に直して確認するのが安全です。

🛠 Pythonで実装してみよう|scikit-learnを使った例

ロジスティック回帰はscikit-learnを使えば、数行のコードで実装できます。基本的な流れは線形回帰とほぼ同じです。

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

# データ分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# モデル作成・学習
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)

# 予測(クラス)
y_pred = model.predict(X_test)

# 予測(確率)
y_proba = model.predict_proba(X_test)
predict() はクラス(0か1)を返し、predict_proba() は各クラスの確率を返します。閾値の調整をしたい場面では predict_proba から自分で判定するのが定石です。max_iter は収束しないときに増やすパラメータで、scikit-learnのデフォルトでは警告が出ることがあるので明示しておくと安心です。

scikit-learnの LogisticRegression はデフォルトでL2正則化がかかっています。特徴量のスケールが揃っていないと結果が歪むため、事前に標準化(StandardScaler など)しておくのが基本です。

▶ 関連記事:【完全ガイド】線形回帰分析を学ぶ全ステップ

📈 評価指標|精度・適合率・再現率・F値

分類モデルの評価には、線形回帰のR²とは違う指標を使います。代表的なのが混同行列から計算される以下の指標です。

  • 精度(Accuracy):全データのうち正しく分類できた割合
  • 適合率(Precision):「Yes」と予測したうち、実際にYesだった割合
  • 再現率(Recall):実際にYesのうち、Yesと予測できた割合
  • F値(F1-score):適合率と再現率の調和平均(バランス指標)
  • AUC(ROC曲線の面積):閾値を変えたときの全体の見極め力。クラス不均衡データでも有用
💡 使い分けのコツ

「迷惑メール判定」のように誤検知(False Positive)を減らしたいなら適合率を、「がん検診」のように見逃し(False Negative)を減らしたいなら再現率を重視します。両方バランスよく見たい場合はF値が便利。「Yes:No = 1:99」のような偏ったデータでは、精度ではなくAUCを基準にしましょう。

⚠️ ロジスティック回帰の注意点

  • 線形分離が前提:データが直線で分離できない複雑な構造には弱い
  • 多重共線性に注意:説明変数同士の相関が強いと係数が不安定になる
  • 外れ値の影響:シグモイド関数で緩和されるが、油断は禁物
  • クラス不均衡:「Yes:No = 1:99」のような偏ったデータでは精度が信頼できない。class_weight='balanced' や AUC で評価する工夫が必要
  • 特徴量のスケール:正則化が効くため、事前に標準化しておくと結果が安定する

▶ 関連記事:多重共線性とは?回帰分析でハマる落とし穴を初心者向けに解説

ルミィ
ルミィ

注意点を知っておくと、データを見たとき「あ、これはロジスティック回帰と相性がいいね!」って考えられるようになるよ!

❓ よくある質問(FAQ)

Q1. ロジスティック回帰とロジット回帰は同じものですか?

A. 基本的には同じものを指します。「対数オッズ(logit)」を線形モデルで予測することからロジット回帰、確率を出すロジスティック関数(シグモイド関数)を使うことからロジスティック回帰と呼ばれます。論文・教科書では使い分けがあるものの、実務では同じ手法として扱って問題ありません。

Q2. 多クラス分類にも使えますか?

A. はい、3クラス以上の分類にも拡張できます。代表的な方法は2つで、One-vs-Rest(クラスごとに「自分 vs それ以外」のロジスティック回帰を作る)と、多項ロジスティック回帰(softmax回帰)です。scikit-learnのLogisticRegressionでは multi_class パラメータで指定できます。クラスが増えるほど決定木やランダムフォレストの方が扱いやすい場面も多いので、用途に応じて比較しましょう。

Q3. 線形回帰でなくロジスティック回帰を使うのはなぜですか?

A. 線形回帰でも0/1のラベルを予測しようとすれば数値は出ますが、出力が0未満や1超になることがあり、確率として解釈できません。また、誤差の分布も不適切になります。シグモイド関数で出力を必ず0〜1に収めるロジスティック回帰の方が、分類問題には自然です。

Q4. 決定木やランダムフォレストとどう使い分けるべきですか?

A. 一般的なアプローチは、ロジスティック回帰でベースラインを作り、それから決定木・ランダムフォレスト・XGBoostなどで精度を比較する流れです。ロジスティック回帰は「係数で説明できる」という強みがあり、結果の解釈や報告に向いています。複雑な非線形関係を捉えたい場合は、ツリー系モデルの方が精度が上がりやすいです。

Q5. 適合率と再現率、どちらを優先すべき?

A. 用途次第です。誤検知のコストが高いなら適合率を優先(例:迷惑メール判定で大事なメールがスパム扱いされたら困る)。見逃しのコストが高いなら再現率を優先(例:がん検診で陽性を見逃したら命に関わる)。両方バランスを取りたい場合はF値、閾値全体での性能を見たい場合はAUCを使います。

🚀 まとめ|ロジスティック回帰は分類の入口

ロジスティック回帰は、機械学習の「分類」に最初に触れるのに最適な手法です。仕組みもシンプルで、結果の解釈もしやすく、実務でも幅広く使われています。

  • 「回帰」と名前についているけど、実は分類のための手法
  • シグモイド関数で出力を0〜1の確率に変換
  • 線形回帰と兄弟みたいな関係(重み付き合計の土台は同じ)
  • 評価は精度だけでなく適合率・再現率・F値・AUCも確認
  • ベースラインとして使い、決定木・ランダムフォレストと精度を比べるのが実務の定番

線形回帰とロジスティック回帰、この2つを押さえれば、機械学習の基礎の半分はクリアです。次は決定木ランダムフォレストのような、もっと表現力のあるモデルへ進んでいきましょう。

今すぐ試せる次の一歩:
1. scikit-learnの load_irisload_breast_cancer など、組み込みデータセットで LogisticRegression を動かしてみる
2. 特徴量を StandardScaler で標準化してから学習し、結果の違いを比べる
3. predict_proba で確率を出し、閾値を0.5から変えると適合率・再現率がどう動くかを確認する

▶ 関連記事:決定木とは?仕組み・ジニ不純度・剪定までやさしく解説

次に読むおすすめ記事

ルミィ
ルミィ
AIナビゲーター
ChatGPT・Gemini・Claudeなどの会話AI、画像生成AI、動画生成AI、資料作成AI、AI検索ツールを初心者向けに解説するAIナビゲーター。実際に使ってみた感想や、仕事・学習・発信に役立つAI活用法をわかりやすく紹介しています。
記事URLをコピーしました