新卒1年目の技術に関する備忘録

自主学習で困ったこと、学んだことをまとめています

回帰のモデル

LinearRegressionでの、学習セットに対するテストセットの精度が低い場合

train prediction : 0.92

test  prediction : 0.63

モデルの過学習であるため、正則化を行う必要がある。

正則化とはざっくり言うと、係数を0に近づけることで学習精度を低くする代わりに、テスト精度をあげて過学習を防ぐために行われる。

 

LinearRegression → Ridgeを使う

Ridgeのalphaの値を大きくすることでより多くの係数が0に近づく。逆にalpha値を小さくするとLinearRegressionに近づく。

Ridgeの正則化にはL2正則化が使われている。

 

f:id:logz-developers:20181219202359p:plain

ただし、この図のようにデータセットの数が増えると線形回帰とリッジ回帰の精度は変わらなくなる→正則化はあまり重要ではなくなる。

 

Ridge回帰に変わるものとしてLasso回帰がある

Lasso回帰はいくつかの係数が完全に0になる回帰である。

Lasso回帰の正則化にはL1正則化が使われている。

alpha値を大きくすると、多くの係数が0になり、使われる特徴量が減る。

alpha値を小さくすると、使われる特徴量が増え、より線形回帰のモデルに近づく。

 

RidgeとLassoの間のElasticNetは実用上最良であるが、L1正則化とL2正則化のパラメータを指定する必要があるため難易度が高い。

 

Pythonではじめる機械学習~scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎~から