如何使用keras实现多标签分类神经网络

时间:2019-02-16 18:52:29

标签: keras neural-network multilabel-classification

我正在尝试使用Keras来实现神经网络,该问题涉及多标签分类。我知道解决该问题的一种方法是将其转换为几个二进制分类问题。我已经实现了其中之一,但是不确定如何继续进行其他工作,主要是如何将它们结合起来?我的数据集有5个输入变量和5个标签。通常,单个数据样本将具有1-2个标签。很少有两个以上的标签。

这是我的代码(感谢machinelearningmastery.com):

<input id='test'/>

非常感谢任何能给我一些指导的人。我环顾四周,但找不到具体的例子。

1 个答案:

答案 0 :(得分:2)

您指的是多标签分类的one-versus-allone-versus-one策略。但是,使用神经网络时,具有5个标签的多标签分类问题的最简单解决方案是使用具有5个输出节点的单个模型。与喀拉拉邦:

model = Sequential()
model.add(Dense(5, input_dim=5, kernel_initializer='normal', activation='relu'))
model.add(Dense(5, kernel_initializer='normal', activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='sgd')

您可以将训练标签提供为长度为5的二进制编码矢量。例如,对应于2类和3类的示例将具有标签[0 1 1 0 0]