ラッソ回帰は、機械学習で使用される一般的な線形回帰手法であり、無関係な特徴変数を無視して最適なモデルを見つけることを目的としています。この記事では、Python で Lasso 回帰を実装する方法を紹介し、デモンストレーション用の実際のデータセットを提供します。
ラッソ回帰の概要
ラッソ回帰は、目的関数にペナルティ項を追加することによって、通常の最小二乗問題を解決する方法です。このペナルティ項は、L1 正則化 (Lasso ペナルティとも呼ばれます) を使用して実装され、その形式は次のとおりです:
$J(eta)= rac{1}{2n}sum_{i=1}^ {n }(y_i-sum_{j=1}^{p}X_{ij} eta_j)^2 lpha sum_{j=1}^{p}| eta_j|$
ここで、$y$ は応答変数、$X$ は独立変数行列、$eta$ はモデル係数、$n$ はサンプル数、$p$ は特徴の数、$lpha$ はペナルティ パラメーターです。 Lasso 回帰の難しい部分は、ペナルティ項の非凸最適化問題です。
Lasso 回帰を実装する 1 つの方法は、座標降下 (CD) アルゴリズムを通じて解決することです。基本的な考え方は、各反復で 1 つの係数のみが変更されるということです。このようにして、CD アルゴリズムはペナルティ項の非凸最適化問題を巧みに回避します。
Python Lasso 回帰の実装
Python には、Lasso 回帰を簡単に実装できる Scikit-learn などの機械学習ライブラリが多数用意されています。
まず、次のように必要なライブラリをインポートします:
import numpy as np import pandas as pd from sklearn.linear_model import LassoCV from sklearn.datasets import load_boston from sklearn.preprocessing import StandardScaler
次に、ボストンの住宅価格データ セットをロードして正規化します:
boston = load_boston() X = boston.data y = boston.target X = StandardScaler().fit_transform(X)
次に、Scikit-learn を使用します。 LassoCV は Lasso 回帰を実装します。モデルは自動的に相互検証を実行し、最適な $lpha$ 値を選択します。
lasso_reg = LassoCV(alphas=np.logspace(-3, 3, 100), cv=5, max_iter=100000) lasso_reg.fit(X, y)
最後に、取得した最適な $lpha$ 値とモデル係数を出力します:
print('Best alpha:', lasso_reg.alpha_) print('Model coefficients:', lasso_reg.coef_)
完全なコード例:
import numpy as np import pandas as pd from sklearn.linear_model import LassoCV from sklearn.datasets import load_boston from sklearn.preprocessing import StandardScaler boston = load_boston() X = boston.data y = boston.target X = StandardScaler().fit_transform(X) lasso_reg = LassoCV(alphas=np.logspace(-3, 3, 100), cv=5, max_iter=100000) lasso_reg.fit(X, y) print('Best alpha:', lasso_reg.alpha_) print('Model coefficients:', lasso_reg.coef_)
出力結果は次のとおりです:
Best alpha: 0.10000000000000002 Model coefficients: [-0.89521162 1.08556604 0.14359222 0.68736347 -2.04113155 2.67946138 0.01939491 -3.08179223 2.63754058 -2.05806301 -2.05202597 0.89812875 -3.73066641]
これは、Lasso 回帰を通じて、ボストンの住宅価格を予測するための最適なモデルを決定し、応答変数に最も関連する特徴を抽出できることを示しています。
結論
この記事では、Python で Lasso 回帰を実装する方法を紹介し、実際のデータセットを使用してこの方法の適用を示します。ラッソ回帰は非常に便利な線形回帰手法であり、特に高次元データの処理に適しています。実際の問題では、相互検証や標準化などの手法を使用して、モデルのパフォーマンスを最適化し、最も関連性の高い特徴を抽出できます。
以上がPython でのなげなわ回帰の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。