LASSO
こんにちは、βshortです。
今回は、機械学習の回帰分析問題のLASSOについて扱います。
ここでは、Pythonで、LASSO回帰をしていきます。
それでは、プログラムしていきましょう。
Lassoでは、正則化に、L1正則化を使用する。
いくつかの係数が0になる正則化される
ぴったり0にすることができる。
合わせて、以下のページもご覧ください。
スパースモデリング-入門メモ-
...
プログラム
係数を表示するプログラムです。
データには、ボストンデータを使います。
Xの変数は、13個の重回帰式になります。
lassoを実行していきましょう。
import pandas as pd import matplotlib.pyplot as plt import numpy as np from sklearn.linear_model import Lasso from sklearn.datasets import load_boston # サンプルデータを用意 dataset = load_boston() # 説明変数データを取得 data_x = pd.DataFrame(dataset.data, columns=dataset.feature_names) #被説明変数データを取得 data_y = pd.DataFrame(dataset.target, columns=['target']) #データのサイズ print("説明変数行列のサイズ:{}".format(data_x.shape[1])) print("被説明変数のサイズ:{}".format(data_y.shape)) print("説明変数の変数の個数:{}".format(data_x.shape[1])) #変数の個数 coef_n = data_x.shape[1] #小数以下n decimal_p = 2 #lasso回帰の偏係数 lasso = Lasso().fit(data_x, data_y) print(lasso.coef_.round(decimal_p))
結果
[-0.06 0.05 -0. 0. -0. 0.95 0.02 -0.67 0.26 -0.02 -0.72 0.01
-0.76]
ridgeについて
Pythonで機械学習-Ridge回帰-
...