【机器学习基础】多元线性回归(适合初学者的保姆级文章)

简介: 【机器学习基础】多元线性回归(适合初学者的保姆级文章)

1 多元线性回归

1.1 什么是多元线性回归

多元线性回归是一种统计分析方法,它涉及到两个或更多的自变量,并且因变量和自变量之间是线性关系。这种方法用于确定两个或更多个变量之间的定量关系。多元线性回归模型表示因变量(Y)与自变量(X1,X2,X3等)之间的线性关系。

  • 承接我们上一篇文章预测房价的例子

目前为止,我们探讨了单变量线性回归模型,现在我们对房价模型增加更多的特征,例如房间的数量,楼层数和房屋的年龄等,构成一个含有多变量的模型,模型中的特征为(x1,x2,…,xn)。

增添更多特征后,看一下各个变量名

  • n 代表特征的数量
  • x ( i ) x^{(i)}x(i)代表第i个训练实例,表示特征矩阵中的第i行,是一个向量,比如说,上图的
    x ( 2 ) = ( 1416 3 2 40 232 ) x^{(2)}=\begin{pmatrix} 1416\\ 3\\ 2\\ 40\\ 232 \end{pmatrix}x(2)=14163240232
  • x j ( i ) x_{j}^{(i)}xj(i)代表特征矩阵中第 𝑖 行的第 𝑗 个特征,也就是第 𝑖 个训练实例的第 𝑗 个特征。

假设函数

