Может ли алгоритм Ngboost автоматически обрабатывать пропущенные значения c? - PullRequest
0 голосов
/ 09 июля 2020

Я получил новый алгоритм GBDT под названием Ngboost, изобретенный stanfordmlgroup. Я хочу использовать его и вызвать encode

pip install ngboost==0.2.0

, чтобы установить его. а затем я обучаю набор данных, который не вменяет и не удаляет отсутствующие значения. однако я получаю сообщение об ошибке:

Input contains NaN, infinity or a value too large for dtype('float32').

это означает, что Ngboost не может автоматически обрабатывать отсутствующее значение c как xgboost?

Ответы [ 2 ]

0 голосов
/ 23 июля 2020

Вот ответ одного из создателей ngboost по этому поводу

Привет, @omsuchak, спасибо за предложение. Не существует единственного «естественного» или хорошего способа обработки отсутствующих данных в целом. Если бы ngboost сделал это за вас, мы бы сделали ряд скрытых выборов, которые были бы скрыты от пользователя. как мы поступаем с важностями функций) есть несколько разумных вариантов по умолчанию, что делать с отсутствующими данными. Реализовать эти стратегии здесь, вероятно, не так уж сложно, но это также нетривиальная задача. В любом случае я бы хотел, чтобы у пользователя был прозрачный выбор того, что происходит. Я был бы открыт для рассмотрения запросов на вытягивание на этом фронте, поскольку они удовлетворяют этому требованию, но я не планирую над этим работать в обозримом будущем. Я закрою пока, но если кто-то хочет попробовать добавить это, не стесняйтесь комментировать.

И тогда вы можете увидеть другой ответ о том, как решить это, например, с помощью sklearn.impute. Модуль MissingIndicator (чтобы указать модели на наличие пропусков) или какой-то модуль Imputer.

Если вам нужен практический пример, вы можете попробовать с примером выживания (находится в репозитории !) .

0 голосов
/ 09 июля 2020

У вас есть две возможности с этой ошибкой.

1- У вас действительно большое значение. Проверьте максимальное количество столбцов.

2- Алгоритм не поддерживает NAN и тип inf, поэтому вам придется обрабатывать их, как в некоторых других моделях регрессии.

...