深度学习分类类别不平衡_Keras中类不平衡多类分类器的损失函数
我试图将深度学习应用到一个目标班(10万、500万、90万、30万)之间的高班级不平衡的多班级分类问题上。我想写一个自定义丢失函数。
这是我目前的型号:
model = Sequential()
model.add(LSTM(
units=10, # number of units returned by LSTM
return_sequences=True,
input_shape=(timestamps,nb_features),
dropout=0.2,
recurrent_dropout=0.2
)
)
model.add(TimeDistributed(Dense(1)))
model.add(Dropout(0.2))
model.add(Flatten())
model.add(Dense(units=nb_classes,
activation='softmax'))
model.compile(loss="categorical_crossentropy",
metrics = ['accuracy'],
optimizer='adadelta')
不幸的是,所有预测都属于1类!!!!模型总是预测任何输入为1…
感谢任何关于我如何解决这个任务的建议。
更新:
输入数据的尺寸:
94981 train sequences
29494 test sequences
X_train shape: (94981, 20, 18)
X_test shape: (29494, 20, 18)
y_train shape: (94981, 4)
y_test shape: (29494, 4)
基本上在列车数据中,我有94981个样本。每个样本包含一个20个时间戳的序列。共有18个功能。
目标等级(10K、500K、90K、30K)之间的不平衡就是一个例子。我在我的真实数据集中有相似的比例。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)