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

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

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

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

计算过程

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

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

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

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

相关文章
|
10天前
|
机器学习/深度学习 人工智能 算法
探索机器学习:从线性回归到深度学习
本文将带领读者从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将通过代码示例,展示如何实现这些算法,并解释其背后的数学原理。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和知识。让我们一起踏上这段激动人心的旅程吧!
|
23天前
|
机器学习/深度学习 人工智能 算法
探索机器学习中的线性回归模型
本文深入探讨了机器学习中广泛使用的线性回归模型,从其基本概念和数学原理出发,逐步引导读者理解模型的构建、训练及评估过程。通过实例分析与代码演示,本文旨在为初学者提供一个清晰的学习路径,帮助他们在实践中更好地应用线性回归模型解决实际问题。
|
25天前
|
机器学习/深度学习 自然语言处理 算法
深入理解机器学习算法:从线性回归到神经网络
深入理解机器学习算法:从线性回归到神经网络
|
7月前
|
机器学习/深度学习 算法 TensorFlow
机器学习算法简介:从线性回归到深度学习
【5月更文挑战第30天】本文概述了6种基本机器学习算法:线性回归、逻辑回归、决策树、支持向量机、随机森林和深度学习。通过Python示例代码展示了如何使用Scikit-learn、statsmodels、TensorFlow库进行实现。这些算法在不同场景下各有优势,如线性回归处理连续值,逻辑回归用于二分类,决策树适用于规则提取,支持向量机最大化类别间隔,随机森林集成多个决策树提升性能,而深度学习利用神经网络解决复杂模式识别问题。理解并选择合适算法对提升模型效果至关重要。
251 4
|
1月前
|
机器学习/深度学习 数据采集 算法
探索机器学习中的线性回归
【10月更文挑战第25天】本文将深入浅出地介绍线性回归模型,一个在机器学习领域中广泛使用的预测工具。我们将从理论出发,逐步引入代码示例,展示如何利用Python和scikit-learn库实现一个简单的线性回归模型。文章不仅适合初学者理解线性回归的基础概念,同时也为有一定基础的读者提供实践指导。
|
2月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
探索机器学习:从线性回归到深度学习
在这篇文章中,我们将一起踏上一场激动人心的旅程,穿越机器学习的广阔天地。我们将从最基本的线性回归开始,逐步深入到复杂的深度学习模型。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和深入的理解。让我们一起探索这个充满无限可能的世界吧!
|
7月前
|
机器学习/深度学习 数据采集 人工智能
【机器学习】解释什么是线性回归?
【5月更文挑战第15天】【机器学习】解释什么是线性回归?
|
2月前
|
机器学习/深度学习 API
机器学习入门(七):线性回归原理,损失函数和正规方程
机器学习入门(七):线性回归原理,损失函数和正规方程
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习:从线性回归到深度学习
【9月更文挑战第4天】在这篇文章中,我们将深入探讨机器学习的世界,从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将通过实际的代码示例,揭示这些模型背后的数学原理,以及如何在现实世界的问题中应用它们。无论你是初学者还是有经验的数据科学家,这篇文章都将为你提供新的视角和深入的理解。
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
探索机器学习的奥秘:从线性回归到深度学习
【8月更文挑战第26天】本文将带领读者走进机器学习的世界,从基础的线性回归模型开始,逐步深入到复杂的深度学习网络。我们将探讨各种算法的原理、应用场景以及实现方法,并通过代码示例加深理解。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的知识和技能。让我们一起揭开机器学习的神秘面纱,探索这个充满无限可能的领域吧!

热门文章

最新文章