Входные данные содержат NaN, бесконечность или слишком большое значение для dtype ('float64') при выполнении функции KMean - PullRequest
0 голосов
/ 13 апреля 2020

Я новичок в области науки о данных, и во время практики кластеризации KMeans я столкнулся с этой ошибкой: входные данные содержат NaN, бесконечность или слишком большое значение для dtype ('float64').

Видимо мое перекодирование не работает должным образом, потому что оно превращает мои 0 в 0.0 / 1 в 1.0 et c. Это причина, по которой функция KMean из sklearn не будет работать?

Там, где не удается выполнить перекодирование, иначе говоря, отображение

Где не работает sklearn KMean

1 Ответ

0 голосов
/ 14 апреля 2020

Вы должны убедиться, что ваши данные не имеют нулевых бесконечных значений.

Вы можете сделать:

x.isnull().sum()

, чтобы увидеть, есть ли нулевые значения. Если сумма больше единицы, это означает, что есть хотя бы одно нулевое значение. Вы можете обработать их, используя метод fillna:

x = x.fillna(value=value_you_want_to_fill_nulls)

Для полной документации читайте: pandas -документация

Кроме того, другой проблемой, вероятно, является бесконечное значение :

np.isinf(x).sum()
# the same logic for null values

# to treat infinity you can do:
x = x.replace([np.inf, -np.inf], np.nan)

А затем обработайте нулевое значение.

Но полезно понять, почему у вас есть бесконечность / нулевые значения, и как этого избежать, прежде чем выполнять какие-либо вычисления.

...