728x90
Ridge regression, One-Hot Encoding, 특성선택
Ridge regression
- 람다값이 커지면 기울기가 0으로 된다. (규제가 쎄면 눕는다)
- 람다는 하이퍼파라미터.
- 베타는 회귀계수.
- 람다 패널티를 높일수록 계수의 값은 줄어든다.
- 람다 패널티를 주는 이유는 모델의 과적합(overfitting)문제를 줄이기 위함이다.
- 릿지회귀모델에서 최적 람다값을 찾기 위한 방법으로 RidgeCV 라이브러리를 활용할 수 있다.
- 릿지회귀모델은 기존의 다중회귀모델을 훈련데이터에 덜 적합되도록 하는 방법이다.
One-Hot Encoding
- 범주형 데이터를 기계가 알아듣도록 수치형으로 바꿔줌.
- 범주형데이터는 두개로 나뉘어진다. - 명목형데이터, 순서형데이터.
- 명목형데이터는 카테고리가 다를뿐이다. ex) 색깔, 도시, 성별, 기수, 브랜드
- 순서형데이터는 카테고리안에 순서 높낮이가 존재 ex) 등급, 점수, 순위,
특성공학 vs 특성선택
- 과적합은 모델이 복잡할때 나타난다.
- 특성공학은 기존에 특성을 이용해서 새로운것을 만드는 방법이다.
- 특성선택은 기존에 있는 특성들로 학습할때 어떤 특성이 가장 중요한가를 선택하는 과정이다.
- 특성 선택을 어떻게 하느냐에 따라 머신러닝 모델 성능에 큰 영향을 미칠 수 있으며, 실무에서도 많은 시간이 드는 업무 중 하나이다.
# SelectKBest
# target(Price)와 가장 correlated 된 features 를 k개 고르는 것이 목표
## f_regresison, SelectKBest
from sklearn.feature_selection import f_regression, SelectKBest
## selctor 정의합니다.
selector = SelectKBest(score_func=f_regression, k=10)
## 학습데이터에 fit_transform
X_train_selected = selector.fit_transform(X_train, y_train)
## 테스트 데이터는 transform
X_test_selected = selector.transform(X_test)
X_train_selected.shape, X_test_selected.shape
## RidgeCV
from sklearn.linear_model import RidgeCV
alphas = np.arange(1, 50, 1)
# RidgeCV모델 작성 람다는 1부터 50까지로 설정
model1 = RidgeCV(alphas = alphas, cv = 2)
model1.fit(X_train, y_train)
y_pred1 = model1.predict(X_test)
300x250
'코딩💻' 카테고리의 다른 글
[Deep Learning] Hyperparameters , Kfold Cross-Validation, Keras tuner (0) | 2022.11.23 |
---|---|
[Deep Learning] 학습률, 가중치 초기화, 과적합 (0) | 2022.11.16 |
[Machine learning] 과적합,과소적합, 회귀모델의 평가지표(MAE,MSE,RMSE) (0) | 2022.11.16 |
[Python] 동적계획법(Dynamic Programming), 탐욕알고리즘(Greedy) (0) | 2022.10.27 |
[Deep Learning] 순전파, 역전파, 손실함수, 경사하강법, 옵티마이저, 배치사이즈 (0) | 2022.10.26 |