在我的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
也许我不明白如何阅读它? 感谢