我正在尝试运行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)