Sklearn.impute.missingindicator valueerror: входные данные содержат nan, бесконечность или значение, слишком большое для dtype ('float64') .:

При создании и тестировании некоторых примеров с использованием библиотеки impute sklearn (v0.0.20) я столкнулся с указанной выше ошибкой. Я создал следующий простой пример и хочу создать функцию MissingIndicator для NaN и 999.

Все работает нормально для NaN, но если я попытаюсь заменить параметр отсутствующих значений на 999, я получаю эту ошибку. По номерам документации должно быть все в порядке.

enter image description here

Вот код и ошибка:

X = pd.DataFrame(
    np.array([5,7,8,-5,0,25,999,
              1,-1, np.NaN, 0, np.NaN])\
              .reshape((4,3)))

from sklearn.impute import MissingIndicator
indicator_1 = MissingIndicator(missing_values=np.NaN)
indicator_1.fit_transform(X)
indicator_2 = MissingIndicator(missing_values=999)
indicator_2.fit_transform(X)

enter image description here

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

Спасибо!

Параметр missing_values указывает алгоритму рассматривать указанное в нем значение как пропущенное. Итак, когда вы выполняете missing_values=999, это означает, что модель будет рассматривать 999 как отсутствующие значения и изменять это. Не уверены, чего вы здесь пытаетесь достичь?

Vivek Kumar 26.10.2018 08:44

Как упоминалось в моем вопросе, я хочу поставить под угрозу как NaN, так и 999 как пропущенное значение. @VivekKumar, если вы пробовали мой код, вы должны были заметить, что это вызывает ошибку, когда «модель будет рассматривать 999 как отсутствующие значения». Идея для недостающих индикаторов состоит в том, чтобы позже объединить их в одну (логическую) отсутствующую функцию индикатора (indicator_1 + indicator_2).

Steven Van Dorpe 26.10.2018 14:59

Я пробовал ваш код и поэтому прокомментировал. Я говорил только о дизайне MissingIndicator в scikit. Нет возможности рассматривать различные типы значений как отсутствующие, не так ли? Вы указываете только один тип, используя атрибут missing_values, и, следовательно, предполагается, что присутствует только этот тип отсутствующей информации. Ошибка возникает, когда это предположение не является действительным для данных.

Vivek Kumar 26.10.2018 15:28

. Если вы хотите рассматривать оба значения как отсутствующие значения, вы можете (1) преобразовать одно в другое (np.nan в 999) перед передачей их в MissingIndicator (2) Используйте два разных экземпляра MissingIndicator в разных столбцах, а затем присоедините их (вы можете использовать FeatureUnion для этого).

Vivek Kumar 26.10.2018 15:30

Спасибо за ваше возвращение. Я уже использовал FeatureUnion, чтобы обойти ошибку. Проблема, похоже, в том, что если вы установите missing_values ​​на 999 И в кадре есть np.NaN, будет выдана ошибка. Если я заменю NaN на 999, отсутствующий индикатор будет работать нормально. (Думаю, сейчас вопрос можно закрыть).

Steven Van Dorpe 26.10.2018 16:30
2
5
938
0

Другие вопросы по теме