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

310

​携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第8天,点击查看活动详情

一,多维特征

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

​编辑

 ​编辑

上标T代表矩阵的转置

二,多变量梯度下降:

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

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

​编辑

​编辑

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

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

​编辑

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

三,梯度下降实践 

1,特征缩放

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

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

​编辑

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

​编辑

简介

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

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

动机

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

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

方法

重新缩放

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

​编辑

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

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

​编辑

 ​编辑

 ​编辑

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

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

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

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

或者:

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

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

​编辑

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

​编辑

五,正规方程:


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

是更好的解决方案。如:

​编辑

​编辑

​编辑 ​编辑

注:对于那些不可逆的矩阵(通常是因为特征之间不独立,如同时包含英尺为单位的尺

寸和米为单位的尺寸两个特征,也有可能是特征数量大于训练集的数量),正规方程方法是

不能用的。

 ​编辑

​编辑

基本信息

编辑 播报

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

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

 ​编辑

***不可逆性:(optional)