机器学习笔记--多元线性回归与正规方程
注:本文为学习笔记,描述与截图多来自课件和百科,学习网站为:https://www.coursera.org/learn/machine-learning/home/week/2
多元线性回归
1.多个特征变量
在现实生活中,不可能只有一个特征变量,比如在预测房子价格的例子中,房屋的面积,卧室的数量,楼层数以及房子使用年限都可作为特征变量。具有多个变量的线性回归也称为“多元线性回归”。在后面的记录中,将采用以下符号来代表不同的元素:
具有多个特征变量的线性回归方程表达式定义如下:
可将作为房屋的基本价格,
为每平米房屋的价格,
为每层的价格,
为房子的平米数,
为房子的楼层数,等等。
根据矩阵的定义,多元线性回归方程可表达如下:
备注:在课程中=1,是为了方便进行矩阵运算。
2.多个变量的梯度下降
梯度下降方程通常都是相同的形式,只需为多个变量“ n”功能重复一下:
或
下图展示了一个特征变量与多个特征变量的梯度下降:
梯度下降的标准化
1.梯度下降之特征缩放
因为θ在小范围内会迅速下降,而在大范围内会缓慢下降,因此当变量非常不均匀时,会非常缓慢地振荡到最佳状态。
我们可以通过将每个输入值都设置在大致相同的范围内来加快梯度下降的速度。
举例来说,多数的分类器利用两点间的距离计算两点的差异,若其中一 个特征具有非常广的范围,那两点间的差异就会被该特征左右,因此,所有的特征都该被标准化,这样才能大略的使各特征依比例影响距离。而且特征缩放能使加速梯度下降法的收敛。通常情况下,应使各特征缩放到以下范围:
我们可使用特征缩放和均值归一化。
其中是特征(i)的所有值的平均值
是值的范围(最大值-最小值)或是标准偏差。
例如,表示房屋价格,范围为100至2000,平均值为1000,则
2.梯度下降之学习速率
在调试梯度下降中,应每次都减小,若是
迭代后反而增大,则应将学习速率α调小。
总结一下:
如果α太小:收敛缓慢。
如果太大:不会在每次迭代中都减小,因此可能不会收敛。
3.特征和多项式回归
我们可以通过几种不同的方式来改进我们的特征和假设函数的形式。
可将多个变量合并成一个变量,比如与
组合可形成新的参数
。
如果我们的线性假设函数不太适合数据,则说明函数不一定是直线。我们可以通过将其设为二次,三次或平方根函数(或任何其他形式)来更改假设函数的行为或曲线。
正规方程
梯度下降提供了一种最小化J的方法。现在描述第二种方法,这一次显式地执行最小化,而不求助于迭代算法。 在“正规方程”方法中,我们将通过显式地将其关于的导数并将其设置为零来最小化J。 这使我们无需迭代即可找到最佳
。 由于推导过程过于复杂没在这里不过多赘述,正态方程公式如下:
正规方程无需做特征缩放。以下是梯度下降与正规方程的比较:
利用正规方程,计算的复杂度为O(n3)。 因此,如果我们具有大量特征,则正常方程将变慢。 在实践中,当n超过10,000时,最好使用梯度下降的方法。
-
正规方程不可逆
在实际使用计算中,通常使用pinv()函数来取逆,而不是inv()函数。因为就算不可逆,pinv()函数依然会有返回值。不可逆的原因可能如下:
- 冗余要素,其中两个要素密切相关(即,它们线性相关)
- 特征过多(例如m≤n)。 在这种情况下,删除某些功能或使用“正则化”
在实际运用中出现这种问题时应删除线性相关的要素或删除过多的要素
关于"h(x) = theta' * x" vs. "h(x) = X * theta?"
h表示整个训练集所有假设值的向量,即m×1。在课程中X多为列向量,所以h(x) = theta' * x,而在实际练习中X为具有多行多列的矩阵,X的维度为m×n,所以h(x) = X * theta。