2016-06-29 6 views
2

Я пытаюсь понять следующий случай:Инициализация Xgboost DMatrix уменьшить особенности номер

  1. , когда я создаю новый xgbost DMatrix

    xgX = xgb.DMatrix(X, label=Y, missing=np.nan)

  2. на основе входных данных X с 64 характеристики enter image description here

  3. я получил новый DMatrix с 55 функциями enter image description here

Что магия здесь делает? Любой совет будет замечательным!

+0

Есть ли способ переместить мой вопрос в 'DataScience stack' http://datascience.stackexchange.com/? – SpanishBoy

ответ

3

Посмотрите на xgboost issue #1223

Там, khotilov делает комментарий:

Проблема с КСО, что, когда у вас есть полностью разреженных столбцов в конце концов, вы не можете понять, что они существуют просто глядя на индексы и указатели CSR.

Следствием этого является то, что функция, которая создает DMatrix от X, XGDMatrixCreateFromCSR, не учитывает пустые столбцов в конце, что в вашем случае составляет 9 столбцов. Вы можете проверить это в своем случае и определить, действительно ли у вас есть 64 функции в X.