在调整超参数之前如何选择最佳分类器?

问题描述

我正在为多类分类问题训练一个机器学习模型。我训练了几个分类器(如 xgboost、梯度提升、rf、额外树等),每个分类器都使用 gridsearchcv 调整超参数。

虽然可能是多类的,但训练每个模型的时间需要几个小时。

谁能帮我制定一个好的策略,在调整超参数之前选择最佳分类器?

我想简单地训练每个分类器而不调整超参数,看看哪个表现更好,然后选择表现更好的一个加入超参数。这是个好主意吗?

这是我用来训练和调整所选模型的代码(在本例中,我使用了 xgboost,但我对提到的所有其他模型都这样做了,这花了很长时间)。

# Maximum number of levels in tree
max_depth = [int(x) for x in np.linspace(10,100,num = 4)]
max_depth.append(None)

param_grid = [
    {
        'reduce_dim__n_components': [0.7,0.9,0.1],'classify__learning_rate': [0.0001,0.001,0.01,'classify__n_estimators': [int(x) for x in np.linspace(start = 100,stop = 1000,num = 4)],'classify__max_depth': max_depth
    }
]

grid_search = gridsearchcv(
    Pipeline([
        ('reduce_dim',PCA(svd_solver='full')),('classify',xgb.XGBClassifier(objective='multi:softmax',n_jobs=-1))
    ]),param_grid,cv=5,scoring='accuracy',verbose=1,return_train_score=True,n_jobs=-1)
grid_search = grid_search.fit(train_prepared,y_train)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)