机器学习入门之ng机器学习视频笔记(八) ——机器学习系统调试(cv、查准率与召回率等)
小标 2018-09-29 来源 : 阅读 1161 评论 0

摘要:本文主要向大家介绍了机器学习入门之ng机器学习视频笔记(八) ——机器学习系统调试(cv、查准率与召回率等),通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

本文主要向大家介绍了机器学习入门之ng机器学习视频笔记(八)  ——机器学习系统调试(cv、查准率与召回率等),通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。


一、样本集使用方案
1、测试集
         为了验证系统设计的是否准确,通常需要预留10%-20%的样本集,作为测试集,校验模型的准确率。测试集也有其对应的代价函数,其代价函数与对应的训练集的代价函数形式上一样,区别在于此处不加上正则化项,另外带入的数据是预留作为测试集的样本集的数据,这部分数据是没有参与训练的数据。
 
2、交叉验证集(cross validation set,简称CV)
为了验证假设函数h(x)中,x的次数是否过高或者过低,即验证是否存在欠拟合与过拟合的情况,会从训练集中,再预留一部分数据,作为交叉验证集。
和测试集的区别 ,在于测试集是不可用参与模型设计的全过程,仅仅用于测试。交叉验证集,是在训练模型的时候,每次从训练集中取一些数据,作为验证假设函数是否正确的数据。然后换几个不同的x的次数,再换一批数据作为验证数据。最终得到一个代价函数最小的值,此时的x的次数即为最好的。
 
 
3、代价函数计算公式
         实际上,公式和原始的公式没有很大区别,仅仅区别在于输入的数据不同。
 
 
 
二、高偏差和高方差
1、x的次数
         绘制图像,纵轴是代价函数的值,横向是x的次数。会发现,x次数较小时,交叉验证和训练数据的代价函数都很大,此时既高方差(过拟合)又高偏差(欠拟合),模型非常不好。
随着x的次数增大,两者一起降低。当降到某个值,x次数再增加时,训练数据的代价函数会略微降低,但交叉验证的代价函数会显著升高,逐渐出现过拟合。
 
 
         从上图也可以观察到,高偏差:cv和训练的代价函数都很大;高方差:cv的代价函数很大,训练的代价函数很小。
2、正则化对方差和偏差的影响
         考虑正则化的时候,仅仅在计算权重θ的时候使用正则化,而在计算训练代价函数、交叉验证代价函数和测试代价函数的时候,不加入正则化项。
 
 
         观察上面的代价函数,对于λ,值太小则等同于没有使用正则化,此时训练集会很准确,但是交叉集误差会很大,此时属于过拟合。
         当λ增大 ,交叉验证的代价函数逐渐降低,训练的代价函数逐渐升高。当超过某个值,交叉验证的代价函数也会开始升高,此时即开始欠拟合。
         极端情况下,λ值非常大,则此时除了θ0,其他的θ都会约等于0,h(x)变成一条直线,欠拟合。
 
 
         对于λ选取,通常可以先从0开始,然后0.01、0.02、0.04…逐渐2倍的增大,直到确定一个最优的值。
 
三、学习曲线
         学习曲线(learning curve),也是一个衡量是否过拟合、欠拟合的工具。学习曲线是一种图形。其横坐标是训练集的数量,纵坐标是代价函数的值。
1、正常情况
         在没有过拟合和欠拟合时,随着训练数量的增加,cv和训练集的代价函数逐渐一致,且保持在一个不会很高的值。
 
 
2、高偏差(欠拟合)
         高偏差情况下,即x的次数太低,此时很快就无法用假设函数来表达训练集了,而训练集的数量再增加也没有很大的意义。
         此时,学习曲线上,很快cv和训练集就几乎相等了,且保持在一个很高的代价函数上。训练集无论怎么增大,基本这两个代价函数都不会变了。
         因此,学习曲线中,cv和训练集都保持的很高,而且数据集增大不会缓解,就表示很有可能欠拟合了。
 
 3、高方差(过拟合)
         高方差情况下,在数据集不够大的情况下,cv很大,训练集很小,两者差距非常大。随着训练集无限增大,逐渐cv和训练集会接近,且代价函数都比较小。
         因此,训练集增大对于过拟合有改善意义。
 
 
