1. ロジスティック回帰とは?
「ロジスティック回帰」という名前を聞くと、「回帰?」と思うかもしれませんが、実は分類のための手法 です。
例えば、以下のような 「はい / いいえ」「A / B」 で分ける二択の分類問題 に使われます。
- スパムメールか?(Yes / No)
- 猫か犬か?(猫 / 犬)
- 試験に合格するか?(合格 / 不合格)
2. ロジスティック回帰の仕組み
ロジスティック回帰は、データの間に境界線(直線)を引いて分類 します。
🔹 直線で分けるイメージ
例えば、以下のようなデータがあるとします。
この 「——————–」 の部分が、ロジスティック回帰によって学習される 分類のための境界線 です。
❓ なぜ「回帰」と呼ばれるの?
→ 「データを数式で表し、確率を予測する」 という点で回帰分析の要素を持つためです。
ロジスティック回帰の数式は、次のようになります。
P(y=1)=11+e−(ax+b)P(y=1) = \frac{1}{1 + e^{-(ax + b)}}
P(y=1)
は「あるデータが 1(合格・スパム・犬 など)に分類される確率」ax + b
は データの特徴に基づいたスコアe
は自然対数の底(2.718…)
この数式を使って、データがどちらのクラスに分類される確率を計算し、境界線を決める という仕組みです。
3. Pythonでロジスティック回帰を実装
では、実際に Python でロジスティック回帰を動かしてみましょう!
今回は scikit-learn
を使います。
✅ 3-1. 必要なライブラリをインストール
まず、ライブラリをインストールします。
✅ 3-2. データを作成
Pythonの make_classification()
を使って、ロジスティック回帰用のデータを作ります。
💡 ポイント
make_classification()
→ 分類用のデータを自動生成train_test_split()
→ データを訓練用とテスト用に分けるn_features=2
→ X軸・Y軸の2次元データrandom_state=42
→ 毎回同じデータを作るための設定
✅ 3-3. ロジスティック回帰モデルを作成
次に、ロジスティック回帰のモデルを作り、学習させます。
💡 ここで何をしている?
LogisticRegression()
→ ロジスティック回帰のモデルを作成fit()
→ 訓練データでモデルを学習score()
→ テストデータでモデルの精度(正解率)を評価
✅ 出力例
→ 約96%の正確さで分類できた!
4. 分類の境界線を可視化
モデルがどのようにデータを分類したのか グラフで確認 してみましょう。
✅ グラフの説明
- データ点(赤・青)がプロットされる
- ロジスティック回帰の分類境界線(直線)が描画される
- 各クラスのエリアが色分けされる
これで、「データがどのように分類されているのか?」 が視覚的にわかります!
5. まとめ
✅ ロジスティック回帰のポイント
✔ 2つのグループに分類する手法(スパムメール判定、合格/不合格 など)
✔ 「回帰」という名前だけど、分類のためのモデル
✔ 直線の決定境界を学習し、データを分類する
✔ Python(scikit-learn
)を使えば簡単に実装できる!
🔥 次のステップ
ロジスティック回帰を理解したら、次は以下の応用を試してみましょう!
✅ 多クラス分類(3種類以上の分類) → LogisticRegression(multi_class='multinomial')
✅ 非線形データに対応(カーネルSVMなど)
✅ 特徴量を増やしてモデルの精度を向上
この記事が ロジスティック回帰を学ぶ手助け になれば嬉しいです!🚀
コメントを残す