关于机器学习的线性回归与正则化的基础.doc_第1页
关于机器学习的线性回归与正则化的基础.doc_第2页
关于机器学习的线性回归与正则化的基础.doc_第3页
关于机器学习的线性回归与正则化的基础.doc_第4页
关于机器学习的线性回归与正则化的基础.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

. . . .毕 业 论 文题目 机器学习之线性回归及其正则化学院 理学院 专业 信息与计算科学年级 班级 姓名 黄剑华 学号 指导老师 职称 2017年 6 月机器学习之线性回归及其正则化【摘要】 机器学习是计算机具备智能的基本途径,其最重要的核心为人工智能,对机器学习的运用遍布着人工智能的诸多领域,线性回归问题在监督机器学习的范畴之内。线性回归问题中,训练数据对未知数据的推测与模拟,即泛化能力可能不是很好,或者训练数据量不够,无法对训练数据集很好地回归分析,这时须要提高泛化能力,正则化便是提高泛化能力办法之一。正则化线性回归问题在于最小化误差的同时正则化参数,即模型拟合训练数据的同时,又须要制止模型过分地拟合训练数据,这样才具有良好的泛化性能。本文阐述了线性回归两种常见方法,梯度下降法与最小二乘法及其对应的正则化方法。通过数值模拟试验直观的理解线性回归及其正则化,及如何确定适合的正则化参数。【关键词】 线性回归模型 梯度下降法 最小二乘法 正则化线性回归 正则化参数 参考Linear regression and regularization in machine learningAbstract Machine learning is the core of artificial intelligence . It is a fundamental way of intelligent computer , its applications across all areas of artificial intelligence , the linear regression problem belongs to the category of supervised machine learning . In linear regression problem , speculation and simulation the unknown data from training data , in other words , the generalization ability may not be very good , may also be the amount of training data is too small , not enough to regression analysis of the training data set , so it is necessary to improve the generalization ability of the model , regularization is a method to improve the generalization ability . Regularized linear regression problem is to minimize the error of simultaneous regularization parameters , minimize the error is to let the model fitting the training data and the regularization parameter is to prevent the model over fitting the training the data , so it has good generalization performance . This article introduces two methods of linear regression , gradient descent method and least square method , as well as corresponding regularization of the methods . Through the numerical simulation test , we can intuitive understand the linear regression and regularization , and how to choose the appropriate regularization parameter .Key words Linear regression model Gradient descent method Least square method Regularized linear regression Regularization parameter目录引言11.线性回归21.1.线性回归模型21.2.梯度下降法31.2.1.梯度下降法求解线性回归模型31.2.2.学习速率31.2.3.特征缩放41.3.最小二乘法41.4.梯度下降法与最小二乘法的比较52.正则化线性回归62.1欠拟合、过拟合及正则化62.1.1.欠拟合62.1.2.过拟合62.1.3.正则化62.2.基于梯度下降法的正则化72.3.基于最小二乘法的正则化82.4.关于正则化参数的选择93.数值模拟试验93.1.初步建立线性回归模型93.2.偏差与方差之间的权衡123.3.正则化线性回归模型143.4.正则化参数的选择16结论21致谢语22参考文献23附录24引言机器学习是探究计算机或者智能化机器如何模仿人类的学习行为,借此来学习新知识或者新技能,重新组织现有知识结构,让其改善及提升自身的性能1。运用机器学习在很多领域都有所发展,例如搜索引擎、手写语音识别、证券股票分析、DNA检测、医疗诊断、机器人应用、自然语言处理、生物特征识别技术等。监督学习是机器学习中较为常见的学习方法,即用已知某种特性的样本作为训练数据集,建立数学模型来预测未知样本数据1,而线性回归问题便在监督学习的范畴之内。在线性回归问题中,训练数据对未知数据的推测与模拟,即泛化能力可能不是很好,也可能训练数据量不够,达不到对训练数据集回归分析,因此为了解决问题须要提高模型的泛化能力,而正则化便是防止过拟合提高泛化能力的方法之一。正则化线性回归问题,即最小化误差的同时还须正则化参数。最小化误差是使模型能够较好地拟合训练数据,正则化参数则避免了模型过分地拟合训练数据2。如果模型参数相对过多,会让模型复杂度增大,易发生过拟合的现象,即训练误差极小甚至为零。对于线性回归来说,训练误差极小甚至为零不是最终目的,线性回归的目的在于使模型的测试误差变小,即可以较好地预测未知的数据。因此,在保证模型“简单”的同时还须要最小化训练误差,如此所求得的参数才具有良好的泛化能力,这也就是正则化的在监督学习中的重要作用。本文主要阐述了梯度下降法与最小二乘法这两种线性回归方法,以及正则化方法之一的岭回归(ridge regression),并且讨论如何确定适合的正则化参数(lambda)。1.线性回归1.1.线性回归模型在机器学习中,线性回归模型是探讨变量和多个变量间的关系,用已有的训练数据为基础,总结问题本身的规律变化,并建立相应的回归模型来以预测未知的样本数据2。假设有训练数据集数为个,而为一个训练数据,其中和分别是第个训练数据对应的自变量与因变量,则假设函数如下: (1-1)其中,表示以为参数,是回归参数(未知),则(1-1)可以写成: (1-2)其中,那么,假设已给定了一训练数据集,该如何求出参数?需要让预测值尽可能靠近,因此定义代价函数,即需要优化的函数来描述与对应的的接近程度: (1-3)其中,的作用在于求导时,消掉常数系数,因而便须要通过调整来让代价函数取得最小值,梯度下降法、最小二乘法等方法便是求最小值的方法。1.2.梯度下降法1.2.1.梯度下降法求解线性回归模型梯度下降法是一种在学习算法及统计学常用的最优化算法,其思路是对取一随机初始值,可以是全零的向量,然后不断迭代改变的值使其代价函数根据梯度下降的方向减小,直到收敛求出某值使得最小或者局部最小3。其更新规则如下: (1-4)其中所表达的含义为赋值,即把右边的值赋予左边的变量,为学习速率,。而对的偏导决定了梯度下降的方向,将带入更新规则中得到: (1-5)对于(1-5)式由于每一次迭代都需要遍历所有训练数据一次,如果训练数据庞大,则复杂度比较高,便使得收敛速度变得很慢,所以被称作批量梯度下降法。相应的,当训练数据量过于庞大时,为了解决(1-5)式带来的问题,一般采用如下的算法: (1-6)即当更新参数的时候,不必遍历全部训练数据,只要一个训练数据就可以,这种方法会比较快地收敛,所以区别于批量梯度下降法被称为随机梯度下降法4。对于梯度下降法来说,其所产生的一般是局部最小值,因此需要随机初始化,得出多个最优值,再从中筛选出最终结果,以此来解决问题。1.2.2.学习速率决定了逼近最低点的速率,若过大可能会出现不断地在最低点附近反复震荡的情况,无法收敛;而过小,则导致逼近的速率太慢,即需要迭代更多次才能逼近最低点。因此,可以用一些数值试验,比如等,接着针对不同的,绘制出随着迭代步数而变化的曲线,筛选使快速下降收敛的。由此可知,为梯度下降法选择时,可以大致以三的倍数再以十的倍数的规律来择出一组,找到使得快速下降收敛的。1.2.3.特征缩放在解决实际问题中,往往会出现里的各个特征变量的取值范围间的差异非常大,如此会导致在梯度下降时,由于这种差异而使得收敛变慢,特征缩放便是解决该类问题的方法之一,特征缩放的含义即把各个特征变量缩放在一个相近且较小的取值范围中,例如,等,其中,较简单的方法便是采用均值归一化,公式如下: (1-7)其中为的第n个特征变量,为该特征变量的样本数据平均值,为该特征变量的样本数据标准差。现实中,在对训练数据线性回归时,有时可以通过两个乃至多个特征变量之间的关系来创造一个新的特征变量来表示多个特征变量,如此便相对地让模型的复杂度下降。例如可以用“面积”来表示“长度”和“宽”的乘积。1.3.最小二乘法最小二乘法是比较直接的使用矩阵运算来取得的一种算法,也称作正规方程组。其基本思路是,对(1-3)式即代价函数求偏导并令其等于零,所得到的即为模型参数的值5 。即,结合(1-2)式得出6,推出 (1-8)写为矩阵形式,即为 (1-9)其中,得到 (1-10)这便是由最小二乘法所求得的模型参数的值。这里假设矩阵的秩一般为n+1,即存在的情况。在机器学习中,不可逆的原因通常有两种,一种是建立模型中有多余或者功能相近的参数,例如“以米为单位的宽”与“以英尺为单位的宽”两者功能是相近的,可以通过公式转换求得,可以通过删除其一解决问题;另一种则是当特征变量过多,即复杂度过高而训练数据相对较少()的时候也会导致不可逆。不可逆的情况很少发生,如果有这种情况,其解决问题的方法之一便是使用正则化来求最小二乘法。1.4.梯度下降法与最小二乘法的比较相对于最小二乘法来说,梯度下降法须要归一化处理以及选取学习速率,且需多次迭代更新来求得最终结果,而最小二乘法则不需要。相对于梯度下降法来说,最小二乘法须要求解,其计算量大约为,当训练数据集过于庞大的话,其求解过程非常耗时,而梯度下降法耗时相对较小。所以,当模型相对简单,训练数据集相对较小,用最小二乘法较好;对于更复杂的学习算法或者更庞大的训练数据集,用梯度下降法较好,一般当特征变量小于时,使用最小二乘法较稳妥,而大于时,则应该使用梯度下降法来降低计算量。2.正则化线性回归2.1欠拟合、过拟合及正则化2.1.1.欠拟合建立模型时,若没有考虑相当的信息量,即特征变量,使得对训练数据集的拟合建模无法精确,那么便会发生欠拟合(underfitting)的现象,欠拟合也被称为高偏差(bias)。如果用此算法去拟合数据,会产生大的偏差或存在大的偏见,简单来说,就是训练误差过大。可以通过增添更多的特征变量,利用更高幂次的多项式当做假设函数,以该假设函数来拟合训练数据,通过这种方法来解决欠拟合问题。2.1.2.过拟合建立模型时,有时会有训练数据不够的情况发生,也就是训练数据无法约束更多的特征变量,或者当模型过度训练的情况发生,那么便会发生过拟合(overfitting)的现象,过拟合也被称作高方差(variance)。过拟合一般在特征变量过多的情况发生,该情形下所建立的模型拟合训练数据的能力总是较好,也可以说代价函数几乎逼近于零或为零,简单来说,就是训练误差几乎为零或为零,可是训练误差很小并非最终目的,过拟合的模型不能泛化到未知的数据样本中,也就不能实现预测的能力。其中所谓的“泛化”的含义是说,一个假设模型应用到新样本的能力。所以,当模型发生过拟合的情况发生时,可以通过尽可能少地选取特征变量数,其缺点在于舍弃某些变量的同时,也舍弃了其所携带的信息。而另一种方法正则化,可以保留全部特征变量,且每一个特征变量或多或少都对模型预测有些许影响,所以正则化是一种处理过拟合的实用方法。2.1.3.正则化正则化的含义是说,在对代价函数进行优化的时候,在代价函数后插入一正则项,也被称作惩罚项,在本文中使用正则化方法之一的“岭回归” 7,其代价函数正则化后如下: (2-1)其中为正则化参数,其作用是控制拟合训练数据的目标和保持参数值较小的目标之间的平衡关系,这种正则化线形回归称作“岭回归” 2。一般地,正则项都是从开始的,相当于没有惩罚,而实际上是否有无包括这项,只会产生十分小的差异。正则化线性回归的思路是,通过正则项收缩了参数,参数更小也就表明模型的复杂度更低,不易出现过拟合的现象,所以限制参数很小,就是限制对应的特征变量的影响很小,相当于把参数的数量降低了,从而提高了模型的泛化能力。2.2.基于梯度下降法的正则化基于梯度下降法的正则化,便是在其更新规则后加上正则项,则正则化后的梯度下降法的更新规则如下: (2-2)对(2-2)式中的第二项式子进行变形,可以等价的写成 (2-3)由于一般对没有惩罚,所以将单独列出来。对于(2-3)即式正则化梯度下降法与(1-5)式即梯度下降法相比较,就是多了,而很明显的,一般是一个比1略小的值,其作用就是在更新前先缩小参数再进行更新迭代,从而使得模型复杂度相比更低。2.3.基于最小二乘法的正则化基于最小二乘法的正则化,便是对插入了正则项的代价函数,即(2-1)式求偏导8,即 (2-4)对于,(2-4)式矢量化,并令其为零,即,得出 (2-5)其中,对(2-5)式进行变换,得 (2-6)其中为单位矩阵,从而得出为 (2-7)对(2-7)式,将加入该式,则推出为 (2-8)在1.3中讨论了最小二乘法可能出现不可逆的情况,解决问题的方法之一便是使用正则化来处理,即,更为详细地,当正则化参数严格大于零的时候,能够确定为可逆的9,即便是训练数据比特征变量的数量少,也是可逆的,这也是正则化主要解决的问题之一。2.4.关于正则化参数的选择在正则化线性回归中,越大,就说明正则项的重要性比训练误差大,相当于对模型拟合训练数据来说,更希望模型满足约束的特性。当过大时,说明惩罚的力度过大,使得这些参数接近于零,则模型相当于拟合出了一条近似的水平直线,就会发生欠拟合的现象。而如果过小,则代价函数的最优化基本依赖于的首项,正则项的影响几乎没有,就可能发生过拟合的现象10。如何选择合适的呢?交叉验证(Cross validation)便是其中一种较为常用的得到可靠稳定的参数的方法,其基本思路就是分割训练数据集,取其中一部分当作训练集,一部分当作测试集,接着选择不同的以该训练集拟合出个模型,再让该测试集测试这个模型,最后个模型中测试误差最小对应的就是所需要的11。一般地,可以设置测试的值为等。选择合适的正则化参数,才能让模型的拟合能力和泛化能力都相对地变强,也就是在模型“简单”的同时使化训练误差最小,如此所求得的参数才具有良好的泛化能力。3.数值模拟试验3.1.初步建立线性回归模型本试验使用matlab工具,依据水库中蓄水标线(Change in water level)建立线性回归模型,以预测水流量(Water flowing out of dam),并且探讨偏差与方差的权衡,以及欠拟合及过拟合现象的解决方法,最后讨论如何选择合适的正则化参数 12。本试验的数据集如下(如表3-1所示):a. 训练数据集(training set):训练集(特征变量集),结果向量(label of result)b. 交叉验证集(cross validation set):与,来确定正则化参数c. 测试集(test set):与,测试集中的数据在训练数据集中不曾出现的表3-1 数据集名称值最小值最大值X12x1 double-48.058837.4922Xtest21x1 double-55.940644.2099Xval21x1 double-50.013246.2824y12x1 double1.173336.8380ytest21x1 double0.130455.3844yval21x1 double-4.38738273915718e-0552.7819由于训练数据集中有12个训练实例,各训练实例只一个特征变量,因此假设函数为 (3-1)其中一般地,为1。则训练数据集的数据图形表示如图3-1所示:图3-1 训练数据集使用matlab的fmincg.m函数拟合线性回归模型,得到模型的参数,则模型与训练数据之间的拟合程度如图3-2:图3-2 欠拟合的线性回归模型从图3-3中可以很明显地看出,训练数据是类似二维的,但是所拟合的却是一条线性直线,因此出现了欠拟合现象。由于在此模型中特征变量很少(一维),可以以图形的形式表现,但当训练数据的特征变量过多的时候,就很难以图形的方式表现了,这时候,利用“学习曲线”来检验拟合所得到的模型与数据之间的拟合程度。则图3-2的学习曲线如图3-3:图3-3 欠拟合的学习曲线图3-3中,学习曲线的轴为训练数据集的数量,轴为交叉验证误差以及训练误差。从图中可以观察到,在训练数据集很小的情况下,约2到4左右时,训练误差相对较小,可就交叉验证误差来说,由于是用未知的数据预测的,而模型发生欠拟合的现象,所以几乎无法较好地拟合未知的样本数据,所以交叉验证误差会很大。而随着训练数据集数量的不断增大,模型拟合的数据越来越多,所以训练误差变大了。就交叉验证误差来说,最终和训练误差一致且慢慢地趋于平坦,也就是收敛到某一个值了,此时训练数据集的数量增加对模型的拟合效果影响不大,所以训练数据集的数量再增大,也基本不能使得训练误差变小。3.2.偏差与方差之间的权衡图3-3出现了欠拟合现象,可以增添更多的特征变量,以更高幂次的假设函数来拟合训练数据,通过使用matlab的polyFeatures.m函数来“扩充”特征变量,其假设函数如下: (3-1)由于(3-1)式的特征变量的取值范围差距过大,需要使用matlab的featureNormalize.m函数进行归一化,然后拟合训练数据得到模型如图3-4:图3-4 过拟合的线性回归模型从图3-4可以看出,模型几乎完美地拟合了全部的训练数据,可判定基本出现了过拟合的现象,通过学习曲线可以更明显的观察,图3-4的学习曲线如图3-5:图3-5 过拟合的学习曲线从图3-5中很明显地观察到,训练误差几乎接近于0,也就是说模型几乎完美地拟合了每一个训练数据,从而训练误差的曲线基本贴近轴。而交叉验证误差起初非常大(训练数据集的数量为2时),随着训练数据集的数量逐渐增大,交叉验证误差慢慢变小(训练数据集的数量为2到5左右),接着当训练数据集的数量再增大时(训练数据集的数量为11及以上时),交叉验证误差开始增大,也就是说过拟合降低了模型的泛化能力。3.3.正则化线性回归模型通过使用正则化线性回归来解决模型出现的过拟合现象,这里首先设置正则化参数(lambda)为1,所得到的模型如图3-6:图3-6 正则化参数为1的正则化线性回归模型从图3-6明显地看出,所拟合的曲线不像图3-5那样曲折,变得相对平滑,这是正则化所带来的效果,通过学习曲线可以更明显的观察,图3-6的学习曲线如图3-7:图3-7 正则化参数为1的学习曲线从图3-7可以观察到,训练误差与交叉验证误差十分逼近且两者都相对较小,说明模型既可以较好地拟合训练数据,又可以较好的预测未知的样本数据,也就可以肯定该模型有不错的泛化能力,预测未知的数据的能力较强。3.4.正则化参数的选择图3-6中,由于恰巧地设置正则化参数为1,得到了良好的模型,若设置正则化参数为其他时,所出现的情况便会有所不同。例如,当设置正则化参数为100,其所得到的模型如图3-8:图3-8 正则化参数为100的正则化线性回归模型从图3-8中,很明显地看出,模型出现了欠拟合的现象,通过学习曲线可以更明显的观察,图3-8的学习曲线如图3-9:图3-9 正则化参数为1的学习曲线显而易见,图3-9中,训练误差在训练数据集的数量为2时便迅速增大,很明显的欠拟合现象。从以上几个图表可以观察到,选择合适的正则化参数对模型的拟合程度与泛化能力具有重要的影响,所以可以使用交叉验证集来筛选出合适的正则化参数,其基本思路为:选择一组(lambda),其值分别为,共10个值,接着让训练数据集对这组分别拟合出10个模型,最后对每个模型求出相对应的交叉验证误差,其中交叉验证误差最小的模型对应的便是合适的正则化参数,其结果如表3-2:表3-2 交叉验证法lambdaTrain ErrorValidation Error0.0000000.15503818.8290790.0010000.17454420.7494880.0030000.17900117.9493810.0100000.22171317.1171750.0300000.28184412.8293530.1000000.4593187.5870130.3000000.9217604.6368331.0000002.0761884.2606253.0000004.9013513.82290710.00000016.0922139.945508从表3-2中可以观察到,为3时交叉验证误差最小,其图形曲线如图3-10:图3-12 交叉验证法从图3-10观察到,为大于等于3时,交叉验证误差不断地增大,之后便会出现欠拟合的现象,所以可以认为为3是最合适的正则化参数选择,其模型曲线如图3-11:图3-11 正则化参数为3的正则化线性回归模型从图3-11中可以看出,模型较好地拟合了训练数据,曲线相对平滑,通过学习曲线可以更明显的观察,图3-11的学习曲线如图3-12:图3-12 正则化参数为3的学习曲线从图3-12可以观察到,训练误差与交叉验证误差相比于为1的学习曲线的,即图3-6更为逼近,说明模型相对于为1的情形更好地拟合训练数据,对未知数据的预测能力更好。结论在线性回归中需要考虑欠拟合与过拟合现象的出现以及解决问题的方法,本文中只提及了其中的一种解决方法正则化中的“岭回归”,而正则化则需要考虑如何确定适合的正则化参数。如今随着机器学习的平台越来越成熟,以及通用场景的算法也越来越普及,在各个领域如数据挖掘、计算机视觉、生物特征识别等具有重要地位。机器学习中经常会出现过拟合及正则化的问题,学习线性回归及其正则化对往后学习机器学习的高级算法具有很好的帮助。线性回归及其正则化是机器学习中监督学习最基础的知识,深刻理解它对学习机器学习更深层次的内容具有重要作用。致谢语首先对导师储理才老师能在百忙之中细心指导我表示感谢。在完成毕业论文的过程中,储理才老师帮助了我很多很多,给予我细心的教导以及支持,对此对储理才老师表示诚挚的感谢及崇高的敬意。除此之外,还要感谢大学生活中的老师与同学在困难时所给予的帮助,为我解答了疑问和困惑。论文完成之际,突然发觉将要离开美丽的大学,生有感慨与不舍,回顾以往,老师不辞辛苦地工作、乐教不倦地教导、以身作则的精神深刻地影响着我。谢谢老师!参考文献1 周志华. 机器学习M. 北京:清华大学出版社,20162 何秀丽. 多元线性模型与岭回归分析D. 华中科技大学,2005.3 刘颖超,张纪元. 梯度下降法J. 南京理工大学学报(自然科学版),1993,(02):12-16+22.4 郭跃东,宋旭东. 梯度下降法的分析和改进J. 科技展望,2016,(15):115+117.5 邹乐强. 最小二乘法原理及其简单应用J. 科技信息,2010,(23):282-283.6 梅长林,周家良. 实用统计方法M. 北京:科学出版社,20027 栗丽,赵伟,王志福. 在解决多重共线性问题上岭回归法比LS法的优越性J. 渤海大学学报(自然科学版),2006,(02):124-126.8 肖庭延,张培培,阎金华. 正则化的最小二乘估计及其应用J. 高等学校计算数学学报,2005,(S1):345-349.9 解同信. 最小二乘法求作拟合直线J. 北京工业职业技术学院学报,2006,(03):5-7.10 江河. 带有惩罚函数的多元线性回归分析模型的调节参数的选择D. 兰州:兰州大学,2012.11 闻斌. 通过交叉验证准则选择线性模型D. 东南大学,2006.12 刘红勇,胡健,王鹏,郭吉. 基于岭回归法的四川省房地产价格影响因素研究J. 数学的实践与认识,2014,(12):72-78.13 张志涌,杨祖樱等. Matlab教程M. 北京:北京航空航天大学出版社,201514 Andrew Ng. Machine LearningZ. /15 VinodH.D,UllahA. Recent Advances in Regression MethodsJ. 198116 YazidM,Al-Hassan. Performance of a new ridge regression estimatorJ. Journal of the Association of Arab Universities for Basic and Applied Sciences,2010(1)17 Lawless JF,Wang P. A simulation study of ridge and other regression estimatorsJ. Commun Stat Theory Methods. 1976附录1.ex5.mclear ; close all; clcfprintf(Loading and Visualizing Data .n)load (ex5data1.mat);m = size(X, 1);plot(X, y, rx, MarkerSize, 10, LineWidth, 1.5);xlabel(Change in water level (x);ylabel(Water flowing out of the dam (y);fprintf(Program paused. Press enter to continue.n);pause;theta = 1 ; 1;J = linearRegCostFunction(ones(m, 1) X, y, theta, 1);fprintf(Cost at theta = 1 ; 1: %f . n(this value should be about 303.993192)n, J);fprintf(Program paused. Press enter to continue.n);pause;theta = 1 ; 1;J, grad = linearRegCostFunction(ones(m, 1) X, y, theta, 1);fprintf(Gradient at theta = 1 ; 1: %f; %f . n(this value should be about -15.303016; 598.250744)n, . grad(1), grad(2);fprintf(Program paused. Press enter to continue.n);pause;lambda = 0;theta = trainLinearReg(ones(m, 1) X, y, lambda);plot(X, y, rx, MarkerSize, 10, LineWidth, 1.5);xlabel(Change in water level (x);ylabel(Water flowing out of the dam (y);hold on;plot(X, ones(m, 1) X*theta, -, LineWidth, 2)hold off;fprintf(Program paused. Press enter to continue.n);pause;lambda = 0;error_train, error_val = . learningCurve(ones(m, 1) X, y, . ones(size(Xval, 1), 1) Xval, yval, . lambda); plot(1:m, error_train, 1:m, error_val);title(Learning curve for linear regression)legend(Train, Cross Validation)xlabel(Number of training examples)ylabel(Error)axis(0 13 0 150)fprintf(# Training ExamplestTrain ErrortCross Validation Errorn);for i = 1:m fprintf( t%dtt%ft%fn, i, error_train(i), error_val(i);endfprintf(Program paused. Press enter to continue.n);pause;p = 8;X_poly = polyFeatures(X, p);X_poly, mu, sigma = featureNormalize(X_poly); X_poly = ones(m, 1), X_poly; X_poly_test = polyFeatures(Xtest, p);X_poly_test = bsxfun(minus, X_poly_test, mu);X_poly_test = bsxfun(rdivide, X_poly_test, sigma);X_poly_test = ones(size(X_poly_test, 1), 1), X_poly_test; X_poly_val = polyFeatures(Xval, p);X_poly_val = bsxfun(minus, X_poly_val, mu);X_poly_val = bsxfun(rdivide, X_poly_val, sigma);X_poly_val = ones(size(X_poly_val, 1), 1), X_poly_val; fprintf(Normalized Training Example 1:n);fprintf( %f n, X_poly(1, :);fprintf(nProgram paused. Press enter to continue.n);pause;lambda = 0;theta = trainLinearReg(X_poly, y, lambda);figure(1);plot(X, y, rx, MarkerSize, 10, LineWidth, 1.5);plotFit(min(X), max(X), mu, sigma, theta, p);xlabel(Change in water level (x);ylabel(Water flowing out of the dam (y);title (sprintf(Polynomial Regression Fit (lambda = %f), lambda);figure(2);error_train, error_val = . learningCurve(X_poly, y, X_poly_val, yval, lambda);plot(1:m, error_train, 1:m, error_val);title(sprintf(Polynomial Regression Learning Curve (lambda = %f), lambda);xlabel(Number of training examples)ylabel(Error)axis(0 13 0 100)legend(Train, Cross Validation)fprintf(Polynomial Regression (lambda = %f)nn, lambda);fprintf(# Training ExamplestTrain ErrortCross Validation Errorn);for i = 1:m fprintf( t%dtt%ft%fn, i, error_train(i), error_val(i);endfprintf(Program paused. Press enter to continue.n);pause;lambda_vec, error_train, error_val = . validationCurve(X_poly, y, X_poly_val, yval);close all;plot(lambda_vec, error_train, lambda_vec, error_val);legend(Train, Cross Validation);xlabel(lambda);ylabel(Error);fprintf(lambdattTrain ErrortValidation Errorn);for i = 1:length(lambda_vec) fprintf( %ft%ft%fn, . lambda_vec(i), error_train(i), error_val(i);endfprintf(Program paused. Press enter to continue.n);pause;X_poly_test = polyFeatures(Xtest, p);X_poly_test = bsxfun(minus, X_poly_test, mu);X_poly_test = bsxfun(rdivide, X_poly_test, sigma);X_poly_test = ones(size(X_poly_test, 1), 1), X_poly_test; theta = trainLinearReg(X_poly, y,3); error_val = linearRegCostFunction(X_poly_val, yval,theta,0)error_test = linearRegCostFunction(X_poly_test, ytest,theta,0) 2.featureNormalize.mfunction X_norm, mu, sigma = featureNormalize(X)mu = mean(X);X_norm = bsxfun(minus, X, mu);sigma = std(X_norm);X_norm = bsxfun(rdivide, X_norm, sigma);end3.fmincg.mfunction X, fX, i = fmincg(f, X, options, P1, P2, P3, P4, P5)if exist(options, var) & isempty(options) & isfield(options, MaxIter) length = options.MaxIter;else length = 100;endRHO = 0.01; % a bunch of constants for line searchesSIG = 0.5; % RHO and SIG are t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论