Python XGBoost在我的机器上运行缓慢,正常吗?

Python XGBoost在我的机器上运行缓慢,正常吗?,python,data-science,xgboost,Python,Data Science,Xgboost,我正在使用XGBoost从Kaggle project Rossmann商店销售中培训100万行和~15个功能。它看起来很慢。在没有参数调整的情况下训练模型需要30分钟。如果我运行GridSearchCV来训练具有3倍和6个学习率值的模型,则需要10个多小时才能返回。由于这是我第一次使用XGBoost,我不知道这是否正常。我无法想象调整XGBoost模型的所有参数需要多少天。 请帮帮我 模型参数:XGBRegressionor(学习率=0.1,最大深度=5,n估计量=1165,子样本=0.8,c

我正在使用XGBoost从Kaggle project Rossmann商店销售中培训100万行和~15个功能。它看起来很慢。在没有参数调整的情况下训练模型需要30分钟。如果我运行GridSearchCV来训练具有3倍和6个学习率值的模型,则需要10个多小时才能返回。由于这是我第一次使用XGBoost,我不知道这是否正常。我无法想象调整XGBoost模型的所有参数需要多少天。 请帮帮我

模型参数:XGBRegressionor(学习率=0.1,最大深度=5,n估计量=1165,子样本=0.8,colsample bytree=0.8,种子=27)。我使用n_估计器1165,因为它由xgboost.train作为最佳迭代返回。同时将nthread从1改为4,这根本不会提高性能

我的电脑配置是; CPU:intel i7 6500U(2芯4线程) 内存:8GB 操作系统:windows 10

谢谢!
Justin

训练模型可能需要大量时间处理某些数据集——这与机器学习模型无关。对于XGBoost,训练时间将根据您的超参数而变化,因此我认为您的训练时间并非不合理。长时间的训练是为什么有些人努力开发“更智能”超参数优化技术的原因(与使用网格搜索相比)。我使用的是超参数:XGBRegressionor(学习率=0.1,最大深度=5,n_估计器=1165,子样本=0.8,colsample_bytree=0.8,种子=27)。我使用n_估计器1165,因为它由xgboost.train作为最佳迭代返回。同时将nthread从1改为4,这根本不会提高性能。多线程如何为xgboost工作?这里要澄清的是,hyperparameters只是模型参数的另一个名称。几乎每个模型都有一些用户可以调整的参数(通常称为超参数)。在我之前的评论中,我提到某些超参数会使训练花费更长的时间。例如,在XGBoost的情况下,如果有更多的树生长得更深,这将减慢训练过程,而不是让树变浅(例如“树桩”)。增加线程数并不能提高性能有点不清楚。您是指模型的预测性能还是模型运行时的性能?据我所知,XGBoost使用OpenMP进行并行处理:。查看本页了解更多关于XGBoost中多线程的详细信息:我的意思是,将nthread从1更改为4后,模型训练时间没有得到改善