🎯 学习目标

  • 掌握分类任务的主要评估指标
  • 理解回归任务的评估方法
  • 学会处理类别不平衡问题
  • 了解如何选择合适的指标

📊 混淆矩阵

分类评估的基础

预测正类 预测负类
实际正类 TP (真阳性) FN (假阴性)
实际负类 FP (假阳性) TN (真阴性)
from sklearn.metrics import confusion_matrix y_pred = model.predict(X_test) cm = confusion_matrix(y_test, y_pred) print(cm)

📈 分类指标详解

准确率 (Accuracy)

Accuracy = (TP + TN) / (TP + TN + FP + FN)

所有预测正确的比例。在类别不平衡时可能误导。

精确率 (Precision)

Precision = TP / (TP + FP)

预测为正的样本中真正为正的比例。关注误报。

召回率 (Recall)

Recall = TP / (TP + FN)

实际为正的样本中被正确预测的比例。关注漏报。

F1分数

F1 = 2 × (Precision × Recall) / (Precision + Recall)

精确率和召回率的调和平均。综合指标。

📉 回归指标

from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score # 均方误差 (MSE) mse = mean_squared_error(y_test, y_pred) # 均方根误差 (RMSE) rmse = np.sqrt(mse) # 平均绝对误差 (MAE) mae = mean_absolute_error(y_test, y_pred) # R² 决定系数 (0-1, 越大越好) r2 = r2_score(y_test, y_pred) print(f"MSE: {mse:.4f}") print(f"RMSE: {rmse:.4f}") print(f"MAE: {mae:.4f}") print(f"R²: {r2:.4f}")
💡
指标选择建议
  • 垃圾邮件检测:高精确率(避免把正常邮件判为垃圾)
  • 疾病诊断:高召回率(避免漏诊)
  • 类别不平衡:使用F1或AUC,避免准确率

📝 本节小结

  • • 混淆矩阵是分类评估的基础
  • • 准确率在不平衡数据中可能误导
  • • 精确率和召回率往往需要权衡
  • • 选择指标要考虑业务场景