两者都是分类评估模型
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 |