首页 > 解决方案 > 将 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 .. 怎么做?或者有什么办法让它更快?

谢谢

标签: xgboost

解决方案


推荐阅读