我有一个 scikit-learn 模型,它简化了一点,如下所示:
clf1 = RandomForestClassifier()
clf1.fit(data_training, non_binary_labels_training)
prediction1 = clf1.predict(data_testing)
clf2 = RandomForestClassifier()
binary_labels = label_binarize(non_binary_labels_training, ["a", "b", "c"])
clf2.fit(data_training, binary_labels)
prediction2 = clf2.predict(data_testing)
f1_score1(non_binary_labels_testing, prediction1))
f1_score2(binary_labels_testing, prediction2))
现在,f1_score1
总是比f1_score2
。换句话说,多类标签比二元标签(从相同的多类标签生成)得分更高。有什么原因吗?这是预期的吗?
我有大约 70 个训练和测试文件和 36 个类(不是上面示例中的三个)。