首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解释MLP输出

解释MLP输出
EN

Data Science用户
提问于 2019-02-15 00:29:55
回答 1查看 341关注 0票数 2

我刚用Python写了一个MLP。经过训练后,我传入一些测试数据以查看结果,并在输出处得到一个十进制数数组,而不是期望的二进制输出。

例如,我将获得[0.43, 0.56, 0.1, 0.8],而不是[0, 1, 0,1]

我怎样才能做到这一点呢?

谢谢

利亚姆

EN

回答 1

Data Science用户

回答已采纳

发布于 2020-05-25 00:51:32

这看起来像一个模型的例子,输出在类别1中的概率,然后由你来决定截止点。

您给出了一个(0.43, 0.56, 0.1, 0.8)输出的示例。如果您的截止值是0.5,那么您将得到(0, 1, 0, 1)的分类。如果您在0.2设置了截止点(这是允许的),那么您将得到(1,1,1,0)的分类。在您使用的任何软件中都应该有这样的方法。如果所有这些都失败了,您可以循环遍历概率值的向量,并生成一个新的向量,其中包含一些关于该值是否超过阈值和值是否超过阈值的条件语句。我会给出一些伪码。

代码语言:javascript
复制
for value...
  if value>threshold
    new value =1
  else
    new value =0

这导致了ROC曲线和曲线下的面积,在这里,模型在所有断口上都有其精度评估。也许更好的方法是使用严格正确的得分规则。您可以在交叉验证堆栈( stats.stackexchange.com )上阅读更多有关此问题的信息。请留意弗兰克·哈雷尔()关于这一主题的帖子。无耻地,我将提到我的一个帖子,在那里我有点挑战这个想法:https://stats.stackexchange.com/questions/464636/proper-scoring-rule-when-there-is-a-decision-to-make-e-g-spam-vs-ham-email

松散地说,严格正确的评分规则会惩罚模型对其预测缺乏信心。输出在0.56第一类中的概率并不像0.99那样好。把第一个想象成“当然,我猜是第一类”,而第二个是“哦,是的,它是第一类!”

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/45598

复制
相关文章

相似问题

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