线性模型(二)-- 线性回归公式推导

我们在初中学习线性方程的时候就已经接触过回归的相关概念,在这里简单介绍一下机器学习中的“回归”,机器学习的目的有两个:回归和分类,回归是解决连续数据的预测问题,而分类是为了解决离散数据的预测问题。线性回归是机器学习算法中最简单的算法之一,它是监督学习的一种算法,主要思想是在给定训练集上学习得到一个线性函数,在损失函数的约束下,求解相关系数,最终在测试集上测试模型的回归效果。线性模型的形式如下


写成向量形式就是


其中x可以看成特征,看成是权重。我们的目标就是找出所有的值,进而出现新的x值时,可以对函数的输出进行估计。那我们如何求得使函数输出最接近样本的值呢?函数输出最接近样本值就意味着二者之差尽可能的小。我们假设输入的特征为,对应的样本值为,我们用模型估计出的值为,估计值与真实值之间的误差表示为


成为损失函数,损失函数的自变量为,所以我们需要找到最小时的取值。

在机器学习中我们采用梯度下降算法求解该方程,将向量表达形式转为矩阵表达形式,则有,其中X为m行n列的矩阵(m为样本个数,n为特征个数),为n行1列的矩阵,Y为m行n列的矩阵,对进行如下变换



                      

接下来对求偏导,需要用到以下几个矩阵的求导法则



                                      (*)

对于(*)式可以假设X为一行一列,,其导数为2AX,方便记忆

所以有

则有

这是在可逆的前提下得到的,事实上存在不可逆的情况,我们在之后的ridge和lasso回归会针对这样的情况进行讨论,在此我们默认其是可逆的。

可以根据公式直接求得的值,但是当X维度很高时矩阵求逆计算量非常大,所以我们在实际应用中往往采用梯度下降的算法更新,方法如下


其中为学习率。算法部分主要着重公式推导,梯度下降算法在对应的机器学习项目实践中会详细介绍。

到此为止,线性回归模型的公式推导已经结束,下一节我们将探讨线性回归与广义线性模型之间的关系以及对损失函数的一些思考。

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
<h3>回答1:</h3><br/>scikit-learn是一个流行的Python机器学习库,它包含了许多用于数据挖掘和数据分析的工具。其中,线性回归是一种常见的机器学习算法,用于预测一个连续的输出变量。在这个实践中,我们将使用scikit-learn来实现波士顿房价预测,这是一个经典的回归问题。我们将使用波士顿房价数据集,该数据集包含了506个样本和13个特征,我们将使用这些特征来预测房价。我们将使用scikit-learn的线性回归模型来训练我们的模型,并使用测试数据集来评估模型的性能。最后,我们将使用模型来预测新的房价。 <h3>回答2:</h3><br/>Scikit-learn是一个开源机器学习库,提供了丰富的工具和算法,能够方便地进行数据挖掘、数据分析和机器学习任务。其中,线性回归是最经典的机器学习算法之一,可用于建立模型并预测实际数值。本文将介绍如何使用Scikit-learn进行线性回归实践,以波士顿房价预测为例。 首先,我们需要入相关的库,包括numpy、pandas和matplotlib等。随后,我们需要加载数据集,这里使用Scikit-learn自带的波士顿房价数据集。该数据集包含506个样本和13个特征,其中每个特征都代表了房屋的一些属性,比如犯罪率、公路可达性、房屋年龄等。我们需要将其分为训练集和测试集,通常采用80:20的比例。 接下来,我们需要构建线性回归模型并进行训练。对于Scikit-learn库中的线性回归模型来说,我们只需调用LinearRegression函数即可,它自动帮我们进行拟合和解。在进行训练之前,我们需要先对数据进行标准化处理,以便提高模型的准确性和稳定性。 一旦模型训练完成,我们可以使用测试集对其进行评估。在这里,我们可以利用Scikit-learn提供的评估函数,例如均方误差(MSE)、均方根误差(RMSE)和决定系数(R2),以判断模型的准确性和泛化能力。通常情况下,我们希望模型在测试集上的表现要尽可能接近于训练集。 最后,我们可以利用训练好的模型对新数据进行预测,这里我们可以设置几个自定义的房屋参数,包括犯罪率、公路可达性、房屋年龄等,然后用模型对这些参数进行预测,以预测新房屋的价格。 总之,Scikit-learn在机器学习和数据科学领域有着广泛的应用,尤其对于线性回归等传统机器学习算法的应用非常丰富,并且使用起来非常简单、方便。波士顿房价预测是一个入门级别的机器学习项目,对于初学者来说,非常适合用来熟悉Scikit-learn的使用方法和建模流程。 <h3>回答3:</h3><br/>线性回归机器学习中最常用的方式之一,而波士顿房价数据集是一个我们可以应用线性回归的经典案例。对于一个人们以及公司都乐意了解波士顿地区的房价趋势的问题来说,这个数据集非常有意义。scikit-learn是一个机器学习库,这里我们将介绍如何使用scikit-learn来预测波士顿房价。 在使用scikit-learn解决线性回归问题时,首先要解决的是如何将数据集分为训练集和测试集。这个步骤可以使用train_test_split函数,它将数据集随机划分成训练集和测试集。我们通常将80%的数据划分为训练集,剩下的20%划分为测试集。 接下来,我们需要创建模型并将其拟合到训练数据上。scikit-learn的线性回归模型是LinearRegression,我们可以直接使用它。我们创建模型的方式非常简单,只需要用LinearRegression()构造函数实例化一个对象即可。然后,我们在训练集上使用fit()方法来拟合模型。 一旦拟合完成,我们就可以对测试数据进行预测了。我们使用predict()方法来实现这个过程,并将结果存入变量y_pred中。 最后,我们可以通过比较预测结果和实际结果来评估模型表现。这里我们使用mean_squared_error函数来计算均方差。均方差越小表明模型的预测结果越接近真实结果,说明模型的表现越好。 在波士顿房价预测任务中,线性回归表现良好。通过这个例子,不仅可以学习如何使用scikit-learn实现线性回归,还可以了解如何评估模型。在真实任务中,我们还可以将特征工程和模型调优结合起来,提高模型的预测能力和泛化能力。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小建儿的小站

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值