반응형
릿지 회귀모델(Ridge)
선형회귀분석의 기본원리를 따르나 가중치(회귀계수) 값을 최대한 작게 만들어, 즉 0에 가깝게 만들어 모든 독립변수(특성)가 종속변수(레이블)에 미치는 영향을 최소화하는 제약(regularization)을 반영한 회귀모델이다.
각 특성의 영향을 최소화하여 훈련데이터에 과대적합되지 않도록 제약이 있는 모델이며 다항곡선 추정도 가능하다.
핵심 하이퍼파라미터는 alpha 값, 기본값은 1, 0에 가까울수록 규제를 하지 않고 숫자가 커질수록 더 많은 규제를 한다.
scikit-learn
릿지 회귀모델은 사이킷런의 linear_model 중 Ridge이다.
1) 기본모델 적용
from sklearn.linear_model import Ridge
model=Ridge()
model.fit(X_scaled_train, y_train)
pred_train=model.predict(X_scaled_train)
model.score(X_scaled_train, y_train)
sklearn.linear_model로 부터 Ridge 라이브러리를 불러왔다.
정규화한 훈련데이터셋을 학습(fit)하고 예측값을 도출 및 저장(predict)한 후 정확도를 구했다.
정확도 약 54.6%로 선형회귀모델과 거의 유사하다.
2) RMSE 오차 구하기
#RMSE(Root Mean Squared Error)
import numpy as np
from sklearn.metrics import mean_squared_error
MSE_train = mean_squared_error(y_train,pred_train)
MSE_test = mean_squared_error(y_test,pred_test)
print(np.sqrt(MSE_train))
print(np.sqrt(MSE_test))
훈련데이터 오차는 64,342, 테스트데이터오차는 63,219로 나타났다.
3) Grid Search
#Grid Search
param_grid = {'alpha':[1e-4, 1e-3, 1e-2, 0.1, 0.5, 1.0, 5.0, 10.0]}
from sklearn.model_selection import GridSearchCV
grid_search = GridSearchCV(Ridge(),param_grid,cv=5)
grid_search.fit(X_scaled_train,y_train)
print("Best Parameter:{}".format(grid_search.best_params_))
print("Best Score:{:.4f}".format(grid_search.best_score_))
print("TestSetScore:{:.4f}".format(grid_search.score(X_scaled_test, y_test)))
alpha값을 0.0001, 0.001, 0.01, 0.1, 0.5, 1, 5, 10 총 11가지로 설정하여 그리드탐색을 했다.
최적의 하이퍼파라미터는 alpha가 0.1일 때로 규제가 작을 때 더 좋은 모델로 확인된다.
4) Random Search
#Random Search
from scipy.stats import randint
param_distribs = {'alpha':randint(low=0.0001,high=100)}
from sklearn.model_selection import RandomizedSearchCV
random_search=RandomizedSearchCV(Ridge(),param_distributions=param_distribs,cv=5)
random_search.fit(X_scaled_train, y_train)
print("Best Parameter:{}".format(random_search.best_params_))
print("Best Score:{:.4f}".format(random_search.best_score_))
print("TestSetScore:{:.4f}".format(random_search.score(X_scaled_test, y_test)))
랜덤탐색으로 alpha 값을 0.0001~100 사이에서 무작위로 100번 뽑아 릿지 회귀모델을 적용했다.
최적의 하이퍼파라미터는 alpha = 1일 때, 정확도는 각각 54.5%, 56.2%가 나왔다.
반응형
'자기계발 > Python' 카테고리의 다른 글
[빅데이터분석기사] 27 엘라스틱넷 (0) | 2022.06.25 |
---|---|
[빅데이터분석기사] 26 라쏘회귀모델 (0) | 2022.06.25 |
[빅데이터분석기사] 24 선형회귀모델 (0) | 2022.06.24 |
[빅데이터분석기사] 23 앙상블 스태킹 (0) | 2022.06.24 |
[빅데이터분석기사] 22 앙상블 부스팅 (0) | 2022.06.23 |