ng机器学习视频笔记——机器学习系统调试(cv查准率与召回率等)

lin_h lin_h     2022-10-13     500

关键词:

ng机器学习视频笔记(八)

——机器学习系统调试(cv、查准率与召回率等)

 (转载请附上本文链接——linhxx)

 

一、样本集使用方案

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越大的表示算法越优秀。

 

——written by linhxx

 

更多最新文章,欢迎关注微信公众号“决胜机器学习”,或扫描右边二维码。

ng机器学习视频笔记——logistic回归

ng机器学习视频笔记(四)——logistic回归 (转载请附上本文链接——linhxx) 一、概述1、基本概念        logistic回归(logisticregression),是一个分类(classification)算法(注意不是回归算法,... 查看详情

ng机器学习视频笔记(十四)——推荐系统基础理论

ng机器学习视频笔记(十三)——推荐系统基础理论 (转载请附上本文链接——linhxx) 一、概述        推荐系统(recommendersystem),作为机器学习的应用之一,在各大app中都有应用。这里以... 查看详情

ng机器学习视频笔记——svm理论基础

ng机器学习视频笔记(九)——SVM理论基础 (转载请附上本文链接——linhxx) 一、概述        支持向量机(supportvectormachine,SVM),是一种分类算法,也是属于监督学习的一种。其原理和logis... 查看详情

ng机器学习视频笔记——k-均值算法理论

ng机器学习视频笔记(十一)——K-均值算法理论  (转载请附上本文链接——linhxx) 一、概述        K均值(K-Means)算法,是一种无监督学习(Unsupervisedlearning)算法,其核心是聚类(Clus... 查看详情

ng机器学习视频笔记——神经网络基础

ng机器学习视频笔记(六)——神经网络基础 (转载请附上本文链接——linhxx)  一、概述        神经网络,可以理解为输入的内容,经过一系列的内部的处理,得到输出的假设函数。简... 查看详情

ng机器学习视频笔记(十三)——异常检测与高斯密度估计

ng机器学习视频笔记(十三)——异常检测与高斯密度估计  (转载请附上本文链接——linhxx) 一、概述        异常检测(anomalydetection),主要用于检查对于某些场景下,是否存在异常内... 查看详情

ng机器学习视频笔记——过拟合与正则化

ng机器学习视频笔记(五)——过拟合与正则化 (转载请附上本文链接——linhxx) 一、过拟合和欠拟合1、概念        当针对样本集和特征值,进行预测的时候,推导θ、梯度下降等,都在一... 查看详情

ng机器学习视频笔记——线性回归代价函数梯度下降基础

ng机器学习视频笔记(一)——线性回归、代价函数、梯度下降基础 (转载请附上本文链接——linhxx) 一、线性回归        线性回归是监督学习中的重要算法,其主要目的在于用一个函数表... 查看详情

ng机器学习视频笔记——svm进一步认识

ng机器学习视频笔记(十)——SVM进一步认识 (转载请附上本文链接——linhxx) 一、概念        svm称为支持向量,所谓的支持向量,就是在后面划分最大间距的时候,参与运算的向量,且最... 查看详情

ng机器学习视频笔记——pca实现样本特征降维

ng机器学习视频笔记(十二)——PCA实现样本特征降维 (转载请附上本文链接——linhxx)  一、概述        所谓降维(dimensionalityreduction),即降低样本的特征的数量,例如样本有10个特征... 查看详情

ng机器学习视频笔记——梯度下降算法解释以及求解θ

ng机器学习视频笔记(二)——梯度下降算法解释以及求解θ  (转载请附上本文链接——linhxx)   一、解释梯度算法      梯度算法公式以及简化的代价函数图,如上图所示。   ... 查看详情

ng第十一课:机器学习系统的设计(machinelearningsystemdesign)

...么      在接下来的视频将谈到机器学习系统的设计。这些视频将谈及在设计复杂的机器学习系统时,将遇到的主要问题。同时会试着给出一些关于 查看详情

ng机器学习视频笔记——线性回归的多变量特征缩放标准方程法

ng机器学习视频笔记(三)——线性回归的多变量、特征缩放、标准方程法 (转载请附上本文链接——linhxx) 一、多变量        当有n个特征值,m个变量时,h(x)=θ0+θ1x1+θ2x2…+θnxn,其中可以... 查看详情

ng机器学习视频笔记——神经网络的代价函数反向传播梯度检验随机初始化

ng机器学习视频笔记(七)——神经网络的代价函数、反向传播、梯度检验、随机初始化 (转载请附上本文链接——linhxx) 一、代价函数        同其他算法一样,为了获得最优化的神经网络... 查看详情

机器学习笔记

机器学习笔记(二)文章目录机器学习笔记(二)调参性能度量最常见的性能度量查准率/查全率/F1ROC与AUC代价敏感错误率以及代价曲线比较检验假设检验交叉检验t验证McNemar检验Friedman检验与Nemenyi后续检验偏差与... 查看详情

机器学习笔记

机器学习笔记(二)文章目录机器学习笔记(二)调参性能度量最常见的性能度量查准率/查全率/F1ROC与AUC代价敏感错误率以及代价曲线比较检验假设检验交叉检验t验证McNemar检验Friedman检验与Nemenyi后续检验偏差与... 查看详情

机器学习系统构建

看了NG视频关于机器学习系统构建的建议,感觉非常有用,记录下来作为听课笔记。首先是机器学习系统构建的流程:NG推荐方法:首先高速实现一个可能并非非常完美的算法系统。进行交叉验证,画出学习曲线去学习算法问题... 查看详情

斯坦福机器学习视频笔记week6关于机器学习的建议adviceforapplyingmachinelearning

...做最大的改进。我们将讨论如何理解具有多个部分的机器学习系统的性能,以及如何处理偏斜数据。EvaluatingaHypothesis设想当你训练的模型对预测数据有很大偏差的时候,接下来你会选择怎么做?这个需要花时间去实现,但是对你... 查看详情