在xgboost中,我正在做类似
的事情import numpy as np
import xgboost as xgb
y = np.arange(10)
X = np.arange(20).reshape(10, 2)
dtrain = xgb.DMatrix(X, y, feature_names=["x1", "x2"])
如果我想从dtrain中提取y值作为数组,我可以
y = dtrain.get_label()
有没有办法从dtrain中将X值提取为数组?
答案 0 :(得分:1)
我不这么认为。使用DMatrix
dtrain
,您可以看到:
dir(dtrain)
['__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_feature_names', '_feature_types', '_init_from_csc', '_init_from_csr', '_init_from_npy2d', 'feature_names', 'feature_types', 'get_base_margin', 'get_float_info', 'get_label', 'get_uint_info', 'get_weight', 'handle', 'num_col', 'num_row', 'save_binary', 'set_base_margin', 'set_float_info', 'set_group', 'set_label', 'set_uint_info', 'set_weight', 'slice']
我能找到的最好的是
dtrain.feature_names
将返回["x1", "x2"]
。 dtrain.feature_types
有点帮助,您可以使用dtrain.slice(range(3))
之类的切片,但这仍然不是您正在寻找的内容。