0

我正在使用 MlKnn 方法,我能够拟合分类器并通过命令进行预测classifier.predict(Test)

结果是scipy.sparse.lil.lil_matrix只有预测本身。

我不明白如何将这些预测分配给scipy.sparse.csr.csr_matrix格式的原始数据集 Test。

有人可以帮我吗?谢谢。

4

1 回答 1

0

需要知道您的原始数据集 Test 的样子。您可以将 lil_matrix 转换为 csr_matrix 或完整的 numpy.ndarray 格式,如下所示:

from skmultilearn.adapt import MLkNN
from scipy import sparse
from skmultilearn.dataset import load_dataset
import sklearn.metrics as metrics

X_train, y_train, feature_names, label_names = load_dataset('emotions', 'train')
X_test, y_test, _, _ =load_dataset('emotions', 'test')

clf = MLkNN(k=5)

clf.fit(X_train, y_train)

y_pred = clf.predict(X_test)

print(type(y_pred))  # <class 'scipy.sparse.lil.lil_matrix'>

print(type(y_pred.toarray()))  # <class 'numpy.ndarray'>

y_pred_csr = sparse.csr_matrix(y_pred)

print(type(y_pred_csr))  # <class 'scipy.sparse.csr.csr_matrix'>

accuracy = metrics.accuracy_score(y_test, y_pred)
print(accuracy)  # 0.148
于 2019-09-14T13:12:26.337 回答