[머신러닝] 7. 지도학습(회귀): 엘라스틱넷 회귀

PurinYun·2023년 11월 23일
0

AIffel

목록 보기
30/75

엘라스틱넷 회귀

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

# 엘라스틱넷 회귀
from sklearn.linear_model import ElasticNet
model = ElasticNet(alpha=1)
model.fit(X_train, y_train)
pred = model.predict(X_test)
mean_squared_error(y_test, pred)


# 엘라스틱넷 회귀
from sklearn.linear_model import ElasticNet
model = ElasticNet(alpha=0.0001, l1_ratio=0.6)
model.fit(X_train, y_train)
pred = model.predict(X_test)
mean_squared_error(y_test, pred)

RMSE (Root Mean Squared Error)
:예측 값과 실제 값 사이의 오차를 측정하는 지표입니다.
RMSE값이 낮을수록 예측 모델이 더 정확하다고 할 수 있습니다.
RMSE를 계산하기 위해서는 예측 값과 실제 값의 차이를 제곱하여 평균한 후에 제곱근을 취합니다. 이러한 방식으로 오차를 나타내므로, 값이 커질수록 예측의 오차가 더 크다는 것을 의미합니다. 다양한 회귀 모델과 예측 성능을 비교할 때 RMSE를 사용하면 좋습니다.

엘라스틱회귀에서 RandomizedSearchCV 를 활용하여 다음 두 하이퍼파라미터 중 최적을 찾고,
'alpha':[0.0001, 0.001, 0.01, 0.1, 1]
'l1_ratio':[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]
최적의 하이퍼파라미터로 모델을 돌려 rmse를 측정해주세요.

'RandomizedSearchCV'를 활용하여 최적의 하이퍼파라미터를 찾고, 해당 하이퍼파라미터로 모델을 만든 후 'rmse' 값을 측정하는 방법을 알려드리겠습니다.

먼저, 'RandomizedSearchCV'는 랜덤한 하이퍼파라미터 조합을 시도하면서 최적의 조합을 찾는 기법입니다. 주어진 'alpha'와 'l1_ratio' 값들을 사용하여 최적의 하이퍼파라미터를 찾을 수 있습니다.

다음은 이를 위한 단계별 설명입니다.
1. 우선, 사용하려는 머신러닝 모델과 하이퍼파라미터의 범위를 정의해야 합니다. 주어진 문제에 따르면 'alpha'는 [0.0001, 0.001, 0.01, 0.1, 1] 값들 중에서, 'l1_ratio'는 [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9] 값들 중에서 선택하면 됩니다.

  1. 'RandomizedSearchCV' 객체를 생성하고, 모델과 위에서 정의한 하이퍼파라미터 범위를 설정합니다. 랜덤한 조합을 시도할 횟수는 'n_iter' 매개변수를 통해 지정할 수 있습니다.

  2. 'fit' 메서드를 호출하여 학습 데이터에 대한 최적의 하이퍼파라미터를 찾습니다. 이때, 'RandomizedSearchCV'는 지정된 범위 내에서 랜덤하게 하이퍼파라미터 조합을 시도하며, 교차 검증을 통해 모델의 성능을 평가합니다.

  3. 최적의 하이퍼파라미터로 모델을 만들고, 'rmse' 값을 측정합니다. 'rmse'는 엘라스틱 회귀에서 사용하는 모델의 예측값과 실제값 사이의 평균 제곱근 오차를 의미합니다.

❗️ 팁: 최적의 하이퍼파라미터를 찾기 위해 RandomizedSearchCV를 사용할 때, 너무 많은 하이퍼파라미터 값을 지정하면 시간이 오래 걸릴 수 있습니다. 따라서, 적절한 범위와 적절한 n_iter 값을 선택하여 사용하시는 것이 좋습니다.

profile
Fantivation

0개의 댓글