我正在尝试使用顺序keras模型来解决分类问题。
在Keras,model.fit
要求训练两个numpy
数组 - data
,labels
。
如果数据的每一行都有一个相应的标签,则此方法可以正常工作。
但是,对于我的使用,对于给定的数据点,我可以有多个分类。
这可以在keras中处理吗?如果是这样,我的数据和标签numpy数组的格式应该是什么?
示例输入可能如下所示:
data[0] = ['What is the colour of the shirt?']
#This text is converted to a vector using a 300 dimension GloVe embedding layer and then processed.
label[0] = ['Red','Orange','Brown']
我要求我的模型进行训练,以便任何三个类对于给出的问题都是正确的。
任何帮助都会很棒。
答案 0 :(得分:1)
您可以使用MultiLabelBinarizer执行此操作:
from sklearn.preprocessing import MultiLabelBinarizer
lb = MultiLabelBinarizer()
label = lb.fit_transform(label)
您可以使用" categorical_crossentropy'将标签传递给fit函数。损失。
如果你想用keras做的话:
from keras.utils import to_categorical
import numpy as np
unique_labels, new_labels = np.unique(label, return_inverse=True)
to_categorical(new_labels, num_classes=None)