Ошибка IterativeImputer: вход содержит NaN, бесконечность или значение, слишком большое для dtype ('float64') - PullRequest
0 голосов
/ 22 октября 2018

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

Сделав типичную процедуру предварительной обработки данных, мой следующий шаг - попытаться приспособить регрессионную модель к вменению пропущенных значений.Тем не менее, когда я пытаюсь использовать IterativeImputer из fancyimpute.Я сталкиваюсь с этой ошибкой:

C:\Users\User.DC241-12\Anaconda3\lib\site-packages\sklearn\linear_model\ridge.py:942: RuntimeWarning: overflow encountered in square
  v = s ** 2
****hierarchy of filenames in which error is happening****
Input contains NaN, infinity or a value too large for dtype('float64')

Я понимаю, что пропущенные значения, введенные в IterativeImputer, должны быть представлены как NaN s, поэтому я предполагаю, что здесь нет причины.Должен ли я масштабировать свои данные до того, как перейти к процессу вменения.Но разве это не повлияет на процесс вменения?

Спасибо!

1 Ответ

0 голосов
/ 02 ноября 2018

У меня была похожая проблема с этим.Для меня проблема заключалась в том, что некоторые из моих значений, подаваемых в импутер, были довольно большими (значения> 10 000 000) и имели большой набор данных (более 500 000 строк).Эти большие значения каким-то образом объединяются в алгоритме, который использует IterativeImputer, и переполняют numpy's float64.

Попробуйте масштабировать свои значения, вменяя, а затем уменьшать (увеличивать в обратном порядке процесс уменьшения), как только вменениесделано.

...