1. 線形重回帰とは?
線形重回帰(Multiple Linear Regression)とは、
「複数のデータを使って1つの値を予測する方法」です。
🔹 具体例
- レストランの満足度 を 「料理の美味しさ」と「接客の良さ」 から予測する
- 家の価格 を 「広さ」「駅からの距離」「築年数」 から予測する
- テストの点数 を 「勉強時間」「睡眠時間」「授業の出席回数」 から予測する
つまり、「1つの要因(単回帰)だけでなく、複数の要因を考慮して予測する」方法が 線形重回帰 です。
2. 予測の式
単回帰では、1つの変数 x
を使って y
を求めました:
y=ax+by = ax + b
(例:売上 = 4 × 広告費 + 1000)
重回帰では 複数の変数 を使って y
を求めます:
y=β0x0+β1×1+β2×2+…+ϵy = β_0 x_0 + β_1 x_1 + β_2 x_2 + … + ϵ
(例:満足度 = 3 × 料理の美味しさ + 2 × 接客の良さ + ϵ)
🔹 それぞれの意味
記号 | 意味 |
---|---|
y |
予測したいデータ(例:満足度、売上、価格) |
x₀, x₁, x₂ |
説明変数(入力データ) |
β₀, β₁, β₂ |
各 x にかかる係数(どのくらい影響するか) |
ϵ |
誤差(完全には予測できないズレ) |
💡 fit()
を使うと、モデルが 最も誤差が小さくなるように β
の値を決定 します。
3. Pythonで線形重回帰を実装する
scikit-learn
を使えば、簡単に重回帰を実装できます!
4. コードの詳しい解説
① データの作成
n_samples=100
→ 100個のデータを作成n_features=10
→ 10個の特徴量(説明変数)を持つデータn_informative=3
→ 10個のうち3つが実際に予測に関係するnoise=5.0
→ ノイズ(誤差)を加えて現実的なデータにrandom_state=42
→ 乱数の固定(毎回同じデータを作るため)
💡 「関係ある特徴量」と「関係ない特徴量」が混ざったデータを作成 しています。
② データを訓練用とテスト用に分割
- 訓練データ(train_X, train_y) → モデルを学習するためのデータ
- テストデータ(test_X, test_y) → モデルの精度を確認するためのデータ
通常、8:2 や 7:3 の割合 で分けます。
③ モデルを作成
model
という変数に 線形回帰モデル を作成します。
④ モデルを学習
データのパターンを学習して β₀, β₁, β₂
などの係数を決定 します。
⑤ モデルの精度を確認
model.score()
を使うと、決定係数 R² が計算されます。
📌 R² の意味
R² の値 | 予測の精度 |
---|---|
1.0 | 完璧な予測 |
0.8 | 80%の精度で予測できる |
0.5 | 50%の精度(微妙) |
0.0 | 役に立たない |
負の値 | 予測がひどすぎる |
例えば、R² = 0.85
なら「85%の精度で予測できている」ということです。
6. 予測をしてみる
モデルが学習できたので、新しいデータに対して predict()
で予測できます。
このように、複数のデータ(特徴量)をもとに予測ができるようになる のが 線形重回帰の強み です!
7. まとめ
📌 線形重回帰のポイント
✅ 「1つの出力を、複数のデータから予測する」方法
✅ y = β₀x₀ + β₁x₁ + β₂x₂ + ... + ϵ
の形で表される
✅ Python の sklearn
で LinearRegression()
を使うと簡単に実装できる!
✅ モデルを fit()
で学習 → predict()
で予測 → score()
で精度を確認!
💡 「単回帰だけじゃなく、複数の要因を考慮したい!」というときに重回帰を使う!
データ分析のスキルとして、ぜひ活用してみてください!🚀
コメントを残す