언어/파이썬

머신러닝with파이썬6강(2)_라쏘회귀,엘라스틱넷회귀

디지털랫드 2024. 3. 14. 21:16

라쏘 회귀


이번 시간에는 라쏘 회귀(Lasso regression) 모델에 대해 살펴보도록 하겠습니다.

이번 시간 정리


1. 라쏘 회귀

  • 오버피팅 문제로 규제(regularization)를 적용한 모델
  • 규제 방식: L1 규제 (중요한 피처만 선택하는 특성)
  • L2에 비해 회귀 계수를 급격히 감소시켜 중요하다고 생각하는 피처만 선택하고 나머지는 0으로 만듦

[리마인드] 규제 방식 비교

  • 릿지 회귀 : L2 규제 방식
  • 라쏘 회귀 : L1 규제 방식 (중요한 피처만 선택하는 특성)

 

1) 라쏘 회귀

실행 완료
[17]:
4179.146884323723
실행 완료
[16]:
alpha1agesexbmibps1s2s3s4s5s6
31.293287
-71.449580
267.605153
197.364745
14.613106
-13.884790
-124.649955
106.212968
221.068052
101.202651
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_13/732507049.py in <module>
      1 # 라쏘 회귀 (alpha=2)
----> 2 model = Lasso(alpha=2)
      3 model.fit(X_train, y_train)
      4 pred = model.predict(X_test)
      5 mean_squared_error(y_test, pred)

NameError: name 'Lasso' is not defined
 
실행 완료
[14]:
alpha1alpha0.05alpha2agesexbmibps1s2s3s4s5s6
-14.226237 31.293287 31.293287
-252.596638 -71.449580 -71.449580
478.237599 267.605153 267.605153
374.575253 197.364745 197.364745
-1027.276426 14.613106 14.613106
669.703861 -13.884790 -13.884790
228.639350 -124.649955 -124.649955
209.055969 106.212968 106.212968
787.865881 221.068052 221.068052
51.760485 101.202651 101.202651
 
코드 실행
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_13/967385548.py in <module>
      1 # 라쏘 회귀 (alpha=0.05)
----> 2 model = Lasso(alpha=0.05)
      3 model.fit(X_train, y_train)
      4 pred = model.predict(X_test)
      5 mean_squared_error(y_test, pred)

NameError: name 'Lasso' is not defined
실행 완료
[12]:
alpha1alpha0.05agesexbmibps1s2s3s4s5s6
-14.226237 31.293287
-252.596638 -71.449580
478.237599 267.605153
374.575253 197.364745
-1027.276426 14.613106
669.703861 -13.884790
228.639350 -124.649955
209.055969 106.212968
787.865881 221.068052
51.760485 101.202651

엘라스틱넷 회귀


이번 시간에는 엘라스틱넷(ElasticNet) 회귀 모델에 대해 살펴보도록 하겠습니다.

이번 시간 정리


1. 엘라스틱넷 회귀

  • 오버피팅 문제로 규제(regularization)를 적용한 모델
  • 규제 방식: L2 규제와 L1 규제 (중요한 피처만 선택하는 특성) 결합
  • 시간이 상대적으로 오래 걸림

[리마인드] 규제방식 비교

  • 릿지 회귀 : L2 규제 방식
  • 라쏘 회귀 : L1 규제 방식 (중요한 피처만 선택하는 특성)
  • 엘라스틱넷 회귀 : L2+L1 규제 결합 방식

아래의 코드 실행 버튼을 눌러 실습을 진행해 보세요!

1) 엘라스틱넷 회귀

# 엘라스틱넷 회귀

[19]:
6539.270795233337
 
[18]:
2675.6005929972935