入坑机器学习:五,多变量线性回归

简介: 我们开始随机选择一系列的参数值,计算所有的预测结果后,再给所有的参数一个新的值,如此循环直到收敛。

一,多维特征


目前为止,我们探讨了单变量 / 特征的回归模型,现在我们对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(𝑥 1 , 𝑥 1 , . . . , 𝑥 𝑛 ) 。


c683af55a9974200952e55955c7a1756.png

8702328779ba46a182b754f1faea3c98.png


上标T代表矩阵的转置


二,多变量梯度下降:


与单变量线性回归类似,在多变量线性回归中,我们也构建一个代价函数,则这个代价


函数是所有建模误差的平方和,即:


fb43658480cf437b81422e0c5d99e288.png

53f1b57a88e24a21b6e3b1a9aaf0c96a.png


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

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


a722187a8d954d4685a2a579caded938.png


我们开始随机选择一系列的参数值,计算所有的预测结果后,再给所有的参数一个新的值,如此循环直到收敛。


三,梯度下降实践


1,特征缩放


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


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


650cb9adc57440249e3b6344a058d40d.png


解决的方法是尝试将所有特征的尺度都尽量缩放到-1 到 1 之间。如图:


c2efb782e08c4fde9f3157d9addd117c.png


简介


对于某些机器学习的算法,若没有做过标准化,目标函数会无法适当的运作。举例来说,多数的分类器利用两点间的距离计算两点的差异,若其中一 个特征具有非常广的范围,那两点间的差异就会被该特征左右,因此,所有的特征都该被标准化,这样才能大略的使各特征依比例影响距离。


特征缩放(Feature Scaling)是将不同特征的值量化到同一区间的方法,也是预处理中容易忽视的关键步骤之一。除了极少数算法(如决策树和随机森林)之外,大部分机器学习和优化算法采用特征缩放后会表现更优。


动机


因为在原始的资料中,各变数的范围大不相同。对于某些机器学习的算法,若没有做过标准化,目标函数会无法适当的运作。举例来说,多数的分类器利用两点间的距离计算两点的差异,若其中一 个特征具有非常广的范围,那两点间的差异就会被该特征左右,因此,所有的特征都该被标准化,这样才能大略的使各特征依比例影响距离。


另外一个做特征缩放的理由是他能使加速梯度下降法的收敛。


方法


重新缩放


最简单的方式是重新缩放特征的范围到[0, 1]或[-1, 1], 依据原始的资料选择目标范围,通式如下:


3d85b79e6be745c78ef5f82350e3e23c.png


x 是原始的值, x' 是被标准化后的值。例如,假设我们有学生的体重资料,范围落在[160磅, 200磅],为了重新缩放这个资料,我们会先将每个学生的体重减掉160,接着除与40(最大体重与最小体重的差值) [2]


标准化


在机器学习中,我们可能要处理不同种类的资料,例如,音讯和图片上的像素值,这些资料可能是高维度的,资料标准化后会使每个特征中的数值平均变为0(将每个特征的值都减掉原始资料中该特征的平均)、标准差变为1,这个方法被广泛的使用在许多机器学习算法中(例如:支持向量机、逻辑回归和类神经网络)。 [2]


优点


特征缩放可以使机器学习算法工作的更好。比如在K近邻算法中,分类器主要是计算两点之间的欧几里得距离,如果一个特征比其它的特征有更大的范围值,那么距离将会被这个特征值所主导。因此每个特征应该被归一化,比如将取值范围处理为0到1之间。


特征缩放也可以加快梯度收敛的速度。 [1]


应用


在随机梯度下降法中, 特征缩放有时能加速其收敛速度。而在支持向量机中,他可以使其花费更少时间找到支持向量,特征缩放会改变支持向量机的结果。 [1]


2,学习率


梯度下降算法收敛所需要的迭代次数根据模型的不同而不同,我们不能提前预知,我们可以绘制迭代次数和代价函数的图表来观测算法在何时趋于收敛。


也有一些自动测试是否收敛的方法,例如将代价函数的变化值与某个阀值(例如 0.001) 进行比较,但通常看上面这样的图表更好。


梯度下降算法的每次迭代受到学习率的影响,如果学习率 𝑎 过小,则达到收敛所需的迭代次数会非常高;如果学习率𝑎 过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛。


通常可以考虑尝试些学习率:

𝛼 = 0.01 , 0.03 , 0.1 , 0.3 , 1 , 3, 10


四,特征缩放和多项式回归:


668285b010f94849aa10f612de503815.png


47e0b3c728c94b6aa68f91ebc3c742e5.png

910a531966e646dbaccc344c75f7face.png


通常我们需要先观察数据然后再决定准备尝试怎样的模型。 另外,我们可以令:

𝑥2 = 𝑥 2^2 , 𝑥 3 = 𝑥 3^3 ,从而将模型转化为线性回归模型。


根据函数图形特性,我们还可以使:

ℎ 𝜃 (𝑥) = 𝜃 0 + 𝜃 1 (𝑠𝑖𝑧𝑒) + 𝜃 2 (𝑠𝑖𝑧𝑒) 2


或者 :

ℎ 𝜃 (𝑥) = 𝜃 0 + 𝜃 1 (𝑠𝑖𝑧𝑒) + 𝜃 2 √𝑠𝑖𝑧𝑒


注:如果我们采用多项式回归模型,在运行梯度下降算法前,特征缩放非常有必要。


43420c92d3f64f418589fa52961a8404.png


多项式回归在回归分析中很重要,因为任意一个函数至少在一个较小的范围内都可以用多项式任意逼近,因此在比较复杂的实际问题中,有时不问y与诸元素的确切关系如何,而用回归分析进行分析运算。


1dd9649997494ba6bd7c8471aee0515c.png


五,正规方程:


到目前为止,我们都在使用梯度下降算法,但是对于某些线性回归问题,正规方程方法


是更好的解决方案。如:


da2e52e87acd4ebd85f5516775aa39d8.png

5f283f49936d446d8fa6cbb86ddc9d94.png


bd3ce44d7acc41be9702ee8d5001626a.png


6ec30903a4c34223937ddd54031e37cf.png


注:对于那些不可逆的矩阵(通常是因为特征之间不独立,如同时包含英尺为单位的尺寸和米为单位的尺寸两个特征,也有可能是特征数量大于训练集的数量),正规方程方法是不能用的。


4cd7a8a608ee4dfd9612751dca47bade.png

b3f36443c5fd435da38775ff1b523531.png


基本信息


编辑 播报


为了获得更可靠的结果,测量次数n总要多于未知参数的数目t,即所得误差方程式的数目总是要多于未知数的数目。因而直接用一般解代数方程的方法是无法求解这些未知参数的。最小二乘法则可以将误差方程转化为有确定解的代数方程组(其方程式数目正好等于未知数的个数),从而可求解出这些未知参数。这个有确定解的代数方程组称为最小二乘法估计的正规方程(或称为法方程)。


线性参数的最小二乘法处理程序可归结为:首先根据具体问题列出误差方程式;再按最小二乘法原理,利用求极值的方法将误差转化为正规方程;然后求解正规方程,得到待求的估计量;最后给出精度估计。对于非线性参数,可先将其线性化,然后按上述线性参数的最小二乘法处理程序去处理。因此,建立正规方程是待求参数最小二乘法处理的基本环节。


13b31d0c41bf448fb84ebb7509adc625.png


***不可逆性:(optional)

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