首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据Keras中的输出概率来区分它的真假?

如何根据Keras中的输出概率来区分它的真假?
EN

Stack Overflow用户
提问于 2020-01-08 02:27:06
回答 1查看 28关注 0票数 1

当我预测泰坦尼克号乘客是否幸存时,模型的输出是一个概率。我怎么能把它区分为0还是1?

这就是模型构造

代码语言:javascript
复制
inputs = keras.layers.Input(shape=(8,))
dropout = keras.layers.Dropout(0.2)(inputs)
hidden1 = keras.layers.Dense(40, activation=tf.nn.relu)(dropout)

hidden2 = keras.layers.Dense(30, activation=tf.nn.relu)(hidden1)

hidden3 = keras.layers.Dense(20, activation=tf.nn.relu)(hidden2)

out = keras.layers.Dense(1, activation=tf.nn.sigmoid)(hidden3)
mdl = keras.models.Model(inputs=inputs, outputs=out)

当我用经过训练的模型预测结果时,我得到的概率不是标签(0或1)。

代码语言:javascript
复制
res = model.predict(test_data)

问题:

如何将概率映射到标签(0或1)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-08 02:50:04

下面是将概率映射到离散类标签的两种方法:

方法1:当不需要阈值时,

代码语言:javascript
复制
predicted_class = round(res)     # rounds the probability value to 0 or 1

方法2:当需要为分类设置阈值时

代码语言:javascript
复制
predicted_class = 1 if res>0.5 else 0     # here threshold = 0.5 and can be fine-tuned based on the observed precision and recall scores
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59638610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档