机器学习实战——预测数值型数据:回归

来源:互联网 发布:微单哪款好 最好知乎 编辑:程序博客网 时间:2024/05/21 10:36

一、线性回归——寻找最佳拟合直线

1、 线性回归的特点: 易于理解、计算简单; 但是对于非线性数据拟合不好;适用于数值型和标称型数据。
2、 为了寻找对数据最佳拟合的直线,一般常用的方法就是寻找使误差最小的w,我们采用平方误差:
如果对其求导,零导数为0,则得到:
这就是一般的线性回归估计出的w的最优解。注意:此方程只在逆矩阵存在的时候才有效。
最佳拟合直线将数据视为直线进行建模,但是如果数据的预测值和特征之间不是线性关系,那么将不能取得很好的效果,会出现欠拟合现象

二、 局部加权线性回归

1、 线性回归模型容易出现欠拟合现象
他求得是具有最小均方根误差的无偏估计。如果模型欠拟合将不能达到很好的预测效果。在有些方法中允许引入一些偏差,从而降低预测的均方误差。
2、 Locally Weighted Linear Regression, LWLR局部加权线性回归
我们给待预测点附近的每个点都赋予一定的权重,较远的点就赋予较低的权重,局部拟合预测点附近的数据子集,这样得到的回归系数如下:
其中w是一个矩阵,给每个点赋予权重。
LWLR采用核函数来对附近的点赋予更高的权重,核的类型可以自由选取,常用的是高斯核:
利用高斯核就构建了一个权重矩阵w, 上式中需要用户只大牛股一个参数k,它决定了对附近的点赋予多大的权值。
上图是k取不同值的时候,LWLR对于数据的拟合曲线。当k过大的时候,大部分数据都用于训练回归模型,导致其结果与线性回归模型很相似,而当k较小的时候,由于实际参与训练的数据非常少,导致数据过拟合;只有当k取一个合适值的时候,所得到的曲线才能很好地拟合数据。
3、 问题
局部加权线性回归增加了计算量:对每个点做预测的时候,都必须使用整个数据集重新计算一个针对预测点的权重系数w,这样做预测的时候时间复杂度就会非常高。实际上,当k取一个合适值的时候,大多数点的权重都是接近0的,如果能想法避免这些计算就可以减少程序的运行时间。
4、 思考
1)是否可以考虑将整个数据集划分成区?对于每一个区以内的数据,计算一个w,这样只要预测点落入这个区,就可以直接用这个区对应的w来计算预测值。
2)以每一个样本点为中心计算一个权重系数w,对于预测的数据,选取一个离他最近的训练数据,用其对应的w作为权重系数来做预测。

三、 缩减系数来理解数据

以下几种方法主要是为了能通过给特征权重加上约束,来找出数据中的主要特征。
1、 岭回归Ridge Regression
前面提到,在做线性回归计算W的时候要求一个逆矩阵,这个逆矩阵在有的时候是不存在的,而岭回归就是在之前的那个矩阵加上一个λI 从而使矩阵非奇异,这样就可以直接求逆。
为了使用岭回归和缩减技术,首先要对特征进行标准化处理:将所有特征减去各自的均值,并除以方差。
lamda非常小的时候,系数与普通回归一样,lamda非常大的时候,所有回归系数都缩减为0,可以在两者之间找到一个合适值。
可以证明,普通最小二乘法回归增加如下约束可以得到岭回归一样的公式:(此处貌似有问题,lambda应该是系数大小和均方误差的一个相对权重
2、 lasso
貌似应该是均方误差加上一个系数绝对值之和,lambda应该是两者之间的相对权重。这样在lambda足够小的时候,能够使一些系数被迫缩减到0,从而可以更好地理解数据。
3、 前向逐步回归
前向逐步回归是一种贪心算法:每一步都尽可能减少误差,一开始所有权重都为1,然后每一步所做的决策就是对某个权重增加会减少一个很小的值(分别试探增加和减少两种情况,看哪种情况最后的误差更小就取哪种),经过多次迭代以后,权重就会收敛到一个合适的值。
算法的伪码如下:
岭回归是缩减法的一种,对于回归系数的大小进行了限制。lasso也是缩减法的一种,不过相对岭回归更难以求解。缩减法也可以看做是对一个模型增加偏差的同时减少方差。
0 0
原创粉丝点击