我正在使用 MlKnn 方法,我能够拟合分类器并通过命令进行预测classifier.predict(Test)
。
结果是scipy.sparse.lil.lil_matrix
只有预测本身。
我不明白如何将这些预测分配给scipy.sparse.csr.csr_matrix
格式的原始数据集 Test。
有人可以帮我吗?谢谢。
我正在使用 MlKnn 方法,我能够拟合分类器并通过命令进行预测classifier.predict(Test)
。
结果是scipy.sparse.lil.lil_matrix
只有预测本身。
我不明白如何将这些预测分配给scipy.sparse.csr.csr_matrix
格式的原始数据集 Test。
有人可以帮我吗?谢谢。
需要知道您的原始数据集 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