Я пытаюсь запустить алгоритм Dask SpectralClustering.Это дает мне следующую ошибку:
ValueError: Вход содержит NaN, бесконечность или слишком большое значение dtype ('float64')
Код, который я запускаю, это:
data = pd.read_csv('2017-06_FXR_1.tgz_clean.csv')
data_nonan=data.fillna(0)
from sklearn.preprocessing import StandardScaler
data_scaled = StandardScaler().fit_transform(data_nonan)
data_scaled_clusters=dask_ml.cluster.SpectralClustering(n_clusters=3).fit_predict(data_scaled)
Я избавился от всех значений NaN, но инфы нет, потому что я применил скалер к моим данным.
Я попытался data_scaled.isnull().any()
, и получилось False, и ятакже пытался da.isinf(data_scaled).any()
, это также было False.
Проблема возникла, когда я попытался da.isnull(data_scaled).any()
.Результатом этого был пустой массив.Эта последняя часть - то, что делает k_means, чтобы проверить массив, и я думаю, что это где проблема, но я не знаю, как ее решить.
Код, который выдает ошибку в проверочном массиве k_means, следующий:
if isinstance(X, np.ndarray):
X = da.from_array(X, chunks=(max(1, len(X) // cpu_count()), X.shape[-1]))
bad = (da.isnull(X).any(), da.isinf(X).any())
if any(*compute(bad)):
msg = (
"Input contains NaN, infinity or a value too large for "
"dtype('float64')."
)
raise ValueError(msg)