線形回帰⑦ (LASSO回帰モデルの評価)

前回構築したLASSO回帰モデルの評価を行います。

残差プロット

予測値と実測値の残差プロットを表示します。

以前に定義したresidual_plot関数を使います。

[Google Colaboratory]

1
residual_plot(y_train_pred, y_train, y_test_pred, y_test)

[実行結果]

重回帰と比較し、残差の分布に違いはないようです。

精度評価スコア

次に精度評価スコアを算出します。

以前に定義したget_eval_score関数を使います。

[Google Colaboratory]

1
2
3
4
print("訓練データスコア")
get_eval_score(y_train,y_train_pred)
print("テストデータスコア")
get_eval_score(y_test,y_test_pred)

[実行結果]

重回帰と比べて、やや低いスコアとなっていまいました。

重み

説明変数の重みを表示します。

[Google Colaboratory]

1
2
3
for i, (col, coef) in enumerate(zip(boston.feature_names, lasso.coef_)):
print(f"w{i}({col}) = {coef}")
print(f"b = {lasso.intercept_[0]}")

[実行結果]

RMやLSTATのような重要な変数の重みは残っていますが、多くの説明変数の重みが0になりました。

このようにLASSO回帰では各説明変数の重みを0に近づけ、特定の説明変数の重みを0にします。

次回は、LASSO回帰のハイパーパラメータを変更してみます。