首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Sparse_categorical_crossentropy与categorical_crossentropy (角角,准确性)

Sparse_categorical_crossentropy与categorical_crossentropy (角角,准确性)
EN

Data Science用户
提问于 2018-12-01 06:28:06
回答 2查看 60.2K关注 0票数 66

哪一种对准确性更好,还是它们是一样的?当然,如果使用categorical_crossentropy,则使用一种热编码,如果使用sparse_categorical_crossentropy,则编码为普通整数。另外,什么时候一个比另一个好呢?

EN

回答 2

Data Science用户

回答已采纳

发布于 2018-12-01 08:20:01

当类是相互排斥的(例如,当每个样本完全属于一个类时),使用稀疏的分类交叉熵;当一个样本可以有多个类或标签时,使用分类交叉熵是软概率(如0.5、0.3、0.2)。

分类交叉熵的公式(S -样本,C-类,s \in c -样本属于C类)是:

-\frac{1}{N} \sum_{s\in S} \sum_{c \in C} 1_{s\in c} log {p(s \in c)}

对于类是排他性的情况,您不需要对它们进行求和-对于每个示例,只有非零值才是真正的类c的-log p(s \in c)

这样可以节省时间和内存。假设有10000个类是相互排斥的--每个样本只需要一个日志,而不是10000个,只是一个整数而不是10000个浮动。

公式在这两种情况下是相同的,所以不应该影响准确性。

票数 65
EN

Data Science用户

发布于 2019-07-19 09:32:49

简单地说,

的答案是

如果你的目标是一个热编码,使用categorical_crossentropy.一种热编码的例子:

代码语言:javascript
运行
复制
[1,0,0]
[0,1,0] 
[0,0,1]

但是,如果目标是整数,则使用sparse_categorical_crossentropy。整数编码示例(为了完成):

代码语言:javascript
运行
复制
1
2
3
票数 38
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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