[Day 31] Model Selection
2022. 3. 8. 19:11ㆍAI/Codestates
728x90
반응형
코딩부트캠프 | 코드스테이츠 - 비전공생도 개발자가 될 수 있습니다
코딩부트캠프를 찾는다면? 개발자로 커리어 전환을 위한 책임있는 코딩 교육 기관! 서비스 기획자, 그로스 마케터, 데이터 사이언티스트 등 다양한 전문 커리어에 도전하세요. 취업 성공의 후기
www.codestates.com
Warm-up
- 교차검증 ( Cross - Validation )
Note
- 교차검증 ( Cross - Validation )
- 시계열 ( Time Series ) 데이터에 적합하지 않음
- TargetEncoder
- OrdinalEncoder 보다 요즘 성능이 좋음.
- 하이퍼파라미터 튜닝
- 최적화 : 훈련 데이터로 더 좋은 성능을 얻기 위해 모델을 조정하는 과정
- 일반화 : 처음 본 데이터로 얼마나 좋은 성능을 내는지
- RandomizedSearchCV : 무작위
from sklearn.pipeline import make_pipeline
from category_encoders import OrdinalEncoder
from sklearn.impute import SimpleImputer
from sklearn.ensemble import RandomForestClassifier
from scipy.stats import randint, uniform
from sklearn.model_selection import RandomizedSearchCV
pipe = make_pipeline(
OrdinalEncoder(),
SimpleImputer(),
RandomForestClassifier(random_state=2)
)
dists = {
'simpleimputer__strategy': ['mean', 'median'],
'randomforestclassifier__n_estimators': randint(50, 500),
'randomforestclassifier__max_depth': [5, 10, 15, 20, None],
'randomforestclassifier__max_features': uniform(0, 1) # max_features
}
clf = RandomizedSearchCV(
pipe,
param_distributions=dists,
n_iter=20,
cv=3,
scoring='f1',
verbose=1,
n_jobs=-1
)
clf.fit(X_train, y_train)
print('최적 하이퍼파라미터: ', clf.best_params_)
- GridSearchCV : 전체
from category_encoders import TargetEncoder
from sklearn.model_selection import GridSearchCV
pipe = make_pipeline(
TargetEncoder(),
SimpleImputer(),
RandomForestClassifier(random_state=2,class_weight='balanced')
)
dists = {
'simpleimputer__strategy': ['mean', 'median'],
'randomforestclassifier__n_estimators': [10, 50, 100],
'randomforestclassifier__max_depth': [10, 50, 100],
'randomforestclassifier__max_features': ['auto','log2'],
'randomforestclassifier__min_samples_leaf' : [1, 3, 5]
}
clf = GridSearchCV(
pipe,
param_grid=dists,
cv=3,
scoring='f1',
verbose=1,
n_jobs=-1
)
clf.fit(X_train, y_train)
print('최적 하이퍼파라미터: ', clf.best_params_)
Review
더보기
최작의 파라미터를 찾기위해 너무 무리해서 돌리는 바람에 7시간 돌리고 결과를 보지 못했다. 범위를 조금씩 좁혀가며 돌리는게 제일 좋을거 같다.
참고
728x90
반응형
'AI > Codestates' 카테고리의 다른 글
[Day 33] Choose your ML problems (0) | 2022.03.10 |
---|---|
[Day 32] Sprint Review (0) | 2022.03.08 |
[Day 30] Evaluation Metrics for Classification (0) | 2022.03.04 |
[Day 29] Random Forests (0) | 2022.03.03 |
[Day 28] Decision Trees (0) | 2022.03.03 |