Lasso 회귀는 기계 학습에서 널리 사용되는 선형 회귀 방법으로, 관련 없는 특징 변수를 무시하여 가장 적합한 모델을 찾는 것을 목표로 합니다. 이 기사에서는 Python에서 Lasso 회귀를 구현하는 방법을 소개하고 데모용 실제 데이터 세트를 제공합니다.
Lasso 회귀 소개
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 회귀를 구현하는 한 가지 방법은 좌표 하강(CD) 알고리즘을 통해 해결하는 것입니다. 기본 아이디어는 각 반복마다 하나의 계수만 변경된다는 것입니다. 이러한 방식으로 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 회귀를 통해 다음의 정확도를 결정할 수 있음을 보여줍니다. Boston 주택 가격 예측에 가장 적합한 모델이며 응답 변수와 가장 관련성이 높은 특징을 추출합니다.
결론
이 글에서는 Python에서 Lasso 회귀를 구현하는 방법을 소개하고 실제 데이터 세트를 통해 이 방법을 적용하는 방법을 보여줍니다. Lasso 회귀는 매우 유용한 선형 회귀 기술로, 특히 고차원 데이터 처리에 적합합니다. 실제 문제에서는 교차 검증 및 표준화와 같은 기술을 사용하여 모델 성능을 최적화하고 가장 관련성이 높은 특징을 추출할 수 있습니다.
위 내용은 Python의 올가미 회귀 예제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!