python xgboost DMatrix - 获取特征值或转换为 np.array

数据挖掘 Python xgboost 交叉验证 评估
2021-10-07 05:21:18

我正在尝试为 xgboost.cv 创建一个自定义评估指标 (feval) 函数。它应该处理一些训练特征,但是我找不到从xgboost.DMatrix()对象中提取特征的方法(只有标签)..

正如我建议的那样,可以先制作一个 DMatrix 切片,然后将其保存到 svmlight 文件中,最后使用 scikit-learn 读取它,但是如果这样做有更优雅的方法吗?

2个回答

您可以使用dmatrix2np将 DMatrix 转换为 NumPy 数组

from dmatrix2np import dmatrix_to_numpy

converted_np_array = dmatrix_to_numpy(dmatrix)

它是开源的,你可以在这里查看它的代码。

目前我们不能直接从 DMatrix 中提取数据矩阵,主要是因为 DMatrix 是一个内部数据结构,它可能存在也可能不存在于内存中。

——作者 tqchen 于 2015 年 8 月 3 日发表评论

来源