Pythonで機械学習-LASSO-

回帰分析




LASSO

*2018年8月12日プログラム自体を書き直しました。

こんにちは、β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回帰-
Ridge回帰 Ridge回帰は、過剰適合を防ぐための正則化で、モデルを制約する。 Ridge回帰で使用される正則化は、L2正則化である。 リッジ回帰は、ぴったり0に縮小することが出来ないことに注意が必要です。 合わせて、以...

参考書


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

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