这个公式中有n+1个参数和n个变量,为了能够使公式简化一些,引入x 0 = 1 x_{0}=1x0=1,则公式转化为:h θ ( x ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n h_{\theta }(x)=\theta _{0}x_{0}+\theta _{1}x_{1}+\theta _{2}x_{2}+...+\theta _{n}x_{n}hθ(x)=θ0x0+θ1x1+θ2x2+...+θnxn

与单变量线性回归类似,在多变量线性回归中,我们也构建一个代价函数,和单变量代价函数类似,这个代价函数也是所有建模误差的平方和,即

1.2 多元的梯度下降

我们的目标和单变量线性回归问题中一样,是要找出使得代价函数最小的一系列参数。

多变量线性回归的批量梯度下降算法为:

下面是一元与多元的区别:


2 梯度下降需要注意的问题

2.1 学习率

在梯度下降的公式中,𝑎是学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的方向

向下迈出的步子有多大,在批量梯度下降中,我们每一次都同时让所有的参数减去学习速率乘以代价函数的导数。

  • 学习率与偏导的共同作用

α \alphaα 虽然决定了我们迈出的步子的大小,但是,步子的大小却不仅仅是由α \alphaα 决定的,还与它后面的偏导数有关。φ φ ϑ j J ( θ ) \frac{\varphi }{\varphi \vartheta _{j}}J(\theta )φϑjφJ(θ)就是我们前面提到的“梯度”,梯度的本质是一个向量,(有大小,有方向),其大小和α \alphaα 一同决定了迈出步子的大小,其方向决定了“下山”最快的方向。

  • 学习率过大或者过小的影响
  1. 学习率过小

如果α \alphaα太小,即我们下山的步子迈的很小,每次我们只能一点一点的移动,这样导致我们走的很慢,需要很多步才能走到最低点。

  1. 学习率过大

如果α \alphaα太大,那么梯度下降法可能会越过最低点,甚至可能无法收敛,下一次迭代又移动了一大步,越过一次,又越过一次,一次次越过最低点,直到你发现实际上离最低点越来远。

2.2 特征缩放

在我们面对多维特征问题的时候,我们要保证这些特征都具有相近的尺度,这将帮助梯度下降算法更快地收敛。

来看下面这个例子:

假设我们使用两个特征,房屋的尺寸和房间的数量,尺寸的值为 0- 2000 平方英尺,而房间数量的值则是 0-5 ,以两个参数分别为横纵坐标,绘制代价函数的等高线图能,看出图像会显得很扁,梯度下降算法需要非常多次的迭代才能收敛。

解决的方法是尝试将所有特征的尺度都尽量缩放到一个固定的范围内

我们只需要使用以下方法就可以做到这一点:

2.3 特征与多项式回归

对于这么多特征以及训练集,如何选择才会使得训练出来的函数预测效果更好呢?

如果需要更多的特征,我们的多项式会显得特别的冗长,我们可以将某些特征用另外的少数特征来代替,通过平方等方式表示:

同时,为了减小计算量,前面的特征缩放的工作是十分有必要的

2.4 正规方程

多元线性回归的正规方程是通过矩阵形式来求解线性回归参数的方法。其目的是通过求解导数为0来得到参数的最小二乘估计值。简单来说,正规方程是通过数学方法快速计算出线性回归模型的最优解。

由前面我们知道代价函数:J ( θ ) = 1 2 m Σ i = 1 m h θ ( ( x ( i ) ) − y i ) 2 J(\theta )=\frac{1}{2m}\Sigma _{i=1}^{m}h_{\theta }((x^{(i)})-y^{i})^{2}J(θ)=2m1Σi=1mhθ((x(i))yi)2,我们也可以把它改写成下面的形式

假设一个数据集X XXm mm个样本,n nn个特征。数据集X XX的特征向量表示为:

假设我们的训练集特征矩阵为 𝑋 (包含了 𝑥 0 = 1 )并且我们的训练集结果为向量 𝑦,则利用正规方程解出向量:θ = ( X T X ) − 1 X T y \theta =(X^{T}X)^{-1}X^{T}yθ=(XTX)1XTy

下面是以四个特征为例,利用正规方程的求解:

计算过程

从上面的公式可以看到,计算过程有一个求逆的步骤,所以对于那些不可逆的矩阵,正规方程是不能用的。

  • 最后,这则方程和梯度下降法的比较
  • 另外

梯度下降适用于各种模型,正则方程只适用于线性模型,不适用逻辑回归等其他模型

只要特征变量的数目并不大,正规方程是一个很好的计算参数𝜃的替代方法。 具体地说,只要特征变量数量小于一万,我通常使用正规方程法,而不使用梯度下降法。

相关文章
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
|
30天前
|
机器学习/深度学习 算法 TensorFlow
机器学习算法简介:从线性回归到深度学习
【5月更文挑战第30天】本文概述了6种基本机器学习算法:线性回归、逻辑回归、决策树、支持向量机、随机森林和深度学习。通过Python示例代码展示了如何使用Scikit-learn、statsmodels、TensorFlow库进行实现。这些算法在不同场景下各有优势,如线性回归处理连续值,逻辑回归用于二分类,决策树适用于规则提取,支持向量机最大化类别间隔,随机森林集成多个决策树提升性能,而深度学习利用神经网络解决复杂模式识别问题。理解并选择合适算法对提升模型效果至关重要。
192 4
|
1月前
|
机器学习/深度学习 数据采集 人工智能
【机器学习】解释什么是线性回归?
【5月更文挑战第15天】【机器学习】解释什么是线性回归?
|
9天前
|
机器学习/深度学习 数据采集 算法
【机器学习】线性回归:以房价预测为例
【机器学习】线性回归:以房价预测为例
47 1
|
15天前
|
机器学习/深度学习 数据可视化 算法
【阿旭机器学习实战】【29】产品广告投放实战案例---线性回归
【阿旭机器学习实战】【29】产品广告投放实战案例---线性回归
|
8天前
|
机器学习/深度学习 算法 数据格式
机器学习线性回归——概念梳理及非线性拟合
机器学习线性回归——概念梳理及非线性拟合
5 0
|
1月前
|
机器学习/深度学习 Python
利用Python实现一个简单的机器学习模型:线性回归详解
利用Python实现一个简单的机器学习模型:线性回归详解
41 2
|
14天前
|
机器学习/深度学习 存储 算法
【机器学习】深入探索机器学习:线性回归算法的原理与应用
【机器学习】深入探索机器学习:线性回归算法的原理与应用
23 0
|
15天前
|
机器学习/深度学习 算法
【阿旭机器学习实战】【31】股票价格预测案例--线性回归
【阿旭机器学习实战】【31】股票价格预测案例--线性回归
|
1月前
|
机器学习/深度学习 数据采集 人工智能
【机器学习】非线性回归与线性回归有何不同?
【5月更文挑战第19天】【机器学习】非线性回归与线性回归有何不同?

热门文章

最新文章