При попытке использовать Dmatrix ошибка: "AttributeError: 'DMatrix' object has no attribute 'items'"
При попытке использовать Dmatrix в xgboost.cv:
params = {
'num_boost_round': 500,
'max_depth': 4,
'min_child_weight': 2,
'subsample': 0.8,
'colsample_bytree': 0.5,
'eta':0.05}
X_train = np.random.random(size=(100, 1000))
y_train = np.random.random(size=(100, 1))
dtrain = xgboost.DMatrix(X_train,label = y_train)
rescv = xgboost.cv(dtrain,params,nfold=5,metrics = 'precision',early_stopping_rounds=20)
Выводит ошибку:
AttributeErrorTraceback (most recent call last) <ipython-input-86-96544cdc772c> in <module>()
10 y_train = np.random.random(size=(100, 1))
11 dtrain = xgboost.DMatrix(X_train,label = y_train)
---> 12 rescv = xgboost.cv(dtrain,params,nfold=5,metrics = 'precision',early_stopping_rounds=20)
13
C:\ProgramData\Anaconda2\lib\site-packages\xgboost\training.pyc in cv(params, dtrain, num_boost_round, nfold, stratified, folds, metrics, obj, feval, maximize, early_stopping_rounds, fpreproc, as_pandas, verbose_eval, show_stdv, seed, callbacks, shuffle)
401 params['eval_metric'] = _metrics
402 else:
--> 403 params = dict((k, v) for k, v in params.items())
404
405 if len(metrics) == 0 and 'eval_metric' in params:
AttributeError: 'DMatrix' object has no attribute 'items'
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Похоже вы перепутали порядок параметров. Лучше явно указывать имена параметров, чтобы избежать подобных ошибок:
rescv = xgboost.cv(
params=params,
data=dtrain,
nfold=5,
metrics='precision',
early_stopping_rounds=20)