Pythonで機械学習-LASSO-

統計学




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回帰-
...

参考書


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

タイトルとURLをコピーしました