Что я загружаю из agaricus.txt.train? - PullRequest
1 голос
/ 10 ноября 2019

В базовом пошаговом руководстве от XGBoost мы сначала загружаем набор данных.

>>> dtrain = xgb.DMatrix('../data/agaricus.txt.train')
[20:37:22] 6513x127 matrix with 143286 entries loaded from ../data/agaricus.txt.train
>>> dtest = xgb.DMatrix('../data/agaricus.txt.test')
[20:37:23] 1611x127 matrix with 35442 entries loaded from ../data/agaricus.txt.test

Однако наборы данных, как представляется, содержат 127 функций, а не 126, как описано вПакет R XGBoost .

>>> dtrain.num_col()
127

Кроме того, xgboost.Booster.predict вернет матрицу размера (nsample, nfeats + 1), когда установлено pred_contribsдо True. Поскольку preds имеет 128 столбцов, мы можем заключить, что dtrain содержит 127 объектов.

>>> param = {'max_depth':2, 'eta':1, 'silent':1, 'objective':'binary:logistic'}
>>> watchlist = [(dtest, 'eval'), (dtrain, 'train')]
>>> num_round = 2
>>> bst = xgb.train(param, dtrain, num_round, watchlist)
[0] eval-error:0.042831 train-error:0.046522
[1] eval-error:0.021726 train-error:0.022263
>>> preds = bst.predict(dtest, output_margin=True, pred_contribs=True, approx_contribs=True)
>>> preds.shape
(1611, 128)

Что здесь происходит? Неужели xgboost.DMatrix ошибочно рассматривали метку как 127-ю функцию? Если текстовый файл libsvm проанализирован правильно, то почему в preds 128 столбцов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...