1. 描述
在这个练习中,你将实现正则化的线性回归和正则化的逻辑回归。
2. 数据
首先,下载data3.zip和从压缩文件中提取文件。这个数据包包含两组数据,一组用于线性回归(ex3Linx.dat和ex3Liny.dat),另一个用于逻辑回归(x3Logx.dat和ex3Logy.dat)。还包含一个名为"map_feature"的辅助函数。将用于逻辑回归。确保这个函数的m文件位于您计划编写代码的相同工作目录中。
3. 正则化线性回归
本练习第一部分着重于正规线性回归和正规方程。加载数据文件"ex3Linx.dat"和"ex3Liny.dat"。在你的程序中,这对应你要开始的变量x和y。注意,在这个数据中,输入"x"是一个单独的特征,因此你可以将y作为x的函数绘制在二维图上(你可以自己尝试):从这个图上可以看出来,拟合直线可能过于简单。相反,我们将尝试对数据拟合一个高阶多项式,以捕捉更多点的变化。
我们试试五阶多项式。我们的假设是
(1)hθ(x)=θ0+θ1x+θ2x2+θ3x3+θ4x4+θ5x5 h _ { \theta } ( x ) = \theta _ { 0 } + \theta _ { 1 } x + \theta _ { 2 } x ^ { 2 } + \theta _ { 3 } x ^ { 3 } + \theta _ { 4 } x ^ { 4 } + \theta _ { 5 } x ^ { 5 } \tag{1} hθ(x)=θ0+θ1x+θ2x2+θ3x3+θ4x4+θ5x5(1)
这意味着有六个特征的假设,因为x0,x1,…,x5x_0,x_1,\dots,x_5x0,x1,…,x5是我们回归的所以特征。注意,即使我们得到了一个多项式拟合,我们仍有一个线性回归的问题因为每个特征的假设都是线性的。
由于我们将一个5阶多项式拟合到一个只有7个点的数据集,因此很可能出现过拟合。为了防止这种情况,我们将在模型中使用正则化。回想一下正则化问题,目标是最小化关于θ\thetaθ的代价函数
(2)J(θ)=12m[∑i=1m(hθ(x(i))−y(i))2+λ∑j=1nθj2] J ( \theta ) = \frac { 1 } { 2 m } \left[ \sum _ { i = 1 } ^ { m } \left( h _ { \theta } \left( x ^ { ( i ) } \right) - y ^ { ( i ) } \right) ^ { 2 } + \lambda \sum _ { j = 1 } ^ { n } \theta _ { j } ^ { 2 } \right] \tag{2} J(θ)=2m1[i=1∑m(hθ(x(i))−y(i))2+λj=1∑nθj2](2)
其中λ\lambdaλ是正则化参数。正则化参数λ\lambdaλ是控制在你的拟合参数。随着拟合参数的增大,对成本函数的惩罚也会增大,这个点球是依赖于参数的平方以及λ\lambdaλ的大小。同时,求和后λ\lambdaλ不包括θ02\theta_0^2θ02。
现在,我们将使用正规方程找到模型的最佳参数。回想一下正则化线性回归的正规方程解是
θ=(XTX+λ[01⋱1])−1XTy⃗ \theta = ( X ^ { T } X + \lambda \left[ \begin{array} { c c c c } { 0 } & { } & { } \\ { } & { 1 } & { } \\ { } & { } & { \ddots } & { } \\ { } & { } & { } & { 1 } \end{array} \right] ) ^ { - 1 } X ^ { T } \vec { y } θ=(XTX+λ⎣⎢⎢⎡01⋱1⎦⎥⎥⎤)−1XTy

最低0.47元/天 解锁文章
4666

被折叠的 条评论
为什么被折叠?



