我一直在尝试使用LSTM网络进行序列分类。这是我的模型:
model = Sequential()
model.add(LSTM(10, input_shape=(1, 30))) # returns a sequence of vectors of dimension 30
model.add(Dense(1))
model.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])
model.summary()
model.fit(X_train, y_train, batch_size = 400, epochs = 20, verbose = 1)
y_pred = model.predict(X_test)
print(precision_recall_fscore_support(y_test, y_pred.round()))
precision_recall_fscore_support的输出:
(阵列([0.,0.,0.5199002,0.5197487,0.,0 0.,0.](,阵列([0.,0.,0.62014302,0.38130374,0.,0 0.,0.](,阵列([0.,0.,0.56561448,0.43989032,0.,0.,0 0.,0.](,数组([0,0,48384,48384,0,0,0,0](
由于每个阵列具有两个非零得分,因此每个度量的准确分数是多少?输出不是为每个精度,召回和F得分度量的单个值吗?
sklearn.metrics.precision_recall_fscore_support
函数调用返回与每个度量相对应的4个数组的序列,每个数组记录了分类问题中每个标签的分数。(阅读此文档(
我假设您有一个7个标签分类问题,因此每个数组分数7个。0值表示您在这些标签上获得零精度/召回。