首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

机器学习—L2约束最小二乘法

之前介绍的是部分空间约束的最小二乘法,基本最小二乘法中,所求参数θ 是在全体参数空间求取,而部分空间约束的最小二乘法,则是通过把参数空间约束在一定范围内,来防止过拟合现象。其目标函数的表达式如下:

今天要介绍 L2约束的最小二乘法,又叫正则化最小二乘法,岭回归。具体形式就是在最小二乘的误差函数后面加了一个正则项(或惩罚项),表达式如下:

矩阵形式如下:

后面这个正则项是为了防止过拟合(尽可能经过每个样本,导致拟合的函数呈有很多小波浪),因为我们是要最小化J函数,theta值的增大会增加J的值,相当于一种惩罚,也是一种防止模型过于复杂的方法。

还是之前的套路,求偏导,为0,然后我们就可以得到:

代码如下:

clear; closeall; clc;

n = 50;% 训练样本个数

N = 1000;% 测试样本个数

x = linspace(-3,3,n)';% n个样本服从-3到3的均匀分布

X = linspace(-3,3,N)';

pix = pi*x;

y = sin(pix)./pix - 0.01*x + 0.05*randn(n,1);% 拟合的函数

x2 = x.^2;

X2 = X.^2;

hh = 2*0.3^2;

lambda = 0.1;

H = exp(-(repmat(x2,1,n) + repmat(x2',n,1) - 2*x*x')/hh);

P = exp(-(repmat(X2,1,n) + repmat(x2',N,1) - 2*X*x')/hh);

t1 = H\y;% 这里的t就是文中的x,H\y = inv(H'*H)*H'*y

F1 = P*t1;

t2 = (H^2 + lambda*eye(n))\(H*y);

F2 = P*t2;

plot(X,F1,'g-','linewidth',2);

hold on

plot(X,F2,'r--','linewidth',2);

plot(x,y,'bo','linewidth',2);

axis([-2.8,2.8,-0.4,1.2]);

legend('Least Square','L_2 Consttrained LS','Training Samples');

代码运行结果如下:

分析结果可知,基础的LS明显出现了过拟合现象,而L2约束的LS就拟合的非常好。

以上就是今天推送的内容,欢迎讨论。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180401G1E38400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券