ValueError: array must not contain infs or NaNs in SpectralCoclustering in Python3.X

ValueError: array must not contain infs or NaNs in SpectralCoclustering in Python3.X

data = np.genfromtxt("breastCancer.txt", delimiter=',').astype(np.float32)
data = data[~np.isnan(data).any(axis=1)]

ROW, COLUMN = data.shape

label = data[:, -1]
input = data[:, 1:COLUMN - 1]

scaler = preprocessing.MinMaxScaler(feature_range=(-1.0, 1.0))
scaler.fit(input)
input = scaler.transform(input)

model = SpectralCoClustering(n_clusters=3, random_state=0)
model.fit(input)

我试图对范围为 (-1.0, 1.0) 的数据集进行双聚类。在我的数据中,我没有任何 inf 或 nan。但它会抛出 ValueError: array must not contain infs or NaNs in SpectralCoclustering 的错误。你能帮我么?我需要一个范围为 (-1, 1) 的数据集,所以我不想在正范围内更改它。

我花了两天时间弄清楚同样的问题。我的解决方案:在执行 model.fit(input) 之前,我从 input:

中删除了只有零的列
remaining_collumns=input.getnnz(1)>0
input=input[remaining_collumns,:]
model.fit(input)

另请注意,在我的例子中,inputTfidfVectorizer.fit_transform 返回,形式为 sparse.csr.csr_matrix