我有一个问题
我使用sklearn编写了下面的代码
self.model = SVM.OneClassSVM(gamma='scale', kernel='rbf').fit(training_set)classification_report(self.ground_truth_label, self.predicted_results, target_names=target_names)
然而,下面的图片显示F1分数(宏观)并不位于精确率和召回率之间
我知道f1 = (2 * 精确率 * 召回率) / (精确率 + 召回率)
为什么…?
感谢您的解释!
回答:
classification_report
给出的宏观平均f1-score
是您数据集中两个类别的f1分数的非加权平均,即
(0.12 + 0.67) / 2 ≈ 0.40
它并不是您可能认为的,使用精确率和召回率的宏观平均计算出的f1分数。
换句话说:
它是所有f1-scores
的平均值
而
它不是(精确率和召回率)平均值的f1-score