用語
線形回帰
データから平均二乗誤差を最低にするパラメータΘを求めて、直線で回帰すること
$$ y = Θ_0 + Θ_1 \times x $$
コスト関数
損失関数とも呼ばれる。実際のデータと予想される近似式との誤差。この誤差が最低になれば近似式はデータに適合しているといえる。ただし適合しすぎると過学習と呼ばれ、一般化できなくなる。学習に使われているデータに対しては100%の適合となるが、新しいデータが来ると適合が悪くなる。これに対して未学習であればそもそも適合していないので予測に使えない。
目的変数・説明変数
下記の式で目的変数はyであり、説明変数はxである。
$$ y = Θ_0 + Θ_1 \times x $$
目的変数は予測したい変数となる。この値は説明変数に従属する。説明変数が変わると目的変数も一定の法則で変化する。
重み・係数
説明変数が目的変数に対して与える影響の大きさを表す。下記の式ではΘとなる。Θが大きければ該当の説明変数は目的変数に対して大きな影響を与える。
$$ y = Θ_0 + Θ_1 \times x $$
正則化
直線線形回帰に対して正則化項(罰則化項)と呼ばれる項目を追加することで全体のモデルを安定させ、過学習を防ぐ手法。リッジ回帰、ラッソ回帰の違いはこの正則化項の違いである。
スパース
説明変数が多い場合には、目的変数に対して影響が少ない変数を取り除きたい。一般的には係数が0に近いものを取り除くことになる。しかしモデルによってはそもそも構築ができないことがある。このような場合に有効となるのがスパースと呼ばれる手法である。スパースでは係数の計算をすると同時に、変数選択も実施するのでモデル構築に対して重みが0に近い変数の影響がなくなる。
リッジ回帰
リッジ回帰ではL2ノルムと呼ばれる正則化項をモデルに追加する。L2ノルムは重みの二乗の総和である。
リッジ回帰の特徴
- 重みを0に近づけることで過学習を防ぐ
- パラメータの数に対してデータが少ない時に適切な重みづけをする
正則項の働きかた
$$ E_Θ = \sum_{i=1}^{n} (y_i – Θ_0 – Θ_1 \times x ) + η \times \sum_{j=1}^{n} Θ_j $$
今 $$ Θ_0 = 1、Θ_1 = 5 $$で100%適合するデータを考える。この時コスト関数は以下のようになる。
$$ E_Θ = 0 + ( 1 + 25 ) = 26 $$
次に $$ Θ_0 = 1、Θ_1 = 4 $$、損失部分が5となるデータを考える。この時コスト関数は以下のようになる。
$$ E_Θ = 5 + ( 1 + 16 ) = 21 $$
上記により適合が低い$$ Θ_0 = 1、Θ_1 = 4 $$がモデルとして選ばれることになる。これをリッジ回帰と呼ぶ。
リッジ回帰は重みを0へと近づけるように働く。
リッジ回帰
リッジ回帰ではL1ノルムと呼ばれる正則化項をモデルに追加する。L2ノルムは重みの絶対値の総和である。
リッジ回帰の特徴
- ラッソ回帰と同じで重みを0にに近づける
- 過学習を防ぐ
ラッソ回帰と違う点
- 重みを0にすることで影響が小さい変数を取り除くことができる
参考
- 線形回帰・Lasso回帰・Ridge回帰を実装してみよう!
- 罰則付き・正則化回帰モデルについて(About penalized/regularized regression model)
- 線形回帰とリッジ回帰をPythonで比べてみた
- Regularization Part 1: Ridge Regression