机器学习模型评估中的常用指标
2018-01-14 14:32
288 查看
一个比较推荐的解决机器学习问题的步骤是:首先以一个简易的算法开始,快速的进行实现,并在交叉验证集上进行验证;然后画出它的学习曲线,通过学习曲线确定是否更多的数据或者更多的特征会对模型的优化有帮助。接着人为地检测交叉验证集中被错误的进行分类的或者预测的样本的共同特征,从实际入手对模型进行调整,即Error Analysis,不断调整并验证在交叉验证集上的误差,寻找最优的结果,优化模型。
在机器学习中,当完成了一个模型的训练后,如何对当前模型的优劣程度做一个评估呢?下面就需要一些业界公认的指标来对模型进行评估。
首先从一个例子开始:对于一个分布非常不均匀的数据集(skewed class),比如正样本(y=1)占比为1%,负样本(y=0)占比为99%,如果此时采用正确率来进行模型优劣的估计,那么如果采用比如逻辑回归等常见分类算法,可能达到98%的正确率。但是如果设计一个“模型”,始终预测结果为负样本,那么这个模型的正确率能够达到99%,从这个指标来看它甚至比经过机器学习算法学习得到的模型表现还好。但是一个显而易见的事实是这个简单的“模型”在测试集上具有非常不佳的表现,因为它本质上并没有进行预测。因此需要别的一些参数来进行模型评估。
下图是常见指标组成的混淆矩阵,其中Actual class代表样本实际应该所处的分类,Predicted class代表模型预测的结果。
根据上面的混淆矩阵,有了下面几个指标的定义:
Precision = (True Positive)/(True Positive + False Positive)
Recall = (True Positive)/(True Positive + False Negative)
F1 score = 2 * (Precision * Recall)/(Precision + Recall)
Precision和Recall二者都很高,则表明这个模型非常好。需要注意的是,对于一个分类模型往往我们都会设置一个阈值threshold;大于这个阈值分类为正样本,小于这个阈值分类为负样本,阈值的确定往往也对应着不同的Precision和Recall。一般来说默认的阈值我0.5,当我们降低threshold时,Precision会变小,Recall会变大;当增大threshold时,Precision会变大,Recall会变小。那么应该如何权衡一个最优的Precision和Recall,来作为最优的模型指标呢?
这时引入了F1 score这个指标,它的公式如上面所示,当Precision或者Recall都非常小的时候,F1 score都会非常小,只有当Precision和Recall都为一个比较高的水平的时候,才可以得到一个比较高的F1 score。
在机器学习中,当完成了一个模型的训练后,如何对当前模型的优劣程度做一个评估呢?下面就需要一些业界公认的指标来对模型进行评估。
首先从一个例子开始:对于一个分布非常不均匀的数据集(skewed class),比如正样本(y=1)占比为1%,负样本(y=0)占比为99%,如果此时采用正确率来进行模型优劣的估计,那么如果采用比如逻辑回归等常见分类算法,可能达到98%的正确率。但是如果设计一个“模型”,始终预测结果为负样本,那么这个模型的正确率能够达到99%,从这个指标来看它甚至比经过机器学习算法学习得到的模型表现还好。但是一个显而易见的事实是这个简单的“模型”在测试集上具有非常不佳的表现,因为它本质上并没有进行预测。因此需要别的一些参数来进行模型评估。
下图是常见指标组成的混淆矩阵,其中Actual class代表样本实际应该所处的分类,Predicted class代表模型预测的结果。
根据上面的混淆矩阵,有了下面几个指标的定义:
Precision = (True Positive)/(True Positive + False Positive)
Recall = (True Positive)/(True Positive + False Negative)
F1 score = 2 * (Precision * Recall)/(Precision + Recall)
Precision和Recall二者都很高,则表明这个模型非常好。需要注意的是,对于一个分类模型往往我们都会设置一个阈值threshold;大于这个阈值分类为正样本,小于这个阈值分类为负样本,阈值的确定往往也对应着不同的Precision和Recall。一般来说默认的阈值我0.5,当我们降低threshold时,Precision会变小,Recall会变大;当增大threshold时,Precision会变大,Recall会变小。那么应该如何权衡一个最优的Precision和Recall,来作为最优的模型指标呢?
这时引入了F1 score这个指标,它的公式如上面所示,当Precision或者Recall都非常小的时候,F1 score都会非常小,只有当Precision和Recall都为一个比较高的水平的时候,才可以得到一个比较高的F1 score。
相关文章推荐
- 机器学习中评估算法的常用评价指标
- 学习路线:入门机器学习基本概念之机器学习中常用评估指标汇总
- 【深度学习】常用的模型评估指标
- 机器学习分类算法常用评价指标
- 机器学习之评估指标
- 机器学习 基本概念,常用经典模型
- 机器学习实战:模型评估和优化
- 机器学习 --- 分类算法模型评估
- 机器学习第一周(二)--模型引入
- 机器学习_统计模型之(一)贝叶斯公式
- 苹果机器学习博客姗姗来迟:使用改进的生成对抗模型,提高图像真实性,降低图像的标记成本
- 评估一个预测模型性能通常都有那些指标
- 常用的一些算法模型评价指标
- Python机器学习应用 | 基本分类模型
- 机器学习学习笔记--如何在AWS上完成模型训练
- 分布式缓存技术redis学习系列(二)——详细讲解redis数据结构(内存模型)以及常用命令
- 主流机器学习模型模板代码+经验分享[xgb, lgb, Keras, LR]
- 【机器学习基础】理解为什么机器可以学习1——PAC学习模型
- 学习笔记第十篇之安全评估模型设计
- 机器学习各类工具weka、scikit-learn等各项指标的对比