REGRESSION VISUALIZER

線形回帰 (Linear Regression)

勾配降下法でデータに最もフィットする直線を見つける、機械学習の最も基本的なアルゴリズム

INTERACTIVE CHART
勾配降下法
解析解(正規方程式)
データ
学習率 α0.50
1回の学習でどれだけ大きく動くかの設定。0.001だと収束がとても遅く、0.5だと発散してMSEが爆発します。0.05〜0.15くらいが安定するスイートスポットです
初期傾き w₀0
勾配降下法のスタート地点の傾き。大きく外すと等高線図の出発点が谷底から遠くなり、収束に多くのエポックが必要になります
初期切片 b₀0
勾配降下法のスタート地点の切片。大きく外すと等高線図の出発点が谷底から遠くなり、収束に多くのエポックが必要になります
エポック数
0
学習の回数。0だと初期値のまま。50〜100に増やすとピンクの実線が緑の破線に重なっていくのが確認できます
データ数20
広告費5〜50万円に対する売上データ(y ≈ 2.5x + 30 + ノイズ)をランダム生成します
解説

📌
線形回帰とは

線形回帰は、過去のデータをもとにまだ見ぬ数値を予測する手法です。 たとえば「広告費を30万円かけたら、売上はいくらになるか?」という問いに対して、 過去の広告費と売上のデータからŷ = w·x + b という直線を学習し、「売上は約105万円になりそう」と予測します。

ロジスティック回帰が「合格か不合格か」の分類をするのに対し、 線形回帰は「売上は◯◯万円」「気温は◯◯度」のように具体的な数値を予測します。 この「数値を予測する」タスクのことを機械学習では回帰と呼びます。

直線の良さは「予測と実際の誤差がどれだけ小さいか」で測ります。この誤差をコスト関数(MSE)と呼び、 これを最小にする傾き w と切片 b を見つけるのが目標です。

最適な w と b の求め方には2つの方法があります。解析解(正規方程式)は数式で一発で正解を出す方法で、データが少なければこれで十分です。 もう1つが勾配降下法で、少しずつ誤差を減らしながら正解に近づけていく方法です。 データが大量にあるときや、ニューラルネットワークなど複雑なモデルでは勾配降下法が使われます。 このツールでは両方を体験できます。

線形回帰の特徴

  • 📚教師あり学習:「入力と正解のペア」から学ぶタイプの機械学習です。たとえば「広告費→売上」のデータを渡すと、広告費からまだ見ぬ売上を予測できる直線を学習します。上のツールでピンクの直線がこの予測線です。
  • 解析解が存在する:正規方程式を使えば w = (XᵀX)⁻¹Xᵀy と一発で最適解が求まります(上のツールの緑の破線)。ただしデータが巨大になると逆行列の計算がボトルネックになるため、実務では勾配降下法が使われます。
  • 🎯コスト関数が凸関数:MSEのグラフは「お椀型」なので、局所解がなく、どこから始めても谷底にたどり着けるのが線形回帰の嬉しい性質です。上のツールの等高線図で初期値を変えても、最終的に同じ点に収束することを確認してみてください。
  • 📏解釈性が高い:係数 w は「x が1単位増えると y が w だけ増える」という直感的な意味を持ちます。ディープラーニングのような「ブラックボックス」と違い、結果を人間が解釈しやすいのが強みです。
  • ⚠️非線形な関係には弱い:データの関係が曲線的(例:2次関数や指数的な増加)な場合、直線ではうまくフィットできません。その場合は多項式回帰やニューラルネットワークを検討します。

🏢
線形回帰のユースケース

📈 売上予測
Google Analytics や Salesforce で広告費・季節要因から売上を予測。営業計画の基盤として世界中の企業が利用しています
🏠 不動産価格予測
Zillow や SUUMO で面積・築年数・駅距離からマンション価格を推定。重回帰分析(説明変数が複数)の代表的な応用例です
🏥 医療・疫学
体重・血圧・生活習慣から病気リスクを予測。臨床研究で因果関係を分析するための基本ツールとして使われています
🤖 ニューラルネットの基礎
PyTorch・TensorFlow のニューラルネットワークの各ニューロンは「線形回帰 + 活性化関数」で構成されています。深層学習の出発点です

