如何理解 F1 Score 与 ROC AUC

两者都是分类评估模型

F1 Score概念

基础概念

  • TP,True Positive
  • FP,False Positive
  • TN,True Negative
  • FN,False Negative

Metrics概念

  • precision = TP / (TP + FP)
  • recall = TP / (TP + FN)
  • accuracy = (TP + TN) / (TP + FP + TN + FN)
  • F1 Score = 2*P*R/(P+R),其中P和R分别为 precision 和 recall

F1 score被定义为 precision 和 recall 的调和平均数

ROC AUC 概念

基础概念

  • TPR = TP/(TP+FN) # 真正例率,等价于recall
  • FPR = FP/(TN+FP) # 假正例率

ROC曲线的横轴是FPR,纵轴是TPR

Questions

为什么不直接使用accuracy?

在某些问题中存在“宁可错杀一千也不能放过一个”的问题,比如疾病诊断。也就是说单独的分类准确性无法被信任以选择表现良好的模型。

既然已经这么多标准,为什么还要使用ROC和AUC呢?

因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变换的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现样本类不平衡,即正负样本比例差距较大,而且测试数据中的正负样本也可能随着时间变化。


分类模型评估

指标 描述 Scikit-learn函数
Precision 精准度 from sklearn.metrics import precision_score
Recall 召回率 from sklearn.metrics import recall_score
F1 F1值 from sklearn.metrics import f1_score
Confusion Matrix 混淆矩阵 from sklearn.metrics import confusion_matrix
ROC ROC曲线 from sklearn.metrics import roc
AUC ROC曲线下的面积 from sklearn.metrics import auc

回归模型评估

指标 描述 Scikit-learn函数
Mean Square Error (MSE, RMSE) 平均方差 from sklearn.metrics import mean_squared_error
Absolute Error (MAE, RAE) 绝对误差 from sklearn.metrics import mean_absolute_error, median_absolute_error
R-Squared R平方值 from sklearn.metrics import r2_score

你可能感兴趣的:(如何理解 F1 Score 与 ROC AUC)