【发布时间】:2017-08-27 16:15:02
【问题描述】:
我构建了一个包含 35000 个输入样本和 20 个预测变量的顺序 keras 模型,测试数据输出类分布为:
- Class_0 = 5.6%
- Class_1 = 7.7%
- Class_2 = 35.6%
- Class_3 = 45.7%
- Class_4 = 5.4%
利用 (np_utils.to_categorical) 将输出转换为二进制类矩阵后,训练准确度约为 54%,当我对测试数据(15000 个样本)进行模型拟合时,所有预测 (100%) 恰好是相同的属于class_3“训练输出中出现次数最多”的类,这种偏差的原因是什么,并且对其他类没有单一的预测?如何使模型对预测更少的类别敏感并提高准确率,尤其是在训练数据的并发度较低(例如 1 - 3%)的情况下。
model = Sequential()
model.add(Dense(40, input_dim=20, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(10, activation='relu'))
model.add(Dense(5, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
model.fit(X, Y, epochs=500, verbose=1)
【问题讨论】:
标签: tensorflow neural-network keras