使用 Keras 进行二元分类时,测试损失不会改善

use*_*540 2 python machine-learning keras

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

问题是测试损失不会改善,测试精度也不会改善。

训练损失与测试损失

训练损失与测试损失


训练准确度与测试准确度
训练ACC与测试ACC


代码

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'])
Run Code Online (Sandbox Code Playgroud)


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

Mat*_*gro 5

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