본문 바로가기
Machine Learning

선형 회귀모형 (라쏘)

by Nowkeeh Ahc

 라쏘 (Least Absolute Shrinkage and Selection Operator, LASSO) 회귀모형 역시 릿지 회귀모형과 마찬가지로 비용함수에 규제항을 추가하여 모형의 과잉적합을 방지할 수 있는 선형 회귀모형 중 하나이다. 다만 릿지와는 달리 가중치 절댓값의 합을 최소화하는 제약 조건을 사용하며, 이를 L1 규제라고 한다.

 계수의 제곱을 사용하느냐 절대값을 사용하느냐의 차이만 있으므로 릿지 회귀모형과 마찬가지로 가 높아질수록 계수는 0에 가까워져 모형은 단순화되고, 가 작아질수록 반대로 계수의 영향력이 커져 표준 선형 회귀 모형과 같아진다.

[그래프 1] 에 따른 라쏘 모형의 학습 결과 

 라쏘 회귀모형의 중요한 특징은 가중치를 0까지 축소시킬 수 있다는 점인데, 이는 결국 가중치가 0인 독립변수는 모형에서 사용되지 않으므로 결국 모형의 독립변수 수를 줄일 수 있다는 의미이다. 따라서, 라쏘 회귀모형을 사용할 경우 모형을 단순화시켜 분산이 감소됨으로써 과잉적합 될 가능성이 작아지고, 모형의 가장 중요한 특성이 무엇인지 파악할 수 있도록 해준다.

 그러나, 일반적으로 릿지 회귀모형이 라쏘 회귀모형보다 조금 더 좋은 예측을 만든다고 알려져 있다. 하지만, 고려할 독립변수가 매우 많고, 그중 일부분만 중요하다고 판단된다면 라쏘 회귀모형이 더 좋은 선택일 수 있다.

 

연습

 

1) 모형 학습 및 예측

#1. 모듈 및 함수 불러오기
from sklearn.linear_model import Lasso

#2. 모형 학습 및 예측
Lr=Lasso(random_state=0, alpha=0.001, max_iter=10000).fit(X_train, Y_train)
Y_pred = Lr.predict(X_test)

print(‘평가용 데이터 세트에 대한 예측값\n’, Y_pred)

Lasso( ) 함수에 대한 자세한 설명은 아래 URL에서 확인할 수 있다.

https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Lasso.html

 

2) 모형 평가

 

• 결정계수 평가

print(‘학습용 데이터 세트 결정계수: {:.3f}’.format(Lr.score(X_train, Y_train)))
print(‘평가용 데이터 세트 결정계수: {:.3f}’.format(Lr.score(X_test, Y_test)))

 

RMSE 평가

rmse= sqrt(mean_squared_error(Y_test, Y_pred))
print(‘RMSE: {:.3f}’.format(rmse))

 

3) 절편 및 가중치 출력

print(‘사용한 변수의 개수:’, len(Lr.coef_!=0))
print(‘절편: ‘, np.round(Lr.intercept_, 3))
print(‘가중치: ‘, np.round(Lr.coef_, 3))

 


 

This post was written based on what I read and studied the book below.

http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9791195511747

댓글