公司网站建设好处,彩票做网站,天眼查全国企业查询,WordPress添加下一篇Stanford机器学习—第六讲. 怎样选择机器学习方法、系统 误差来源 误差主要来自于偏差和方差。
数学上定义#xff1a; 通过covariate X 预测 Y #xff0c;我们假设存在如下关系#xff1a; Y f(X) ϵ 满足正态分布均值为0 方差σϵ 模型预测错误定义为#xff1a; …
Stanford机器学习—第六讲. 怎样选择机器学习方法、系统 误差来源 误差主要来自于偏差和方差。
数学上定义 通过covariate X 预测 Y 我们假设存在如下关系 Y f(X) ϵ 满足正态分布均值为0 方差σϵ 模型预测错误定义为 期望误差分解为三个非负项的和即本真噪音、bias和 variance。 https://en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff
本真噪音是任何学习算法在该学习目标上的期望误差的下界( 任何方法都克服不了的误差) bias 度量了某种学习算法的平均估计结果所能逼近学习目标的程度独立于训练样本的误差刻画了匹配的准确性和质量一个高的偏差意味着一个坏的匹配 variance 则度量了在面对同样规模的不同训练集时学习算法的估计结果发生变动的程度。相关于观测样本的误差刻画了一个学习算法的精确性和特定性一个高的方差意味着一个弱的匹配
MSEmean squared error可以拆分成bias和variance两部分 以分类任务为例均方误差MSEmean squared error
其中Y为x对应的真实类标f(x)为预测标号 则 泛化误差可分解为偏差、方差和噪声之和。 偏差度量了学习算法的期望预测与真实结果的偏离程度即刻画了学习算法本身的拟合能力强调的是准度。 方差度量了同样大小的训练集的变动所导致的学习性能的变化即刻画了数据扰动所造成的影响强调的是稳定性。 噪声则表达了在当前任务上任何学习算法所达到的期望泛化误差的下界即刻画了学习问题本身的难度。 偏差-方差分解说明泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。给定学习任务为了取得好的泛化性能则需使偏差较小既能够充分拟合数据并且使方差较小即使得数据扰动产生的影响小。
Error Bias Variance Error反映的是整个模型的准确度Bias反映的是模型在样本上的输出与真实值之间的误差即模型本身的精准度Variance反映的是模型每一次输出结果与模型输出期望之间的误差即模型的稳定性。
如果我们能够获得所有可能的数据集合并在这个数据集合上将loss最小化这样学习到的模型就可以称之为“真实模型”当然我们是无论如何都不能获得并训练所有可能的数据的所以“真实模型”肯定存在但无法获得我们的最终目标就是去学习一个模型使其更加接近这个真实模型。 而bias和variance分别从两个方面来描述了我们学习到的模型与真实模型之间的差距。 Bias是 “用所有可能的训练数据集训练出的所有模型的输出的平均值” 与 “真实模型”的输出值之间的差异 Variance则是“不同的训练数据集训练出的模型”的输出值之间的差异。
Bias与Variance往往是不能兼得的。如果要降低模型的Bias就一定程度上会提高模型的Variance反之亦然。 造成这种现象的根本原因是我们总是希望试图用有限训练样本去估计无限的真实数据。当我们更加相信这些数据的真实性而忽视对模型的先验知识就会尽量保证模型在训练样本上的准确度这样可以减少模型的Bias。但是这样学习到的模型很可能会失去一定的泛化能力从而造成过拟合降低模型在真实数据上的表现增加模型的不确定性。 相反如果更加相信我们对于模型的先验知识在学习模型的过程中对模型增加更多的限制就可以降低模型的variance提高模型的稳定性但也会使模型的Bias增大。Bias与Variance两者之间的trade-off是机器学习的基本主题。
采用k-fold Cross Validation进行训练只有1个模型会受到这个异常数据的影响而其余k-1个模型都是正常的。在平均之后这个异常数据的影响就大大减少了。 相比之下模型的bias是可以直接建模的只需要保证模型在训练样本上训练误差最小就可以保证bias比较小而要达到这个目的就必须是用所有数据一起训练才能达到模型的最优解。因此k-fold Cross Validation的目标函数破坏了前面的情形所以模型的Bias必然要会增大。 偏差和方差的估计 偏差和方差的无偏估计见上图。 做多次重复实验得到不同的f*然后求期望f_可得到目标函数f^的无偏估计。这样f_与f^的关系如上图所示。f_与f^之间有偏差误差f*与f_之间有方差误差。
在A Few Useful Thingsto Know about Machine Learning中提到可以将泛化误差gener-alization error分解成bias和variance理解
Bias: a learner’s tendency to consistently learn the same wrong thing即度量了某种学习算法的平均估计结果所能逼近学习目标(目标输出)的程度。
Variancethe tendency to learn random things irrespective of the real signal即度量了在面对同样规模的不同训练集时学习算法的估计结果发生变动的程度。比如在同一现象所产生的不同训练数据上学习的决策树往往差异巨大而实际上它们应当是相同的。
上图中靶心为某个能完美预测的模型离靶心越远则准确率随之降低。靶上的点代表某次对某个数据集上学习某个模型。纵向上高低的bias高的Bias表示离目标较远低bias表示离靶心越近横向上高低的variance高的variance表示多次的“学习过程”越分散反之越集中。 偏差方差与模型的关系 简单模型偏差较大这是因为模型简单可能无法表示到目标函数导致学习到的函数与目标函数有较大的误差。模型复杂表示能力较强进而有可能学习到目标函数所以会有较小的偏差。 模型越复杂越容易得到较大的方差简单模型容易得到较小的方差。 模型简单偏差较大容易导致欠拟合。模型复杂方差较大容易导致过拟合。 如何处理大的偏差和大的方差的 对于大的偏差可能会欠拟合可以重新设计更加复杂的模型。 对于大的方差可能会过拟合可以考虑增加数据量。或者可以考虑添加正则项这样会使得函数变的平滑函数抖动的不大厉害方差就会相对变小。但是这样会有可能增加偏差。 复杂的模型能更好的拟合训练集合能更好的拟合训练集合上的点但是同时高复杂度的模型泛化能力差造成了高方差。横坐标的右侧是过拟合overfit的情况而左侧是欠拟合underfit的情况。
更多理解见Understanding the Bias-Variance Tradeoff
过拟合表明采用的模型比真实的数据分布更复杂而欠拟合表示采用的模型比真实的数据分布要简单。
训练样本往往还有一定的噪音误差所以如果太追求在训练集上的完美而采用一个很复杂的模型会使得模型把训练集里面的噪音误差都当成了真实的数据分布特征从而得到错误的数据分布估计。这样的话到了真正的测试集上就错的一塌糊涂了这种现象叫过拟合。但是也不能用太简单的模型否则在数据分布比较复杂的时候模型就不足以刻画数据分布了体现为连在训练集上的错误率都很高这种现象较欠拟合。 模型的选择 交叉验证法。将训练数据集分为不同的训练集和验证集。依次训练不同的模型然后确定不同模型的平均误差进而选择合适的模型。最后依据选择的模型去整体学习训练集来确定最终的模型参数。这样才能有可能在测试集上得到客观的结果。
Training set is a subset of the dataset used to build predictive models. Validation set is a subset of the dataset used to assess the performance of model built in the training phase. It provides a test platform for fine tuning model’s parameters and selecting the best-performing model. Not all modeling algorithms need a validation set. Test set or unseen examples is a subset of the dataset to assess the likely future performance of a model. If a model fit to the training set much better than it fits the test set, overfitting is probably the cause.
训练集training set 是用来训练模型或确定模型参数的如ANN中权值等
校验集validation set 是用来做模型选择model selection即做模型的最终优化及确定的如ANN的结构
测试集test set 则纯粹是为了测试已经训练好的模型的推广能力。当然test set这并不能保证模型的正确性他只是说相似的数据用此模型会得出相似的结果。 针对经验风险最小化算法的过拟合的问题给出交叉验证的方法。 交叉验证Cross Validation有的时候也称作循环估计Rotation Estimation是一种统计学上将数据样本切割成较小子集的实用方法该理论是由Seymour Geisser提出的。
HoldOut检验Hold-Out Method或者称为简单交叉验证 步骤
1、 从全部的训练数据 S中随机选择 中随机选择 sm的样例作为训练集 train剩余的 作为测试集 作为测试集 test。
2、 通过对训练集训练 得到假设函数或者模型 。
3、 在测试集对每一个样本根据假设函数或者模型得到训练集的类标求出分类正确率。
4选择具有最大分类率的模型或者假设。
从严格意义上来说Hold-Out检验并不算是交叉检验Cross Validation因为该方法没有达到交叉检验的思想而且最后验证准确性的高低和原始数组的分类有很大的关系所以该方法得到的结果在某些场景中并不具备特别大的说服力。在Hold-Out检验不够有说服力的情形下有人提出了交叉验证这一个重要思想。
k-折交叉验证(k-fold crossValidation) 在机器学习中将数据集A分为训练集training setB和测试集test setC在样本量不充足的情况下为了充分利用数据集对算法效果进行测试将数据集A随机分为k个包每次将其中一个包作为测试集剩下k-1个包作为训练集进行训练。
1、 将全部训练集 S分成 k个不相交的子集假设 S中的训练样例个数为 m那么每一个子 集有 m/k 个训练样例相应的子集称作 {s1,s2,…,sk}。
2、每次从分好的子集中里面拿出一个作为测试集其它k-1个作为训练集
3、根据训练集训练出模型或者假设函数。
4、 把这个模型放到测试集上得到分类率。
5、计算k次求得的分类率的平均值作为该模型或者假设函数的真实分类率。
这个方法充分利用了所有样本。但计算比较繁琐需要训练k次测试k次。
留一法 leave-one-out cross validation 留一法就是每次只留下一个样本做测试集其它样本做训练集如果有k个样本则需要训练k次测试k次。
留一发计算最繁琐但样本利用率最高。适合于小样本的情况。 留P验证Leave-p-out Cross Validation)
留p验证LpO CV指的是使用全集X中的p个元素作为测试集然后剩下的n-p个元素作为训练集。根据数学上的定理可以得到p个元素的选择方法有n!/((n-p)!p!)个其中n!表示n的阶乘。在这个意义下留p验证的时间复杂度也是非常高的。当p1的时候留1验证Leave-one-out Cross Validation的复杂度恰好是n。
交叉验证Cross Validation的好处是可以从有限的数据中获得尽可能多的有效信息从而可以从多个角度去学习样本避免陷入局部的极值。在这个过程中无论是训练样本还是测试样本都得到了尽可能多的学习。
更多理解见 准确测量机器学习模型的误差 英文见 Accurately Measuring Model Prediction Error
更多评价指标见 分类算法中的ROC与PR指标 Recall召回率 Precision准确率 F-Measure E值 sensitivity灵敏性 specificity特异性漏诊率 误诊率 ROC AUC 参考文献 http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17.html bias and variance在机器学习中的应用 Bias-Variance Tradeoff http://blog.csdn.net/l281865263/article/details/45974589 http://blog.csdn.net/ywl22/article/details/8606166 https://www.zhihu.com/question/27068705
bias和variance
Stanford机器学习—第六讲. 怎样选择机器学习方法、系统
https://en.wikipedia.org/wiki/Bias%E2%80%93variance_tradeoff