Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 即使在对预测进行四舍五入后,也无法获取分类报告_Python_Tensorflow_Keras_Scikit Learn_Classification - Fatal编程技术网

Python 即使在对预测进行四舍五入后,也无法获取分类报告

Python 即使在对预测进行四舍五入后,也无法获取分类报告,python,tensorflow,keras,scikit-learn,classification,Python,Tensorflow,Keras,Scikit Learn,Classification,我试图使用keras对我的数据集进行分类,但我得到了ValueError:分类指标无法处理多类别和多标签指标目标的混合error。y_pred中的值如下 array([[2.95522604e-02, 9.70325887e-01, 3.20542094e-05, ..., 1.74383260e-07, 1.98587145e-07, 9.88743452e-08], [3.25102806e-01, 6.68996394e-01, 1.65001326e-03,

我试图使用keras对我的数据集进行分类,但我得到了
ValueError:分类指标无法处理多类别和多标签指标目标的混合
error。
y_pred
中的值如下

array([[2.95522604e-02, 9.70325887e-01, 3.20542094e-05, ...,
        1.74383260e-07, 1.98587145e-07, 9.88743452e-08],
       [3.25102806e-01, 6.68996394e-01, 1.65001326e-03, ...,
        5.84201662e-05, 5.91963508e-05, 4.68929684e-05],
       [8.87618303e-01, 1.12024814e-01, 1.22764613e-04, ...,
        1.44616331e-06, 1.33618846e-06, 1.68983024e-06],
       ...,
       [3.09438616e-01, 6.83520675e-01, 1.94711238e-03, ...,
        7.57295784e-05, 7.51852640e-05, 5.94857411e-05],
       [6.73729360e-01, 3.21534157e-01, 1.41171378e-03, ...,
        4.93246625e-05, 4.61974196e-05, 4.73670734e-05],
       [1.33120596e-01, 8.64127636e-01, 7.41749362e-04, ...,
        1.87505502e-05, 1.95825924e-05, 1.34223355e-05]], dtype=float32)
如问题中所述,我将它们四舍五入,因为
y\u test
值是

array([1, 0, 0, ..., 0, 1, 1]) 
在使用
y_pred=y_pred.round()舍入
y_pred
之后。aType(int)

array([[0, 1, 0, ..., 0, 0, 0],
       [1, 0, 0, ..., 0, 0, 0],
       [1, 0, 0, ..., 0, 0, 0],
       ...,
       [0, 1, 0, ..., 0, 0, 0],
       [1, 0, 0, ..., 0, 0, 0],
       [0, 1, 0, ..., 0, 0, 0]])
即使在这之后,当我尝试使用
print(metrics.classification\u report(y\u test,y\u pred))获取分类报告时,
也会得到与上述相同的错误。有人能帮我解释一下我做错了什么吗?谢谢

声明
y\u pred
输入必须是1d数组,如。您需要argmax您的登录

将numpy导入为np
导入tensorflow作为tf
从sklearn.metrics导入分类报告
y_pred=tf.math.abs(tf.random.normal([32,2])).numpy()
y_test=tf.random.uniform([32,1],minval=0,maxval=2,dtype=tf.int32).numpy()
#这会爆炸
打印(分类报告(y_测试,y_预测))
#ValueError:分类度量无法处理二进制和
#连续多输出目标
#获得预测指数
y_pred=np.argmax(y_pred,1)
#再试一次
打印(分类报告(y_测试,y_预测))
#精确回忆f1分数支持
#
#             0       0.41      0.50      0.45        14
#             1       0.53      0.44      0.48        18
# 
#准确度0.47 32
#宏平均值0.47 0.47 0.47 32
#加权平均值0.48 0.47 0.47 32
说明
y\u pred
输入必须是一个1d数组,如。您需要argmax您的登录

将numpy导入为np
导入tensorflow作为tf
从sklearn.metrics导入分类报告
y_pred=tf.math.abs(tf.random.normal([32,2])).numpy()
y_test=tf.random.uniform([32,1],minval=0,maxval=2,dtype=tf.int32).numpy()
#这会爆炸
打印(分类报告(y_测试,y_预测))
#ValueError:分类度量无法处理二进制和
#连续多输出目标
#获得预测指数
y_pred=np.argmax(y_pred,1)
#再试一次
打印(分类报告(y_测试,y_预测))
#精确回忆f1分数支持
#
#             0       0.41      0.50      0.45        14
#             1       0.53      0.44      0.48        18
# 
#准确度0.47 32
#宏平均值0.47 0.47 0.47 32
#加权平均值0.48 0.47 0.47 32