Pythonではじめる機械学習

2.3.3 線形モデル

2.3.3.2 線形回帰(通常最小二乗法)

f:id:bitop:20190823071843p:plain
結果
f:id:bitop:20190823071926p:plain

ボストンの住宅価格データセットにも適用
f:id:bitop:20190823073122p:plain
切片は1つだけだが、傾きは特徴量104と同じだけ生成される
f:id:bitop:20190823072354p:plain

2.3.3.3 リッジ回帰

同じ線形回帰であるが過剰適合を防ぐためL2正規化をかけてある。
データセットは同じくボストンの住宅価格データセット
f:id:bitop:20190823075343p:plain
結果  
f:id:bitop:20190823075435p:plain ここからalpha(正則化強度 大きくするとより強い制約がかかる)を調整する。
デフォルトは1.0、alpha=10にする
f:id:bitop:20190823084231p:plain
結果、よくなっていない
f:id:bitop:20190823084405p:plain
alpha=0.1で試みてみる
f:id:bitop:20190823084519p:plain
結果、訓練・テストとも良くなっている
f:id:bitop:20190823084558p:plain

2.3.3.4 Lasso(ラサ)

リッジ回帰と異なりL1正則に制約を掛ける
f:id:bitop:20190823092159p:plain
結果、ほとんどの係数が0になっている。スコアもよくない。
f:id:bitop:20190823092301p:plain
alphaを0.01に変更
f:id:bitop:20190823095306p:plain
結果、良くなっている。使っている係数も33に増えた
f:id:bitop:20190823095345p:plain
ではもっとalphaを小さくすればOK?
f:id:bitop:20190823095541p:plain
結果、やりすぎはよくない f:id:bitop:20190823095637p:plain