One-Class SVM:精确率、召回率和 F1

One-Class SVM: Precision, recall, and F1

我有一个问题

我使用 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 score (Macro)并不位于precision和recall之间

我知道 f1 = (2 * precision * recall) / (precision + recall)

为什么...?

感谢您的解释!

classification_report 给出的宏观平均值 f1-score 是数据集中两个 类 的 f1 分数的未加权平均值,即

(0.12 + 0.67) / 2 ≈ 0.40

它不是您所想的那样,是用精确率和召回率的宏观平均值计算的 f1 分数。


换句话说:

它是所有f1-scores

的平均值

它是不是(精度和召回率)平均值f1-score