keras:predict_proba(),predict()和predict_classes()问题

时间:2017-05-14 11:38:59

标签: tensorflow deep-learning keras probability prediction

在我的keras模型的预测阶段,当我打印出预测值和类时,我在predict_proba()和predict()中给出了不同的概率。 此外,predict_classes()的输出与概率不对应。 以下代码示例和打印输出示例:

代码:

p = pd.read_csv("test.csv", header=None)
p = np.reshape(p.values, (50, seq_length))
for i in range(len(p)):
    p[i] = scaler.fit_transform(p[i])

p = np.reshape(p, (50, seq_length, 1))
model.predict(p, batch_size=50)
model.predict_classes(p, batch_size=50)
model.predict_on_batch(p)
model.predict_proba(p, batch_size=50)
for i in zip(model.predict_proba(p, batch_size=50), model.predict_classes(p, batch_size=50), model.predict(p, batch_size=50)):
    print("model.predict_proba", "--", i[0], "model.predict","--", i[2], "predict_clases", "--", i[1])

具有不同predict_proba()predict()

的输出示例
model.predict_proba -- [ 0.18768159  0.81231844] model.predict -- [ 0.18982948  0.81017047] predict_classes -- 1
model.predict_proba -- [ 0.55918539  0.4408147 ] model.predict -- [ 0.78916383  0.2108362 ] predict_classes -- 1

最后一个也是最高概率对应于指数= 0但预测类为1的情况

另一个例子。索引= 0的概率最高,但预测类别为1

model.predict_proba -- [ 0.55918539  0.4408147 ] model.predict -- [ 0.78916383  0.2108362 ] predict_classes -- 1  

但大多数情况如下,其中predict_proba()和predict()显示相同的值,预测类正确对应于概率最高的指数

model.predict_proba -- [ 0.39802018  0.60197979] model.predict -- [ 0.39802018  0.60197979] predict_classes -- 1 

也许我不明白如何阅读它? 感谢

0 个答案:

没有答案