Lasso regresi ialah model regresi linear yang digunakan untuk pemilihan ciri. Dengan menambahkan istilah regularisasi L1 pada fungsi kehilangan, pekali beberapa ciri boleh ditetapkan kepada 0, dengan itu mencapai tujuan pemilihan ciri. Dalam perkara berikut, saya akan memperincikan kaedah regresi laso dan memberikan contoh dan kod Python yang sepadan.
Fungsi kehilangan regresi laso ialah:
L(beta)=frac{1}{2n}sum_{i=1}^{n} }-sum_{j=1}^{p}x_{ij}beta_{j})^{2}+lambdasum_{j=1}^{p}|beta_{j}|
dalam regresi linear Dalam , konsep penting ialah regularisasi. Antaranya, n mewakili bilangan sampel, p mewakili bilangan ciri, y_{i} mewakili label sampel ke-i, x_{ij} mewakili nilai ciri ke-j bagi sampel ke-i, beta_ {j} mewakili Pekali ciri ke-j, lambda mewakili kekuatan regularisasi. Tujuan penyelarasan adalah untuk mengelakkan pemasangan berlebihan dan mengawal kerumitan model dengan menghukum pekali ciri dalam model. Dalam penyelarasan, semakin besar nilai lambda, semakin kuat model itu menghukum ciri. Ini akan menyebabkan pekali beberapa ciri menjadi 0, sekali gus mengurangkan bilangan ciri dalam model. Melalui penyelarasan, kami boleh memilih untuk mengekalkan ciri yang mempunyai kesan paling besar pada hasil ramalan sambil mengurangkan ciri yang tidak diperlukan. Ini memudahkan model dan meningkatkan keupayaan generalisasinya. Oleh itu, matlamat pengoptimuman regresi laso apabila memilih regularization ialah:
hat{beta}=argmin_{beta}frac{1}{2n}sum_{i=1}^{n}(y_ {i}-sum_ {j=1}^{p}x_{ij}beta_{j})^{2}+lambdasum_{j=1}^{p}|beta_{j}|
lasso Kaedah penyelesaian regresi boleh digunakan kaedah penurunan koordinat atau kaedah regresi sudut minimum. Kaedah penurunan koordinat ialah kaedah pengoptimuman berulang yang hanya mengoptimumkan satu pekali pada satu masa dan mengekalkan pekali lain tidak berubah sehingga penumpuan. Kaedah regresi sudut minimum ialah kaedah penyelesaian langsung yang memperoleh model akhir dengan mengoptimumkan semua pekali secara serentak.
Contoh dan kod Lasso Regression
# 导入数据集和相关库 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()
Menjalankan kod di atas, kita boleh mendapatkan pekali setiap ciri dan plot pekali yang diplot. Keputusan menunjukkan bahawa regresi laso memampatkan pekali semua ciri kecuali ciri kedua kepada 0, yang menunjukkan bahawa ciri ini menyumbang sedikit kepada model dan boleh dihapuskan. Selain itu, pekali ciri kedua adalah lebih besar daripada pekali ciri lain, menunjukkan bahawa ia adalah ciri yang paling penting.
Lasso regresi ialah kaedah pemilihan ciri yang sangat berkesan yang boleh mengawal kuantiti dan kualiti ciri dengan melaraskan kekuatan regularisasi. Dalam aplikasi praktikal, kami boleh menggunakan pengesahan silang untuk memilih kekuatan penyusunan optimum untuk mencapai prestasi model dan kesan pemilihan ciri yang lebih baik.
Atas ialah kandungan terperinci Contoh regresi Lasso: penerangan terperinci kaedah pemilihan ciri. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!