线性回归(Linear Regression,LR)
来源:互联网 发布:淘宝客返利是什么意思 编辑:程序博客网 时间:2024/05/01 07:07
问题描述
线性回归的目标是针对一组特征和结果的数据集,找到特征与结果之间的线性关系;该方法的有个假设是数据集的输入与结果存在线性关系。
数学抽象
输入:数据的输入X={x1,x2,...,xn},其中xi是具有d个特征的列向量,结果集y={y1,y2,...,yn},其中yi是输入xi对应的结果。
目标:构建目标函数,其中是一个1*d的行向量。可以理解为由一个1*d和d*1的矩阵相乘,得到一个数值(1*1的矩阵)这样就是该回归函数得到的误差。为了更好地适应该数据的线性函数,最小化误差,其中误差使用平方误差,因为线性回归有个合理的假设:该数据集中的噪音是服从均值为0的高斯分布。所以线性回归的目标是最小化目标函数。
求解方法
目标函数是个凸函数(convex function,二阶导数非负),基本的方法有最小二乘法、梯度下降和牛顿方法。最小二乘法是一个数学的方法,而梯度下降和牛顿方法的过程是迭代进行的。
1. 最小二乘法(Least-Square)
将输入函数中的x与y看做矩阵,目标函数求导,令其导数为0,则可以求得全局最优值。其中X是n*d的输入矩阵,是矩阵X的转置(transpose)。
2. 梯度下降(Gradient decent)
对目标函数求偏导,,,w的更新过程总是会沿着梯度下降的方向,其中是步长,大于0的;若干次迭代之后,w会趋于稳定。
3. 牛顿方法(Newton Method)
1) 给一个w的初值
2) 求曲线在w的切线与x轴的交点复制给新的w
3) 重复上述过程,直至w不发生改变。
牛顿方法解决线性回归问题的公式如,其中H为Hessian矩阵,其规模为d*d,其中d是特征的数量。。
上述三种方法中,最小二乘法比较简单,只需要进行矩阵的求逆及乘法,需要维护一个n*d的矩阵,如果数据量很大,内存开销太大,所以最小二乘法适应于数据量小的计算;而迭代的方法则适合数据量较大的计算。
方法的改进
我们介绍的改进主要是针对于最小二乘法的。
1. 加权线性回归(locally weighted linear regression,LWLR)
有些数据的线性不是太明显,如果直接使用线性回归会出现欠拟合(underfit),LWLR通过给数据加权。,其中W是一个权值矩阵,是只有对角线元素,其余全为0,一般采用高斯加权,其中k是控制权值的力度。
具体效果如图1和图2。
图1 LR的结果 图2 LWLR的结果
2. Ridge Regression
求解w的公式需要求一个矩阵的逆,如果该矩阵是非奇异矩阵(非满秩矩阵),就不存在逆矩阵,w就无解了,为了解决这个问题Ridge Regression对LR做了相应的改变。,其中矩阵I是对角线为1,其余为0的矩阵。
Ridge Regression的另外一种表示是最小化目标函数,即,然后加入限制条件。该方式可以转换为.
3. Lasso Regression
Ridge Regression的公式相当于在原始LR的基础上加上一个限制,而Lasso Regression则是将限制条改为。
其目标函数仍然可以改写为。
4. Best Subset Selection
Best Subset Selection方法选择对该目标函数作用效果()比较大的特征,选择的特征i,其中t是可以调整的阈值。
改进方法的比较
假设基本线性回归的目标函数解为,则改进方法的解如表1和图3:表1 各种改进放的解
图3 各种方法的解
过拟合问题
过拟合问题,可以像Ridge或者Lasso中加入对w的限制,舍去那些w较小的值。
Bayes理解
之前一直觉得损失函数是假设的,Bayes理论对其进行一个理论推导,这个推导是基于一个假设:噪音分布满足高斯分布(基于大数定理),利用最大似然估计得到损失函数式最小二乘的形式。
参考文献
1. Action in Machine Learning(机器学习实战).
2. Pattern Recognition and Machine Learning.
3. The Elements of Statistical Learning.
- 线性回归(Linear Regression,LR)
- 线性回归(linear regression)
- 线性回归(linear regression)
- 线性回归(Linear Regression)
- 线性回归(Linear Regression)
- 线性回归(Linear Regression)
- Linear Regression(线性回归)
- 线性回归(Linear Regression)
- Linear Regression 线性回归
- linear regression 线性回归
- 线性回归 Linear Regression
- Linear regression(线性回归)
- 线性回归Linear Regression
- 线性回归 linear regression
- 线性回归(Linear Regression)
- 线性回归(linear regression)
- 线性回归(Linear Regression)
- 线性回归(Linear Regression)
- 数据结构java版三 Java内置数据结构
- python多线程在socket编程中的应用(代码范例)
- 将博客搬至CSDN
- 12个乒乓球称3次,分出轻重
- 【MonogoDB】The high update operation of MongoDB
- 线性回归(Linear Regression,LR)
- malloc过程中做了那些?
- 分析JDK动态代理较好的文章
- FOJ1138 Easy Task
- Android 图片失真的原因
- GCD(Grand Central Dispatch)和Block 使用-浅析
- rmmod: chdir(/lib/modules): No such file or directory 解决方法 (转)
- 获取3G或wifi流量信息
- 构造函数能不能是虚函数