Optuna教程中LightGBM的Dataset对应XGBoost的等效命令是什么?
XGBoost对应
lgb.Dataset的等效接口 XGBoost中与LightGBM的lgb.Dataset功能完全对等的接口是xgb.DMatrix()。
xgb.DMatrix是XGBoost专门优化的内部数据存储结构,针对梯度提升树的训练过程做了内存占用和计算效率优化,功能覆盖lgb.Dataset的全部常用场景,支持传入numpy数组、pandas DataFrame、scipy稀疏矩阵、本地数据文件路径等多种类型的数据源,也支持同步指定标签、样本权重、分组字段、缺失值标记等训练所需的元信息。
等效代码示例
你之前写的LightGBM数据集构造代码:
import lightgbm as lgb train_data = lgb.Dataset(train_x, label=train_y)
对应的XGBoost写法为:
import xgboost as xgb train_data = xgb.DMatrix(train_x, label=train_y)
注意事项
- 如果需要设置样本权重、缺失值标记等参数,和
lgb.Dataset用法类似,直接在构造xgb.DMatrix时传入对应参数即可,示例:xgb.DMatrix(train_x, label=train_y, weight=train_weight, missing=-999) - 与
lgb.Dataset不同的是,xgb.DMatrix实例创建完成后不支持修改内部的标签、权重等元信息,如需调整需要重新构造新的DMatrix实例 - 构造完成的DMatrix实例可直接传入
xgb.train()接口用于模型训练,用法与LightGBM的lgb.train()传入Dataset实例的逻辑一致
内容的提问来源于stack exchange,提问作者Arnold
相关产品推荐
相关产品推荐

