一文读懂线性回归、岭回归和Lasso回归( 二 )


一文读懂线性回归、岭回归和Lasso回归

文章插图
Lasso回归采用一范数来约束,使参数非零个数最少 。而Lasso和岭回归的区别很好理解,在优化过程中,最优解为函数等值线与约束空间的交集,正则项可以看作是约束空间 。可以看出二范的约束空间是一个球形,而一范的约束空间是一个方形,这也就是二范会得到很多参数接近0的值,而一范则尽可能非零参数最少 。
一文读懂线性回归、岭回归和Lasso回归

文章插图
值得注意的是线性模型的表示能力有限,但是并不一定表示线性模型只能处理线性分布的数据 。这里有两种常用的线性模型非线性化 。对于上面的线性函数的构造,我们可以看出模型在以
一文读懂线性回归、岭回归和Lasso回归

文章插图
的坐标上是线性的,但是并不表示线性的模型就一定只能用于线性分布问题上 。假如我们只有一个特征
一文读懂线性回归、岭回归和Lasso回归

文章插图
,而实际上回归值是
一文读懂线性回归、岭回归和Lasso回归

文章插图
等,我们同样可以采用线性模型,因为我们完全可以把输入空间映射到高维空间
一文读懂线性回归、岭回归和Lasso回归

文章插图
,其实这也是核方法以及PCA空间变换的一种思想,凡是对输入空间进行线性,非线性的变换,都是把输入空间映射到特征空间的思想,所以只需要把非线性问题转化为线性问题即可 。另外一种是局部线性思想,即对每一个样本构建一个加权的线性模型 。
3.局部加权线性回归考虑到线性回归的表示能力有限,可能出现欠拟合现象 。局部加权线性回归为每一个待预测的点构建一个加权的线性模型 。其加权的方式是根据预测点与数据集中点的距离来为数据集中的点赋权重,当某点距离预测点较远时,其权重较小,反之较大 。由于这种权重的机制引入使得局部加权线性回归产生了一种局部分段拟合的效果 。由于该方法对于每一个预测点构建一个加权线性模型,都要重新计算与数据集中所有点的距离来确定权重值,进而确定针对该预测点的线性模型,计算成本高,同时为了实现无参估计来计算权重,需要存储整个数据集 。
局部加权线性回归,在线性回归基础上引入权重,其目标函数(下面的目标函数是针对一个预测样本的)如下:
一文读懂线性回归、岭回归和Lasso回归

文章插图
一般选择下面的权重函数,权重函数选择并非因为其类似于高斯函数,而是根据数据分布的特性,但权重函数的选取并不一定依赖于数据特性 。
一文读懂线性回归、岭回归和Lasso回归

文章插图
其中是待预测的一个数据点 。
对于上面的目标函数,我们的目标同样是求解使得损失函数最小化,同样局部加权线性回归可以采用梯度的方法,也可以从最小二乘法的角度给出闭式解 。
一文读懂线性回归、岭回归和Lasso回归

文章插图
其中是对角矩阵,
一文读懂线性回归、岭回归和Lasso回归

文章插图

线性回归核心思想最小化平方误差,可以从最小化损失函数和最小二乘角度来看,优化过程可以采用梯度方法和闭式解 。在闭式解问题中需要注意矩阵可逆问题 。考虑到过拟合和欠拟合问题,有岭回归和lasso回归来防止过拟合,局部加权线性回归通过加权实现非线性表示 。
4.代码实战A、线性回归
/**线性回归函数的实现,考虑一般的线性回归,最小平方和作为损失函数,则目标函数是一个无约束的凸二次规划问题,由凸二次规划问题的极小值在导数为0处取到,且极小值为全局最小值,且有闭式解 。根据数学表达式实现矩阵之间的运算求得参数w 。**/intregression(Matrix x,Matrix y){Matrix xT=x.transposeMatrix;Matrix xTx=xTx.multsMatrix(xT,x);Matrix xTx_1=xTx.niMatrix;Matrix xTx_1xT=xTx_1xT.multsMatrix(xTx_1,xT);Matrix ws;ws=ws.multsMatrix(xTx_1xT,y);cout<<"ws"<<endl;ws.print;return 0;}B、岭回归和Lasso回归
/**下面的岭回归函数只是在一般的线性回归函数的基础上在对角线上引入了岭的概念,不仅有解决矩阵不可逆的线性,同样也有正则项的目的,采用常用的二范数就得到了直接引入lam的形式 。**/intridgeRegres(Matrix x,Matrix y,double lam){Matrix xT=x.transposeMatrix;Matrix xTx=xTx.multsMatrix(xT,x);Matrix denom(xTx.row,xTx.col,lam,"diag");xTx=xTx.a


推荐阅读