scikit-learn - 19 (회귀 | 파라미터 튜닝)

안동균·2024년 11월 13일

Parameter

params={'learning_rate' : [0.07, 0.05], 
        'max_depth' : [3, 5, 7], 
        'n_estimators' : [100, 200],
        'subsample':[0.9, 0.8, 0.7]
        }

데이터셋 제작 함수

# 데이터셋 로드
def make_dataset2():
    dataset = load_diabetes()
    df = pd.DataFrame(dataset.data, columns=dataset.feature_names)
    df['target'] = dataset.target
    return df.drop('target', axis=1), df['target']
x, y = make_dataset2()

GridSearchCV

파라미터의 모든 경우의 수를 이용하여 최적의 결과 출력

시간이 오래걸림

예제


최적 파라미터 찾기

xgb = XGBRegressor()
grid = GridSearchCV(xgb, params, cv = 3, n_jobs = -1)
grid.fit(x, y)

grid.best_params_


RandomizedSearchCV

주어진 시간내의 최적의 조합을 찾아 출력

예제

from sklearn.model_selection import RandomizedSearchCV

xgb = XGBRegressor()
grid = RandomizedSearchCV(xgb, params, cv = 3, n_iter = 10, n_jobs = -1)
grid.fit(x, y)

grid.best_params_

n_iter = 횟수 제한(10번의 최적의 조합을 찾아라)

0개의 댓글