【问题标题】:Testing Loss won't improve when doing Binary Classification using Keras使用 Keras 进行二元分类时,测试损失不会改善
【发布时间】:2018-11-05 10:42:42
【问题描述】:

我有一个包含 65 个特征和 2 个标签的数据集,并且想要执行二进制分类。

问题是测试损失不会提高,测试精度也不会提高。

训练损失与测试损失


训练准确性与测试准确性


代码

model = Sequential()
model = Sequential()
model.add(Dense(10, activation='relu', input_dim=n_features))
model.add(Dropout(0.5))
model.add(Dense(2, activation='softmax'))
model.compile(loss='binary_crossentropy', optimizer='adam',metrics=['acc'])


数据集高度不平衡 (1:30)
如何改进我的模型?

【问题讨论】:

    标签: python machine-learning keras


    【解决方案1】:

    Softmax 和二元交叉熵不是正确的匹配,要正确使用 softmax,您应该使用 categorical_crossentropy 损失。如果您想继续使用二元交叉熵,您应该在输出端使用 sigmoid 激活,使用单个神经元(而不是两个)。

    【讨论】:

    • 将尝试这个并相应地将这个答案标记为正确的答案。
    • 你是个天才!如果您可以分享链接以了解为什么 softmax+categorical 不是一个好的组合,那就太好了
    猜你喜欢
    • 1970-01-01
    • 2019-10-05
    • 2017-02-08
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多