SpectralClustering ValueError:输入包含NaN,无穷大或值太大dtype('float64')

时间:2018-10-05 21:37:15

标签: python k-means dask-ml

我正在尝试运行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值,并且没有inf,因为我对数据运行了定标器。

我尝试了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)

0 个答案:

没有答案