
如何使用predict()输出预测结果 以及 输出值转换为0/1值。
加载模型并输出预测值:model = load_model('my_model.h5')pt = model.predict(test)print('test after load: ', np.argmax(pt, axis=1))在sklearn中,predict()与predict_proba()都可以返回预测结果,不同在于:predict:训练后返回预测结果,显示标签值,例如[2 3 2]
首先,大家要明白一点,Keras框架能使用的函数是predict和predict_classes;Sklearn中能使用的函数是predict和predict_proba。
1.predict函数:训练后返回一个概率值数组,此数组的大小为 n·k,第i行第j列上对应的数值代表模型对此样本属于某类标签的概率值,行和为1。例如预测结果为:[[0.66651809 0.53348191],代表预测样本的标签是0的概率为0.66651809,1的概率为0.53348191。
2.输出预测值很简单,只需要在括号内加入处理好的数据集就OK:
pt = predict(test)
输出结果过如下:
3.将预测值转换为0/1值,方法有两种,第一种是使用predict_classes直接输出标签值,第二种是用Numpy转换一下,具体操作如下:
print(np.argmax(pt, axis=1))
输出结果如下:
注意:
本人在实际操作时发现,使用predict_classes()会出现报错:'Model' object has no attribute 'predict_classes'。这是因为本系统在搭建模型时,先进行了神经网络的编写,之后使用model = Model(input=inp, output=outp)方法,此时这种综合起来的方法无法使用predict_classes(),所以需要配合numpy.argmax()方法将样本最大概率归属类别的值转化为样本的预测数组。
更多推荐










所有评论(0)