Regression Lasso ialah kaedah regresi linear popular yang digunakan dalam pembelajaran mesin, yang bertujuan untuk mencari model yang paling sesuai dengan mengabaikan pembolehubah ciri yang tidak berkaitan. Artikel ini akan memperkenalkan cara melaksanakan regresi Lasso dalam Python dan menyediakan set data sebenar untuk demonstrasi.
Pengenalan kepada Regresi Lasso
Regresi Lasso ialah kaedah untuk menyelesaikan masalah kuasa dua terkecil biasa dengan menambahkan istilah penalti pada fungsi objektif. Istilah penalti ini dilaksanakan menggunakan regularisasi L1 (juga dipanggil penalti Lasso), dan bentuknya adalah seperti berikut:
$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|$
di mana , $y$ berada pembolehubah bergerak balas, $X$ ialah matriks pembolehubah bebas, $eta$ ialah pekali model, $n$ ialah bilangan sampel, $p$ ialah bilangan ciri, dan $lpha$ ialah parameter penalti. Bahagian sukar regresi Lasso ialah masalah pengoptimuman bukan cembung bagi tempoh penalti.
Salah satu cara untuk melaksanakan regresi Lasso ialah menyelesaikannya melalui algoritma turunan koordinat (CD). Idea asasnya ialah dalam setiap lelaran, hanya satu pekali diubah. Dengan cara ini, algoritma CD dengan bijak memintas masalah pengoptimuman bukan cembung bagi tempoh penalti.
Pelaksanaan regresi Python Lasso
Python menyediakan banyak perpustakaan pembelajaran mesin, seperti Scikit-learn, yang boleh melaksanakan regresi Lasso dengan mudah.
Mula-mula, import perpustakaan yang diperlukan seperti berikut:
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
Seterusnya, kami memuatkan set data harga rumah Boston dan menormalkannya:
boston = load_boston() X = boston.data y = boston.target X = StandardScaler().fit_transform(X)
Kemudian, kami menggunakan Scikit-learn LassoCV dalam melaksanakan regresi Lasso. Model secara automatik melakukan pengesahan silang dan memilih nilai $lpha$ yang optimum.
lasso_reg = LassoCV(alphas=np.logspace(-3, 3, 100), cv=5, max_iter=100000) lasso_reg.fit(X, y)
Akhir sekali, kami mengeluarkan nilai $lpha$ optimum dan pekali model yang terhasil:
print('Best alpha:', lasso_reg.alpha_) print('Model coefficients:', lasso_reg.coef_)
Contoh kod penuh:
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_)
Hasil output adalah seperti berikut:
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]
Ini menunjukkan bahawa melalui regresi Lasso, kita boleh menentukan model terbaik untuk meramalkan harga rumah Boston dan mengekstrak ciri yang paling berkaitan dengan pembolehubah tindak balas.
Kesimpulan
Artikel ini memperkenalkan cara melaksanakan regresi Lasso dalam Python dan menunjukkan penggunaan kaedah ini melalui set data sebenar. Regresi Lasso ialah teknik regresi linear yang sangat berguna, terutamanya sesuai untuk memproses data berdimensi tinggi. Dalam masalah sebenar, teknik seperti pengesahan silang dan penyeragaman boleh digunakan untuk mengoptimumkan prestasi model dan mengekstrak ciri yang paling relevan.
Atas ialah kandungan terperinci Contoh regresi Lasso dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!