ロジスティック回帰とは?
ロジスティック回帰は、機械学習のアルゴリズムの一つです。複数の要因から、ある事象が起こる確率を予測するために使われます。特に、「はい/いいえ」や「合格/不合格」のように、結果が2つのカテゴリーのどちらかになる問題を解くのが得意です。
例えば、以下のような予測に使われます。
- ある顧客が特定の商品を購入するか、しないか
- 受信したメールがスパムか、スパムでないか
- 検査結果から、ある病気が陽性か、陰性か
名前に「回帰」とついていますが、数値を予測する「回帰問題」とは異なり、実際にはデータを分類するための「分類問題」で広く利用される手法である点に注意が必要です。
線形回帰との違い
ロジスティック回帰とよく比較される手法に「線形回帰」があります。どちらもデータから予測を行いますが、目的と出力の形式が異なります。
線形回帰は、家の価格やテストの点数のように、連続的な数値を予測するのに使われます。 一方、ロジスティック回帰は、結果が0か1、YESかNOといったカテゴリに分類される事象の確率を予測します。
この違いを生み出しているのが「シグモイド関数」です。線形回帰の予測値はマイナスになったり1を超えたりしますが、ロジスティック回帰ではシグモイド関数を通すことで、出力を必ず0から1の間の「確率」として表現することができます。
項目 | ロジスティック回帰 | 線形回帰 |
---|---|---|
目的 | 分類(ある事象が起こる確率の予測) | 回帰(連続的な数値の予測) |
出力 | 0から1の間の確率値 | 実数値(マイナスや1を超える値も含む) |
主な用途 | メールのスパム判定、疾患の予測、顧客の離反予測など | 不動産価格の予測、売上予測、株価予測など |
使われる関数 | シグモイド関数(ロジスティック関数) | 線形関数(直線) |
Python (scikit-learn)での実装例
Pythonの機械学習ライブラリであるscikit-learnを使うと、ロジスティック回帰を簡単に実装できます。 以下は、アヤメの品種を分類する簡単なコード例です。
# 必要なライブラリをインポート
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
# 1. データの準備 (アヤメのデータセットをロード)
iris = load_iris()
# 簡単にするため、2つの特徴量と2つのクラスのみ使用
X = iris.data[:100, :2] # 特徴量: がく片の長さと幅
y = iris.target[:100] # 目的変数: 品種 (0または1)
# 2. データを学習用とテスト用に分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 3. モデルの作成と学習
# LogisticRegressionクラスのインスタンスを作成
model = LogisticRegression()
# 学習用データを使ってモデルを学習させる
model.fit(X_train, y_train)
# 4. モデルの評価
# テストデータを使って予測を行う
y_pred = model.predict(X_test)
# 正解率を計算してモデルの性能を評価する
accuracy = accuracy_score(y_test, y_pred)
print(f"モデルの正解率: {accuracy:.2f}")
# 5. 新しいデータで予測
# 例: がく片の長さが5.0cm、幅が3.5cmのアヤメを予測
new_data = [[5.0, 3.5]]
prediction = model.predict(new_data)
print(f"新しいデータの予測結果: 品種 {prediction}")
ロジスティック回帰の活用事例
ロジスティック回帰は、そのシンプルさと解釈のしやすさから、ビジネスから医療まで幅広い分野で活用されています。
- マーケティング: 顧客の年齢、性別、過去の購入履歴などから、特定のキャンペーンに反応して商品を購入する確率を予測します。これにより、効果的なターゲット広告の配信が可能になります。
- 金融: 顧客の収入、借入額、信用履歴などを用いて、ローンの返済が滞るリスクを予測するクレジットスコアリングモデルや、クレジットカードの不正利用検知などに利用されています。
- 医療: 患者の年齢、体重、血圧、生活習慣などのデータから、特定の病気を発症するリスクを予測するために使われます。 これにより、早期の予防や介入が可能になります。
- 製造業: 製品の検査データから、その製品が不良品である確率を予測し、品質管理の向上に役立てられています。
まとめ
ロジスティック回帰は、「回帰」という名前ですが、実際には「分類」問題を解くための強力な手法です。ある事象が起こる確率を0から1の間の値で予測し、「はい/いいえ」で答えられる多くの問題に適用できます。
仕組みが比較的シンプルで結果の解釈がしやすいため、機械学習の初学者にとって理解しやすく、実務でも広く使われている基本的なアルゴリズムの一つです。