机器学习模型自我代码复现:回归

本文介绍了一个线性回归模型的实现过程,包括数据预处理、梯度下降法等关键步骤,并通过自建数据集验证了多项式回归、不同梯度下降方式及岭回归、Lasso回归的效果。

根据模型的数学原理进行简单的代码自我复现以及使用测试,仅作自我学习用。模型原理此处不作过多赘述,仅罗列自己将要使用到的部分公式。代码框架部分参照了以下视频中的内容。清华博士爆肝300小时录制!!机器学习入门必备的10个经典算法(原理+复现+实验)被他讲得如此清晰!_哔哩哔哩_bilibili

如文中或代码有错误或是不足之处,还望能不吝指正。

线性回归,主要任务是寻找一个或多个因变量与自变量之间的关系,拟合出y=WX+b形式的回归方程。

求解线性回归时,根据最小二乘法,要找到使得误差平方和\sum (\hat{y}-y)^{2}的最小W,针对W求偏导,可以得到\hat{W}^{*} = (X^{T}X)^{-1}X^{T}y。针对于存在的求逆操作,使用梯度下降法求解。

W_j^{'}=W_j + (1/m)\alpha\sum (y^{(i)}-\hat{y^{(i)}})X^{(i)}_j 其中α为学习率,m为每次梯度下降时传入的样本数量。

岭回归在原本的误差平方和的基础上加入了L2惩罚项\sum W_j^{2},牺牲无偏性,增大偏差以减少方差,在出现多重共线性(自变量并不独立,而是互相之间存在关系)以及数据中有离群点时效果较好;用“机器学习”一点的话就是“模型更加稳定”。在实际的梯度下降中只需要再加入一个关于L2惩罚项偏导方向上的更新2 \alpha_{ridge}w_j即可。

Lasso回归则是加入了L1惩罚项\sum |W_j|,以此来剔除无关变量。但是由于L1惩罚项在0点处不是可微的,故而使用坐标下降法(每次只更新一个W_j)求解。

W_k^* = \begin{equation} \left\{ \begin{array}{lr} (r_k-\alpha_{lasso})/z_k(r_k>alpha_{lasso}) & \\ 0(alpha_{lasso}>=r_k>=-alpha_{lasso}) & \\ (r_k+\alpha_{lasso})/z_k(r_k<-alpha_{lasso}) & \end{array} \right. \end{equation}

其中

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值