我正在使用这个数据集https://www.kaggle.com/c/sf-crime来预测使用 keras 的犯罪事件。我已经使用 pd.get_dummies 对类别进行了编码,然后将其用作验证数据。起初,我尝试使用 categorical_crossentropy 和 adam 作为损失函数,但结果返回的 acc 非常差,接近 0.3 和大约 2.7 的损失。所以我尝试通过使用 binary_crossentropy 来尝试不同的熵。结果似乎被夸大了,acc 高于 0.97,而损失在第一个 epoch 时小于 0.1。我还为每一层提供了 0.3 的 dropout。那么哪种交叉熵更准确或更好地用于这种情况,哪种分类是多标签或多类?
我必须使用哪种损失交叉熵?
数据挖掘
深度学习
喀拉斯
多类分类
多标签分类
准确性
2021-09-22 07:25:05
1个回答
哪种分类是多标签或多类?
如果我们看一下kaggle 比赛页面上的数据面板:
类别 - 犯罪事件的类别(仅在 train.csv 中)。这是您要预测的目标变量。
我们试图预测的目标是犯罪的类别(可以取多个值),所以这回答了你的问题:问题是多类的。
那么对于这种情况,哪种交叉熵更准确或更好用呢?
keras 中有三种主要类型的交叉熵:
根据您的问题,我假设您认为不同类型的交叉熵是可以互换的。事实并非如此。您应该根据您的问题和数据编码方式来选择交叉熵。
在您的情况下,由于您有一个多类问题并且您声明您已经使用pandas.get_dummies()
,它对您的数据进行实时编码,您应该使用分类交叉熵而不是别的!