查准率 (Precision),召回率 (Recall)
一、先搞懂四个基础概念混淆矩阵表格预测为正Positive预测为负Negative实际为正Positive✅ TP真正例预测对了是正例❌ FN假反例漏判了实际是正例但预测为负实际为负Negative❌ FP假正例误判了实际是负例但预测为正✅ TN真反例预测对了是负例二、查准率 vs 召回率表格指标公式通俗含义核心问题查准率 (Precision)TPTPFPTPFPTP你预测为正的样本里真正是正例的比例预测准不准怕不怕误报召回率 (Recall)TPTPFNTPFNTP所有实际为正的样本里被你成功找出来的比例找得全不全怕不怕漏报三、生活化类比垃圾邮件分类表格场景查准率高召回率高含义被你标记为垃圾邮件的几乎全是真垃圾所有真垃圾邮件几乎全被你抓出来了代价可能漏掉一些垃圾邮件但不会误删正常邮件可能误伤正常邮件但不会漏掉垃圾邮件适用重要邮件不能误删如工作邮件宁可错杀不可放过如诈骗短信拦截四、F1分数综合指标查准率和召回率通常此消彼长为了综合评估用调和平均数F12×Precision×RecallPrecisionRecallF12×PrecisionRecallPrecision×RecallF1 越接近 1说明查准率和召回率都高模型整体好。F1 越接近 0说明至少有一个指标很差。五、Sklearn 代码实现python from sklearn.metrics import precision_score, recall_score, f1_score, classification_report # y_true: 真实标签 (0 或 1) # y_pred: 模型预测标签 (0 或 1) precision precision_score(y_true, y_pred) recall recall_score(y_true, y_pred) f1 f1_score(y_true, y_pred) print(f查准率 (Precision): {precision:.4f}) print(f召回率 (Recall): {recall:.4f}) print(fF1 分数: {f1:.4f}) # 一次性输出所有指标推荐 print(classification_report(y_true, y_pred))六、与你之前房价预测的关系你之前做的是回归问题预测房价具体数值用的是 R²、MSE、RMSE。查准率和召回率是分类问题预测类别如是/否、垃圾/正常的评估指标。如果你把房价预测改成分类问题比如预测房价是否高于中位数高/低就需要用查准率和召回率来评估了。总结一句话查准率 预测为正的里有多少是真的 → 怕误报召回率 实际为正的里有多少被找到 → 怕漏报F1 两者的综合平衡 → 选模型时优先看这个