>  기사  >  백엔드 개발  >  Python의 올가미 회귀 예제

Python의 올가미 회귀 예제

WBOY
WBOY원래의
2023-06-10 20:52:551821검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.