XGBoost 参数调优时间长

问题描述

我正在尝试使用以下代码调整 XGBoost 参数以获得最佳模型。手术时间很长。没有办法缩短这个时间吗?

lr_list = [0.05,0.1,0.25,0.3,0.4,0.5,0.75,0.9,1]
n_estimators = [100,150,200,250,300]
max_depth = [1,2,3,5,6,7,10,12,14]
subsample =[0.5,0.8]
colsample_bytree = [0.3,0.7,1.0]
colsample_bylevel = [0.2,0.8,1.0]
gamma_list=[0,5] 

for learning_rate in lr_list:
    for estimators in n_estimators :
        for depth in max_depth:
            for cols in colsample_bytree:
                for subsampler in subsample:
                    for gamma in gamma_list:
                        for bylevel in colsample_bylevel:
                            gb_clf = XGBClassifier(learning_rate=learning_rate,n_estimators = estimators,max_depth= depth,colsample_bytree= cols,subsample= subsampler,gamma=gamma,colsample_bylevel= bylevel)
                            gb_clf.fit(X_train,y_train)
                            if  gb_clf.score(X_test,y_test)>0.74 and (gb_clf.score(X_train,y_train) - gb_clf.score(X_test,y_test)) < 0.05:

                                print("learning_rate: ",learning_rate)
                                print("n_estimators: ",estimators)
                                print("max_deptht: ",depth)
                                print("colsample_bytree: ",cols)
                                print("subsampler: ",subsampler)
                                print("gamma: ",gamma)
                                print("bylevel: ",bylevel)
                                print("Accuracy score (training): {0:.3f}".format(gb_clf.score(X_train,y_train)))
                                print("Accuracy score (validation): {0:.3f}".format(gb_clf.score(X_test,y_test)))

解决方法

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

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

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