xgboost - 将 xgboost 的 GridSearchCV 与 DMatrix 一起使用
问题描述
我在练习如何使用 xgboost 时遇到了一些问题。
据我所知,“DMatrix”是一种特殊的内部结构,可以让模型运行得更快。
这是问题所在:
要调整模型,(我猜)GridSearchCV 或 RandomizedSearchCV 是相当可观的。
使用下面的代码:
params = {
'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]
}
random_search = RandomizedSearchCV(xgb, param_distributions=params, n_iter=param_comb, scoring='roc_auc', n_jobs=4, cv=skf.split(X,Y), verbose=3, random_state=1001 )
我也可以通过传递 cv 来进行交叉验证。那很棒。
但是,这确实需要时间(大数据和 colab gpu 几乎需要 40 分钟),我真的很想改进它。
在我将我的火车数据转换为 DMatrix 之后:
xgbtrain = xgb.DMatrix(train_x, train_y)
我不知道下一步该做什么,因为.fit
需要 X 和 y .. 怎么做?或者有什么办法让它更快?
谢谢
解决方案
推荐阅读
- jquery - “类型‘JQuery’上不存在属性‘bxSlider’
'" 在 Angular 项目中 - jasper-reports - 如何在报告中减小水平条的大小?
- javascript - React Native TouchableOpacity 被自动点击
- c# - Azure App Service 似乎在 .NET 5 模式下启用了 NLS
- ssh - 为 root 用户禁用远程 SSH 登录会锁定我的 Plesk 服务器吗?
- python - 从 eml 文件中提取图像
- javascript - 无法从 react-map-gl 和 Mapbox 显示 MAP
- spark-java - 线程本地好吗?
- r - R中的子集data.frame并计算汇总统计,与零行子集重新组合
- javascript - 从 app.js (Node) 获取数据到 js 文件