ラッソ回帰の例: 特徴選択方法の詳細な説明

PHPz
リリース: 2024-01-23 09:27:11
転載
1315 人が閲覧しました

ラッソ回帰の例: 特徴選択方法の詳細な説明

Lasso 回帰は、特徴の選択に使用される線形回帰モデルです。損失関数に L1 正則化項を追加すると、一部の特徴の係数を 0 に設定でき、それにより特徴選択の目的が達成されます。以下では、なげなわ回帰の方法を詳しく説明し、例と対応する Python コードを示します。

ラッソ回帰の方法

ラッソ回帰の損失関数は次のとおりです:

L ( \beta)=\frac{1}{2n}\sum_{i=1}^{n}(y_{i}-\sum_{j=1}^{p}x_{ij}\beta_{j} ) ^{2} \lambda\sum_{j=1}^{p}|\beta_{j}|

線形回帰では、正則化が重要な概念です。このうち、n はサンプル数、p は特徴量、y_{i} は i 番目のサンプルのラベル、x_{ij} は i 番目のサンプルの j 番目の特徴量、\ を表します。 beta_{j} は j 番目の特徴を表します。 \lambda の係数は正則化の強度を表します。 正則化の目的は、モデル内の特性係数にペナルティを課すことによって過剰適合を防止し、モデルの複雑さを制御することです。正則化では、 \lambda の値が大きいほど、モデルによる特徴へのペナルティが強くなります。これにより、一部の特徴の係数が 0 になり、モデル内の特徴の数が減少します。 正則化により、不要な特徴を削減しながら、予測結果に最も影響を与える特徴を保持することを選択できます。これによりモデルが簡素化され、一般化能力が向上します。したがって、正則化

を選択した場合、ラッソ回帰の最適化目標は次のとおりです:

\hat{\beta}=argmin_{\beta} \frac{1}{2n}\sum_{i=1}^{n}(y_{i}-\sum_{j=1}^{p}x_{ij}\beta_{j})^{2} \lambda\sum_{j=1}^{p}|\beta_{j}|

ラッソ回帰の解法は、座標降下法または最小角度回帰法です。 。座標降下法は、一度に 1 つの係数のみを最適化し、収束するまで他の係数を変更しない反復最適化法です。最小角度回帰法は、すべての係数を同時に最適化することで最終モデルを取得する直接解法です。

ラッソ回帰の例とコード

以下では、実際のデータセットを使用して、ラッソ回帰の特徴選択効果を示します。 sklearn の糖尿病データセットを使用します。これには、442 人の糖尿病患者の 10 個の特徴と応答変数が含まれています。私たちの目標は、ラッソ回帰を使用して最も重要な特徴を選択することです。

# 导入数据集和相关库
from sklearn.datasets import load_diabetes
from sklearn.linear_model import Lasso
import numpy as np
import matplotlib.pyplot as plt

# 加载糖尿病数据集
diabetes = load_diabetes()

# 将数据集分成训练集和测试集
X_train = diabetes.data[:300]
y_train = diabetes.target[:300]
X_test = diabetes.data[300:]
y_test = diabetes.target[300:]

# 套索回归模型
lasso = Lasso(alpha=0.1)
lasso.fit(X_train, y_train)

# 打印每个特征的系数
print("lasso.coef_:", lasso.coef_)

# 绘制每个特征的系数
plt.plot(range(diabetes.data.shape[1]), lasso.coef_)
plt.xticks(range(diabetes.data.shape[1]), diabetes.feature_names, rotation=60)
plt.ylabel("Coefficients")
plt.show()
ログイン後にコピー

上記のコードを実行すると、各特徴の係数と描画される係数プロットを取得できます。結果は、ラッソ回帰によって 2 番目の特徴を除くすべての特徴の係数が 0 に圧縮されることを示しています。これは、これらの特徴がモデルにほとんど寄与していないため、削除できることを示しています。さらに、2 番目の特徴の係数は他の特徴の係数よりも大きく、これが最も重要な特徴であることを示しています。

ラッソ回帰は、正則化の強度を調整することで特徴の量と質を制御できる、非常に効果的な特徴選択方法です。実際のアプリケーションでは、相互検証を使用して最適な正則化強度を選択し、モデルのパフォーマンスと特徴選択の効果を向上させることができます。

以上がラッソ回帰の例: 特徴選択方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:163.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート