Classification metrics can't handle a mix of multilabel-indicator and continuous-multioutput targets

DNN 分类后出现以下报错:

import scipy.sparse
xtest_count=scipy.sparse.lil_matrix(xtest_count).toarray()
ytest_count = scipy.sparse.lil_matrix(ytest_count).toarray()

predictions = model.predict(xtest_count, batch_size=512)

from sklearn.metrics import classification_report, confusion_matrix, accuracy_score
import pandas as pd
cm = confusion_matrix(ytest_count, predictions)
cm_df = pd.DataFrame(cm.T, index=encoder.classes_, columns=encoder.classes_)
cm_df.index.name = 'Predicted'
cm_df.columns.name = 'True'
print(cm_df)



---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-29-7ec755bc0a87> in <module>()
      1 from sklearn.metrics import classification_report, confusion_matrix, accuracy_score
      2 import pandas as pd
----> 3 cm = confusion_matrix(ytest_count, predictions)
      4 cm_df = pd.DataFrame(cm.T, index=encoder.classes_, columns=encoder.classes_)
      5 cm_df.index.name = 'Predicted'

1 frames
/usr/local/lib/python3.7/dist-packages/sklearn/metrics/_classification.py in _check_targets(y_true, y_pred)
     93         raise ValueError(
     94             "Classification metrics can't handle a mix of {0} and {1} targets".format(
---> 95                 type_true, type_pred
     96             )
     97         )

ValueError: Classification metrics can't handle a mix of multilabel-indicator and continuous-multioutput targets

请大家帮我看看!谢谢!

sklearn的classification metrics只接受binary的targets,所以你需要确保ytest_count,和predictions中的元素都是0或1的array。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632