四、参数调整策略
         当训练模型的误差很大时,先画出学习曲线,确定是过拟合还是欠拟合,接着:
         过拟合:增加数据集样本、减少特征数、增加正则化参数λ;
         欠拟合:减少特征数、增加x的次数、减小正则化参数λ。
         对于神经网络,隐藏层少的神经网络,容易欠拟合,但是计算机计算量小;隐藏层多的神经网络,如果训练集不够多,有可能过拟合,同时计算量大。但是对于神经网络,通常建议层数多一些,层数越多效果往往越好。
 
五、误差分析
         误差分析有三种方式:精确度(accuracy)、查准率(precision)、召回率(recall)。
1、精确度
         精确度很容易知道,即精确度=预测正确数量/总预测数量。这是衡量模型是否估算正确的一个常用方法。
         但是,在一个特殊情况下,精确度无法衡量模型的好坏。
         考虑一种称为偏差类(skewed class)的情况,假设最终结果只有y=0或1,现在需要根据x预测y是否是1。例如y=1表示中彩票,由于中彩票的概率很低,因此假设在未知x的前提下,y=0的概率是99.95%,y=1的概率是0.05%。
         现在,如果根据特征值x来预测y=1,精确度是99%,即存在1%的误差。对于这种情况下,这个1%的误差其实非常大,因为其本身发生的概率才0.05%。
         为了弥补这个情况,则引入查准率和召回率的概念。
2、正例与反例
         为了明确查准率和召回率,需要先说正例和反例的概念,一共有四个名词:真正例(true positive,简称TP)、真反例(true negative,TN)、假正例(false positive)、假反例(false negative)。
         真正例TP,表示的是实际上是1,而且预测结果也为1。
         真反例TN,表示的是实际上是0,而且预测结果也为0。
         假正例FP,表示的是实际上是0,而预测结果是1。
         假反例FN,表示的是实际上是1,而预测结果是0。
         可以理解为,带“真”字的,表示预测结果是对的,即预测结果就是实际结果;带“假”的是预测结果错误的,即真正的结果和预测结果相反。
2、查准率
         查准率,表示的是真正例占所有预测结果是正例的比例,即查准率=TP/(TP+FP),其衡量的是算法的正确性。
3、召回率
         召回率,表示的是真正例占所有实际结果是正例的比例,即召回率=TP/(TP+FN),其衡量的是算法找出正确结果的能力。其中FN是假反例,也即实际上是正例。
 
 
4、关系
         查准率和召回率关系如下图所示:
 
 
         当一个算法的查准率很高,通常召回率就较低;反之亦然。考虑到logistic回归算法中,目前采用的是h(x)>=0.5时,认为y=1。
         如果将值调整为h(x)>=0.9时,y=1。即系统非常“保守”,只有在h(x)非常接近1的时候才会认为y=1,当h(x)=0.899时,虽然其和1也很接近,而且非常大的概率结果也是1,但是模型评估其还是0。此时,系统的查准率(衡量结果正确度)非常高,但是其召回率会非常低(找出正确结果的能力)。
         同理,如果调整成h(x)>=0.1时,y=1。这时候的系统非常的“大胆”,只要有一丝的可能,其都认为结果是1,虽然0.1离1还差了10倍。此时查准率会非常低,但是召回率会非常高(基本把所有可能都囊括了,肯定找出正确结果的能力很高,但是这个系统是没用的系统)。
         当若干算法,在同一个样本下,有不同的查准率和召回率时,通常有一个标准来确定哪个算法最优:F1=2PR/(P+R)。F1越大的表示算法越优秀。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程