📖
用語解説

傾き w(Weight / Slope)
= x が1増えたとき y がどれだけ増えるか
回帰直線 ŷ = w·x + b の傾きです。ツール右側の「GD 傾き w」に表示されています。 たとえば w = 2.5 なら「広告費を1万円増やすと売上が2.5万円増える」という意味です。
例: w = 2.5 → 広告費10万円で売上 2.5×10+b 万円
1w
切片 b(Bias / Intercept)
= x = 0 のときの y の値
回帰直線がy軸と交わる点です。ツール右側の「GD 切片 b」に表示されています。 広告費0円でも売上がゼロにはならない場合、b がその「ベースラインの売上」を表します。
bx=0
平均二乗誤差 MSE(Mean Squared Error)
= 予測がどれだけ外れているかの指標
各データ点と直線の距離(オレンジの破線)を二乗して平均したものです。 MSE = (1/n) Σ(yᵢ − ŷᵢ)²。値が小さいほど予測が正確で、0なら全点が直線上にあることを意味します。 勾配降下法はこのMSEを最小化するように w と b を更新していきます。
誤差²
決定係数 R²(R-squared)
= モデルがデータをどれだけ説明できるか
R² = 1 − (残差平方和 / 全変動平方和)。1に近いほどフィットが良い。 R² = 0.85 なら「x で y の変動の85%を説明できる」という意味です。 ツール右側の「GD R²」に表示されています。
R²≈1ほぼ完璧R²≈0説明力なし
学習率 α(Learning Rate)
= 1ステップでどれだけパラメータを動かすか
勾配降下法の「歩幅」を決めるハイパーパラメータです。大きすぎると谷底を飛び越えて発散し、小さすぎると収束が遅い。 ツールの「学習率 α」スライダーで、0.5にするとMSEが爆発する様子を確認できます。
小さい α大きい α
エポック(Epoch)
= パラメータの更新回数
勾配降下法でパラメータ (w, b) を1回更新することを1エポックと呼びます。 ツールの「エポック数」スライダーで回数を変えると、 学習曲線(左下のグラフ)でMSEの減少過程を確認できます。
エポック →MSE
勾配(Gradient)
= コスト関数の傾き
コスト関数を各パラメータで偏微分した値です。∂MSE/∂w と ∂MSE/∂b のペアがベクトルとして「どちらに進めばMSEが下がるか」を教えてくれます。 更新式: w ← w − α · ∂MSE/∂w。マイナス方向に進むことで「下り坂」を歩きます。
−∇MSE
等高線図(Contour Plot)
= パラメータ空間でのコスト関数の地形
横軸が傾き w、縦軸が切片 b、色がMSEの大きさを表す「地図」です。 色が薄いほどMSEが小さい(谷底)。 ツール下部の右側のグラフが等高線図で、ピンクの軌跡が勾配降下法の経路、緑の点が最適解です。

🪜
勾配降下法による線形回帰の学習の流れ

8社の広告費と売上のデータから、y = w·x + b の最適な w と b を勾配降下法で求める流れを見ていきましょう。

1
準備:データとパラメータの初期値を決める
まず学習に使うデータを用意します。1つのデータは (広告費, 売上) のペアです。
(10, 52), (15, 68), (20, 75), (25, 90), (30, 102), (35, 110), (40, 125), (45, 138)
例えば (10, 52) は「広告費10万円のとき売上52万円」という意味です。

