Scikit-Learn线性回归(四)




1、梯度下降

1.1、梯度下降概述


在第一篇文章 Scikit-Learn线性回归(一) 中,我们给出了线性回归的损失函数的定义:
L = ∑ i = 1 m ( y i − f ( x i ) ) 2 L=\sum_{i=1}^m(y_i-f(x_i))^2 L=i=1m(yif(xi))2

回忆一下,损失函数主要用于评估模型拟合的好坏,损失函数衡量了我们构造的模型的预测值与真实值的差异,因此,我们希望我们的预测结果与真实值的差异越小越好。也就是我们希望损失函数取得最小值

损失函数取得最小值是我们构建模型的本质要求,求解模型的特征向量 ω \omega ω是我们构建模型的核心问题

根据损失函数(最小二乘法),我们的求解目标可以转换为求解误差平方和(残差平方和)的最小值:
m i n ω = ∣ ∣ Y − X ω ∣ ∣ 2 2 min_\omega={||Y-X\omega||_2}^2 minω=∣∣YXω22

而根据数学知识,当我们的误差平方和取得最小值时,线性回归模型特征 ω \omega ω就是最优解

最优解的求解方法主要有两种:最小二乘法(数学方式)和梯度下降法。最小二乘法通过数学求导的方式求函数的极值进而推导出线性回归的解;而梯度下降采用近似逼近,是一种迭代方法

在线性回归(详见:传送门)一文中,我们已经通过最小二乘法推导了线性回归的解析解的正规方程:
ω = ( X T X ) − 1 X T Y \omega=(X^TX)^{-1}X^TY ω=(XTX)1XTY

然而,很多模型通过这种数学方式求解是推导不出解析解的,所以就需要使用梯度下降法来搜索最优解。基于梯度下降我们可以推导出线性回归的最优解析解。梯度下降法是使用最广泛的一种优化方法

梯度下降法不是机器学习专属的算法,它是一种基于搜索的优化方法,也就是通过不断的搜索然后找到损失函数的最小值

1.2、梯度下降及原理


观察我们的损失函数转换后的求解目标,根据数学知识,误差平方和(函数)为二次函数形式,且函数开口向上,因此,函数一定有唯一最小值。当函数取得最小值时的 ω \omega ω就是最优解

在这里插入图片描述

上图中,纵坐标表示损失函数L的值,横坐标表示系数 ω \omega ω,每一个 ω \omega ω都会对应一个损失函数L的值,我们希望损失函数收敛,即找到一个 ω \omega ω值,使得损失函数L的值最小

根据数学知识,要判断一个点A是否是损失函数L的最小值,即求该点的导数。点A的导数就是该点切线的斜率,所以导数描述了一个函数在某一点附近的变化率,并且导数大于零时,函数在区间内单调递增,导数小于零时函数在区间内单调递减

所以, ∂ L ∂ ω \frac{\partial L}{\partial\omega} ωL表示损失函数L增大的变化率,- ∂ L ∂ ω \frac{\partial L}{\partial\omega} ωL表示损失函数L减小的变化率

再在曲线上定义一点B,B点的 ω \omega ω就是A点的 ω \omega ω值加上损失函数L递减变化率- η ∂ L ∂ ω \eta\frac{\partial L}{\partial\omega} ηωL
ω B = ω A − η ∂ L ∂ ω = ω A + ∇ J ( ω ) \omega^B=\omega^A-\eta\frac{\partial L}{\partial\omega}=\omega^A+\nabla J(\omega) ωB=ωAηωL=ωA+

  • 23
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scikit-learn是一个用于机器学习Python库,它提供了一系列用于回归分析的算法和工具。其中包括了非线性回归模型的实现。非线性回归是指因变量和自变量之间的关系不是简单的线性关系。 Scikit-learn中的非线性回归模型通过引入非线性的特征变换或者使用非线性的核函数来适应非线性数据关系。我们可以使用花费最小二乘法(如岭回归、Lasso回归、弹性网络等)或者支持向量回归(SVR)进行非线性回归建模。 非线性回归模型的使用步骤大致如下: 1. 载入数据:将数据导入Python环境,可以使用pandas库加载CSV文件或者直接导入NumPy数组格式的数据。 2. 特征转换:根据实际情况对特征进行非线性转换,例如多项式特征转换(PolynomialFeatures)或者其他的基函数转换。 3. 划分数据集:将数据集划分为训练集和测试集,训练集用于模型参数的学习,测试集用于模型的评估。 4. 模型训练:使用Scikit-learn中的非线性回归模型进行训练,例如岭回归、Lasso回归、弹性网络或者支持向量回归(SVR)等。 5. 模型评估:根据测试集上的表现指标,如均方误差(Mean Squared Error)、R平方值(R-squared)等评估模型的性能。 6. 模型预测:使用训练好的模型对新样本进行预测,得到预测结果。 Scikit-learn线性回归模型的优点是具有灵活性和可解释性。同时,Scikit-learn库还提供了交叉验证、特征选择、模型选择等功能,可以帮助我们更好地进行非线性回归问题的建模和评估。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值