回归学习又称为回归分析,是一种近似方法。变量之间的关系可以分为确定性和不确定性两大类。前者变量之间存在明确的关系,后者变量之间关系不完全确定。
对于存在统计关系的变量,通过大量的实验获得相关的统计数据,并构造目标函数去逼近该关系,即是回归学习,通常包含:参数回归、非参数回归、半参数回归。
线性回归和非线性回归都是典型的参数回归。这里我们主要介绍线性回归
1 线性模型基本形式
给定一个d个属性的样本
x=(x1;x2;...;xd)
其中
xi
是在x中第i个属性的值。 线性模型就是试图寻找一个属性的线性组合来预测的函数:
f=w1x1+w2x2+........+wdxd+b
用向量形式来表示就是:
f=WTX+b
,
W=(w1;w2;....;wd)
通过训练样本学习到两个参数,就得到了线性模型。线性模型的形式简单,易于建模,并且许多很多的非线性模型都可以在线性模型的基础上进行层级结构或者高位映射得到, 这就扩大了线性模型的可用范围。接下来介绍几种经典的线性模型。
1.1 线性回归
对于给定的具有标签数据集
D=(x1,y1),(x2,y2),...,(xm,ym)
,线性回归试图学习到一个函数去尽可能准确的预测输出label值。
我们先假设输入的值只有一个
D=(x1,y1)
,
回归学习的目标:
f=wxi+b
使得
f(xi)≈yi
确定参数: 关键在于如何去衡量 预测值 和 真实值 之间的差别。
(回归任务最常用的性能度量就是”均方误差“ :
E(f;D)=1m∑mi=1(f(xi)−yi)2
, 更一般地,对于数据分布P和概率密度函数
p(.)
, 均方误差可以描述为:
E(f;D)=∫x∼P(f(x)−y)2p(x)dx
)
那么对参数的确定可以转化为:、
这就相当于“欧式距离”,基于最小均方误差进行模型求解的方法称为“ 最小二乘法”令 E(w,b)=∑mi=1(yi−wxi−b)2 这里 E(w,b) 是关于两个参数的凸函数,当它关于w和b的偏导数为0时,就可以得到w和b的最优解。
令上面的偏导为0,可得参数的最优解:
其中 x¯=1m∑mi=1xi 为x的均值。
一般的,当属性值很多,回归学习的目标就成为: f(xi)=wTxi+b 使得 f(xi)≈yi 这称为“多元线性回归”
向量形式
令
w^=(w;b)
(加到最后一行),
⎛⎝⎜⎜⎜⎜⎜x11x21⋮xm1⋯⋯⋱⋯x1dx2d⋮xmd11⋮1⎞⎠⎟⎟⎟⎟⎟=⎛⎝⎜⎜xT1⋮xTm1⋮1⎞⎠⎟⎟
最后一个元素恒为1.再把输出值
y=(y1;⋯;ym)
则可以得到向量形式:
求偏导并为0,求得结果为:
要保证: XTX 为满秩矩阵或者正定矩阵
注: d(xTAx)dx=(A+AT)x
d(xTA)dx=d(ATx)dx=A
但是往往
XTX
不满秩,也就是说:样例个数远小于属性数,导致X的列数大于行数,求得很多解,通常引入正则化来确定选择哪一个。
2 局部加权回归
线性回归一个问题是可能出现欠拟合现象,因为它求得是具有最小均方误差的无偏估计。所以在估计中引入一些偏差,给待测点附近的每个点赋予异地昂的权重:
其中,W是一个矩阵,用来给每个数据点赋予权重。
一般地使用 “核”来对附近的点赋予更高的权重,最常见的就是高斯核:
参数k指定了对附近的点赋予多大的权重。
核心代码::
第一个函数:给定x空间中的任意一点,计算出对应的预测值yHat。其中,权重矩阵是一个方阵,阶数等于样本点个数。
“随着样本点与待测点距离的递增,权重将以指数及衰减,参数K控制衰减的速度。”
第二个函数:为数据集中的没一点调用函数lwlr()。
不同的k结果如下:(k=1.0、 0.1、0.01)
k=1.0 时就相当与线性回归(最小二乘法)
k= 0.01时拟合效果很好。k=0.003时则出现过拟合现象
但是:局部加权回归也存在问题:增加了计算量,因为对每个点做预测时都必须使用整个数据集。我们用的是高斯核,只有预测点附近权重大,其余的远离待测点的样本权重大多为0,如果能避免这些计算,将可以减少运行时间。
本篇设计的代码:
链接:http://pan.baidu.com/s/1geY9tGf 密码:i3j4