0%

机器学习笔记——性能度量/评价指标

衡量模型泛化能力的评价标准是性能度量(评价指标)

不同的应用有着不同的目标,不同的评价指标

准确率(accuracy)是最常见的一种评价指标。但是准确率越高,模型就越好么?假设,在1000个样本中,有999个正样本,1个负样本(不均衡数据集) 如果全部预测正样本,就可以得到准确率99.9%!这样的场景有:信用卡欺诈检测,离职员工检测等。有些任务更关心的是某个类的准确率,而非整体的准确率。

回归模型中常用的评价指标(损失函数)

  • sklearn.metrics.r2_score() R2决定系数
  • sklearn.metrics.mean_absolute_error() MAE平均绝对误差
  • sklearn.metrics.mean_squared_error() MSE均方误差
  • np.sqrt(metrics.mean_squared_error()) RMSE均方根误差
  • sklearn.metrics.mean_absolute_percentage_error() MAPE平均绝对百分比误差
  • sklearn.metrics.median_absolute_error() 中值绝对误差

更多评价指标:http://scikit-learn.org/stable/modules/model_evaluation.html

分类模型评价指标

错误率和精度

分类错误的样本数占样本总数的比例称为“错误率

精度=1-错误率。

  • 真正例(TP),预测值是1,真实值是1。被正确分类的正例样本。
  • 假正例(FP),预测值是1,但真实值是0。
  • 真反例(TN),预测值是0,真实值是0。
  • 假反例(FN),预测值是0,但真实值是1。

  • TPR(Recall,查全率/召回率):TP/(TP + FN)。在所有实际值为1的样本中,被预测为1的比例。
  • Precision(查准率):TP/(TP + FP)。在所有预测值为1的样本中,实际值为1的比例。
  • FPR:FP/(TN+FP),在所有实际值是0的样本中,被预测为1的比例。
F1值

将查全率和查准率用一个数值表示:

  • sklearn.metrics中包含常用的评价指标

    • accuracy_score
    • precision_score
    • recall_score
    • f1_score
Precision-Recall Curve(PR曲线)
  • x轴:recall,y轴:precision(可交换)
  • 右上角是“最理想”的点,precision=1.0,recall=1.0
  • sklearn.metrics.precision_recall_curve()

Receiver Operating Characteristic Curve(ROC曲线)
  • x轴:FPR,y轴:TPR
  • 左上角是“最理想”的点,FPR=0.0,TPR=1.0
  • sklearn.metrics.roc_curve()

AUC的值就是ROC曲线下的面积:

  • AUC在0~1之间。
  • 0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
  • AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。
  • AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。
混淆矩阵(confusion matrix)
  • 可用于多分类模型的评价
  • sklearn.metrics.confusion_matrix()

天生我材必有用,千金散尽还复来~
  • 本文作者: XTLei
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
-------------本文结束感谢您的阅读-------------