使用具有多个类的 RandomizedSearchCV 进行 XGBoost 超参数调整
Posted
技术标签:
【中文标题】使用具有多个类的 RandomizedSearchCV 进行 XGBoost 超参数调整【英文标题】:XGBoost hyperparameter tunning with RandomizedSearchCV with multiple classes 【发布时间】:2021-02-15 17:42:42 【问题描述】:我正在为我的模型进行超参数调整,我的代码是这样的:
para_tunning =
'learning_rate': [0.01,0.05,0.1],
'min_child_weight': [1, 5, 10],
'gamma': [0.5, 1, 1.5, 2, 5],
'subsample': [0.6, 0.8, 1.0],
'colsample_bytree': [0.6, 0.8, 1.0],
'max_depth': [3, 4, 5, 6, 7, 8, 9, 10],
"n_estimators": [100, 200, 300, 400, 500],
"objective": "multi:softmax",
"aplha":[0,2,4,6,8]
clf_rndcv = RandomizedSearchCV(clf,
param_distributions = para_tunning,
cv = 5,
n_iter = 5,
scoring = 'accuracy',
error_score = 0,
verbose = 3,
n_jobs = -1,
random_state = 42)
clf_rndcv.fit(X_train, y_train)
它显示Fitting 5 folds for each of 5 candidates, totalling 25 fits
,我想它只是从 para_tunning 字典中随机选择 5 并进行 5 折 cv?如果我想测试所有参数,是否切换到 gridsearchcv?对调音有什么建议吗?我正在做一个多类分类器,有 100 个类,每个类 500 个样本:总共 50000 个。谢谢!
【问题讨论】:
【参考方案1】:是的,如果你想搜索 ALL 超参数,你必须使用GridSearchCV
。 GridSearch
搜索超参数的所有可能组合(根据您的情况,它可能非常大)。
供您参考,XGBoost 有自己的超参数调整。 XGBoost CV
【讨论】:
以上是关于使用具有多个类的 RandomizedSearchCV 进行 XGBoost 超参数调整的主要内容,如果未能解决你的问题,请参考以下文章
使用具有多个类的 RandomizedSearchCV 进行 XGBoost 超参数调整