模糊 C 均值中的验证错误

ValidationError in fuzzy-c-means

我已经尝试在 jupyter notebook 和 colab 中 运行,但 fcmeans 仍然出现此错误。 但它在不同的笔记本电脑上运行良好。 这是分割数据集的代码

# Stratified Sampling using Scikit-learn's Stratified Shuffle Split Class
from sklearn.model_selection import StratifiedShuffleSplit

split = StratifiedShuffleSplit(n_splits=1, test_size=0.25, random_state=42)

for train_index, test_index in split.split(data1, data1["class"]):
    strat_train_set = data1.loc[train_index]

    strat_test_set = data1.loc[test_index]
    train_set = strat_train_set.drop("class", axis=1) # drop labels for training set

train_labels = strat_train_set["class"].copy()
test_set = strat_test_set.drop("class", axis=1) # drop labels for testing set
test_labels = strat_test_set["class"].copy()

那我错过了什么?

这里的问题是,tr_set 不是 numpy.ndarray。因此,您需要做的就是将数据框作为 numpy 数组传递。

在您的情况下,如果在将数据传递给 fit 之前使用 to_numpy 函数(像这样 fcm.fit(tr_set.to_numpy())),它将起作用。

从 fcm 文档中可以清楚地看出这一点。