次に、直線の傾き(w)と切片(b)の初期値を決めます。 ここでは w = 0, b = 0(まっさらな状態)からスタートします。 ただし実際には、データの傾向を見てある程度妥当な初期値を設定するのが望ましいです。 最適解に近い初期値を選べば学習回数(エポック数)が少なく済み、効率よく収束します。
初期: ŷ = 0
2
学習の開始(勾配を計算する)
各データ点で「予測値と実際の値の差(誤差)」を計算し、その誤差からコスト関数の勾配を求めます:
∂MSE/∂w = (2/n) Σ(ŷᵢ − yᵢ)·xᵢ ∂MSE/∂b = (2/n) Σ(ŷᵢ − yᵢ)
初回(w=0, b=0): ŷ₁ = 0×10+0 = 0、誤差 = 0−52 = −52。すべてのデータ点でこの計算を行い、勾配を得ます。
3
パラメータを更新する
勾配の逆方向にパラメータを動かします(坂を下る):
w ← w − α · ∂MSE/∂w b ← b − α · ∂MSE/∂b
α = 0.1 とすると、1エポック後にはすでに w ≈ 1.5, b ≈ 15 くらいになり、直線がデータに近づき始めます。
start最適解
🔁
ステップ2→3が1エポック(1回の学習)です。 これをエポック数の回数だけ繰り返す(ループする)ことで、 直線が少しずつデータにフィットしていきます。
4
結果:線形回帰の直線が完成する
50エポック繰り返した結果:
w ≈ 2.45(解析解: 2.47)b ≈ 28.9(解析解: 29.2)
学習によって得られた直線 ŷ = 2.45x + 29 が、データ全体の傾向を表す線形回帰の回帰直線になります。
つまり「広告費を1万円増やすと売上が約2.45万円増える」と予測できます。 R² ≈ 0.99 なので、広告費で売上の変動の99%を説明できている、非常に良いフィットです。
ŷ = 2.45x + 29

⚖️
解析解 vs 勾配降下法

解析解(正規方程式)
  • 一発で最適解が求まる
  • ハイパーパラメータ不要
  • 逆行列の計算が必要(O(n³))
  • データが大量だと計算コスト大
  • メモリにデータ全部を載せる必要あり
勾配降下法
  • 反復的に最適解に近づく
  • 学習率・エポック数の調整が必要
  • 各ステップは O(n) で軽い
  • 大規模データでもスケール可能
  • ミニバッチで少量ずつ処理可能
実務での選択基準:データが1万件以下なら正規方程式で十分。 それ以上(100万件〜)の場合や、モデルが線形回帰より複雑(ニューラルネットワークなど)になる場合は勾配降下法一択です。 scikit-learn の LinearRegression は正規方程式、SGDRegressor は勾配降下法を使っています。

💡
たとえ話で理解する:勾配降下法

勾配降下法は、予測の誤差(コスト)を最小にするパラメータ w と b を見つけるためのアルゴリズムです。 「霧の中で山の谷底を探す」ことに似ています。

あなたは霧の中で山の斜面に立っています。周りが見えないので、谷底がどこにあるかわかりません。 でも、足元の傾き(勾配)だけは感じ取れます。 「足元が左に傾いている → 左に進む」「右に傾いている → 右に進む」を繰り返せば、いつか谷底にたどり着きます。

傾き = 勾配
コスト関数の微分値
一歩の大きさ = 学習率
α のスライダーで調整
谷底 = 最適解
MSEが最小になる点

上のツールの等高線図がまさにこの「山」です。色が薄い場所が谷底、ピンクの軌跡があなたの歩いた道。学習率を大きくしすぎると歩幅が大きすぎて谷底を飛び越えてしまい、小さすぎると谷底にたどり着くまでに時間がかかります。試してみてください。

💡
たとえ話で理解する:解析解

解析解(正規方程式)は、数式を使って一発で最適な答えを出す方法です。 「地図を見て谷底の座標を計算する」ことに似ています。

霧なんて関係ありません。山全体の地図(=データ全体)を手に入れて、数学の公式で「谷底はここ」と一発で求めます。 歩き回る必要がないので、学習率もエポック数も不要です。

地図 = データ全体
すべてのデータを一度に使う
公式 = 正規方程式
w = (XᵀX)⁻¹Xᵀy
一発で谷底 = 最適解
繰り返し不要

ただし、地図を作るのにも計算コストがかかります。データが大量(100万件〜)になると地図を作ること自体が大変になるため、 そういう場合は霧の中を歩く方法(勾配降下法)のほうが現実的です。

関連コンテンツ