小编Ray*_*Ray的帖子

Keras多类预测输出仅限于一类

我构建了一个具有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)
Run Code Online (Sandbox Code Playgroud)

neural-network keras tensorflow

6
推荐指数
1
解决办法
970
查看次数

标签 统计

keras ×1

neural-network ×1

tensorflow ×1