常用的回归模型及其代码实现

这篇博客介绍了线性回归的基本概念,包括单变量和多变量线性回归,并强调了其在处理线性关系明显的数据集时的优势。文章详细讨论了线性回归的特性,如快速建模和对异常值的敏感性。接着,它涵盖了成本函数和梯度下降的计算过程,以及如何使用梯度下降优化模型参数。此外,还提供了使用Python的sklearn库实现线性回归模型的示例,特别是针对波士顿房价预测的问题。
摘要由CSDN通过智能技术生成

线性回归(Linear Regression)

机器学习中最简单的回归模型,在一元回归模型中,形式为一元函数关系Y= Wx + b,称为单变量线性回归(Single Variable Linear Regression )。简单来说就是用一元线性模型来拟合数据关系。当然,实际运用基本都是多变量的线性回归(Multi Variable Linear Regression)(单变量高中生都能拟合了),体现了多个输入自变量(特征变量)与输出因变量之间的关系。
多变量线性模型
其中a是系数,b是偏置。适用于建模线性可分数据,使用权重系数a来加权每个特征变量的重要性,可以使用随机梯度(SGD)来确定这些权重。

线性回归的特点:

  1. 建模速度快,使用建模线性关系明显且数据量不大的情况。
  2. 有非常直观的理解和解释,常用于机器学习的入门
  3. 对异常值非常敏感,建模前最好删除异常值

线性回归的代码实现

成本函数(Cost Function)

使用成本函数J来表示预测结果h(x)与实际输出y之间的误差,这里可以使用最简单的“最小均方误差”(Least mean square)来描述:
在这里插入图片描述
其中,m表示样本的数量,i表示第i个样本,其中的1/2,是为了求导方便而添加的专业习惯。

梯度下降(SGD)

如上文所说,我们需要使用梯度下降确定我们的参数w=和b,使得损失函数J的值最小。
在这里插入图片描述
关于成本函数J的图像大致像一个“碗”(上),我们来看看J关于一个参数w1(其实应该是theta,代表权重参数)的图像
在这里插入图片描述
在这里插入图片描述
所以按照一般的思路,就是对权重参数求导,使得倒数为0的参数的值,就是成本函数J取得最小值的地方。但是大多时候,求得的偏导的数学表达式很复杂,所以我们采用一种叫做“梯度下降(gradient descent)”的方法
在这里插入图片描述
即:

在这里插入图片描述
通俗一点讲,就是希望权重参数“沿着J减小的方向(梯度减小的方向),一步一步(也就是学习率alpha)的走到那个最低点”

代码实现——使用sklearn的线性回归模型
class LinearRegression(fit_intercept = True,normalize = False,copy_X = True,n_jobs = 1)
  """
  :param normalize:如果设置为True时,数据进行标准化。请在使用normalize = False的估计器调时用fit之前使用preprocessing.StandardScaler
 
  :param copy_X:boolean,可选,默认为True,如果为True,则X将被复制
 
  :param n_jobs:int,可选,默认1。用于计算的CPU核数
  """

实例代码:

from sklearn.linear_model import LinearRegression
reg = LinearRegression()
波士顿房价预测
  1. 波士顿房价的数据描述</
  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值