我正在尝试使用Keras来实现神经网络,该问题涉及多标签分类。我知道解决该问题的一种方法是将其转换为几个二进制分类问题。我已经实现了其中之一,但是不确定如何继续进行其他工作,主要是如何将它们结合起来?我的数据集有5个输入变量和5个标签。通常,单个数据样本将具有1-2个标签。很少有两个以上的标签。
这是我的代码(感谢machinelearningmastery.com):
<input id='test'/>
非常感谢任何能给我一些指导的人。我环顾四周,但找不到具体的例子。
答案 0 :(得分:2)
您指的是多标签分类的one-versus-all或one-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]
。