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

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

一,多维特征


目前为止,我们探讨了单变量 / 特征的回归模型,现在我们对房价模型增加更多的特征,例如房间数楼层等,构成一个含有多个变量的模型,模型中的特征为(𝑥 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)

目录
相关文章
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
机器学习之线性回归与逻辑回归【完整房价预测和鸢尾花分类代码解释】
|
5天前
|
机器学习/深度学习 数据采集 人工智能
【机器学习】解释什么是线性回归?
【5月更文挑战第15天】【机器学习】解释什么是线性回归?
|
1天前
|
机器学习/深度学习 数据采集 人工智能
【机器学习】非线性回归与线性回归有何不同?
【5月更文挑战第19天】【机器学习】非线性回归与线性回归有何不同?
|
3天前
|
机器学习/深度学习 数据采集 人工智能
【机器学习】怎样检测到线性回归模型中的过拟合?
【5月更文挑战第17天】【机器学习】怎样检测到线性回归模型中的过拟合?
|
6天前
|
机器学习/深度学习
机器学习基础入门(二)(线性回归与成本函数)
已知一系列房子的大小以及其对应的价格的数据,要求是已知房子大小预测其房子的价格
|
6天前
|
机器学习/深度学习 算法 数据挖掘
【Python 机器学习专栏】Python 中的线性回归模型详解
【4月更文挑战第30天】本文介绍了Python中的线性回归模型,包括基本原理、实现步骤和应用。线性回归假设因变量与自变量间存在线性关系,通过建立数学模型进行预测。实现过程涉及数据准备、模型构建、参数估计、评估和预测。常用的Python库有Scikit-learn和Statsmodels。线性回归简单易懂,广泛应用,但对异常值敏感且假设线性关系。其扩展形式如多元线性、多项式回归和正则化方法能适应不同场景。理解并运用线性回归有助于数据分析和预测。
|
6天前
|
机器学习/深度学习 人工智能 分布式计算
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
R和Python机器学习:广义线性回归glm,样条glm,梯度增强,随机森林和深度学习模型分析
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
|
6天前
|
机器学习/深度学习 人工智能 算法
利用Python实现简单的机器学习算法——线性回归
本文介绍了如何使用Python语言和相关库,通过实现线性回归算法来进行简单的机器学习模型训练和预测。通过详细的代码示例和解释,帮助读者了解机器学习中的基础概念和实践操作。
|
6天前
|
机器学习/深度学习 人工智能
【人工智能】<吴恩达-机器学习>多变量线性回归&学习率&特征值
【1月更文挑战第26天】【人工智能】<吴恩达-机器学习>多变量线性回归&学习率&特征值

热门文章

最新文章