【发布时间】:2020-09-16 12:15:00
【问题描述】:
我有multiclass multioutput classification(详情请参阅https://scikit-learn.org/stable/modules/multiclass.html)。换句话说,我的数据集如下所示。
node_name, timeseries_1, timeseries_2, label_1, label_2
node1, [1.2, ...], [1.8, ...], 0, 2
node2, [1.0, ...], [1.1, ...], 1, 1
node3, [1.9, ...], [1.2, ...], 0, 3
...
...
...
所以,我的label_1 可以是0 或1,而我的label_2 可以是0、1 或2。
我目前的代码如下。
def create_network():
model = Sequential()
model.add(LSTM(200, input_shape=(16,2)))
model.add(Dense(100))
model.add(Dropout(0.2))
model.add(Dense(3, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
return model
neural_network = KerasClassifier(build_fn=create_network, epochs=100, batch_size=100, verbose=0)
k_fold = StratifiedKFold(n_splits=10, shuffle=True, random_state=0)
scores = cross_validate(neural_network, my_features, label_data_encoded, cv=k_fold, scoring = ('accuracy', 'precision_weighted', 'recall_weighted', 'f1_weighted', 'roc_auc'))
我的问题如下。
- 由于我有两个标签(即
label_1和label_2),如何将这些标签适合lstm 模型?我必须做keras.utils.to_categorical(label_1, 2)和keras.utils.to_categorical(label_2, 3)之类的事情吗? - 如何更改模型以使其适合
multiclass multioutput classification?
如果需要,我很乐意提供更多详细信息。
【问题讨论】:
标签: python keras scikit-learn classification lstm