多变量线性回归也称为“多元线性回归”。
现在我们引入方程的符号,在这里我们可以有任意数量的输入变量。
适应这些多重特征的假设函数的多变量形式如下:
为了直观理解这个函数,我们可以把θ0看作一栋房子的基本价格,θ1是每平方米的价格,θ2是每层的价格,等等。x1是房子的平方米数,x2是楼层数,等等。
使用矩阵乘法的定义,我们的多变量假设函数可以简洁地表示为:
这是一个训练例子中假设函数的向量化;有关更多信息,请参阅矢量化课程。
为了方便起见我们设任意模型的x0=1,使得x和θ的元素数量都为n+1,可以进行矩阵运算
Gradient Descent For Multiple Variables(多变量梯度下降)
梯度下降方程本身通常是相同的形式;我们只需要将其重复使用到我们的“n”特征量上:
换句话说:
下图将一个变量的梯度下降与多个变量的梯度下降进行了比较:
梯度下降法实践 1-特征缩放(Feature Scaling)
我们可以通过让每个输入值在大致相同的范围内来加速梯度下降。这是因为θ在小范围内迅速下降,在大范围内缓慢下降,因此当变量非常不均匀时,θ将低效地振荡到最佳值。
防止这种情况的方法是修改输入变量的范围,使它们大致相同。理想的:
−1 ≤ x(i) ≤ 1
or
−0.5 ≤ x(i) ≤ 0.5
这些并不是确切的要求;我们只是想加快速度。我们的目标是让所有的输入变量大致进入这些范围中的一个,给出或获取一些。
有两种技术可以帮助实现这一点:特征缩放和均值归一化。特征缩放涉及将输入值除以输入变量的范围(即最大值减去最小值),从而得到一个新的范围,即1。平均标准化涉及从输入变量的值中减去输入变量的平均值,从而使输入变量的新平均值仅为零。要实现这两种技术,请按照以下公式调整输入值:
其中μi是特征(i)所有值的平均值,si是值的范围(最大-最小值),或者si是标准偏差。
请注意,除以范围或除以标准偏差,会得到不同的结果。本课程的课堂测验使用值的范围,编程作业使用标准偏差。
例如,如果席代表了100至2000的房价,平均值为1000,那么,xi:=(price-1000)/1900
Gradient Descent in Practice II - Learning Rate 实践中的梯度下降II-学习率
调试梯度下降。在x轴上绘制一个包含迭代次数的图。现在绘制代价函数J(θ)随着梯度下降迭代次数的增加的变化。如果J(θ)增加,那么你可能需要减少α。
自动收敛测试。如果J(θ)在一次迭代中减少小于E,则说明已经收敛,其中E是一些小值,例如10^{−3}1。然而,在实践中,很难选择这个阈值。
如果学习率α足够小,那么J(θ)将在每次迭代中减小,这点已经得到证明。
总结一下:
如果α太小:收敛速度慢。
如果α太大:可能不会在每次迭代中减少,因此可能不会收敛。
特征与多项式回归
我们可以通过两种不同的方式改进我们的特征和假设函数的形式。
我们可以将多个特征值组合成一个。例如,我们可以通过x1*x2将x1和x2组合成一个新的特征值x3。
多项式回归
如果与数据不符合的话,我们的假设函数不需要是线性的(直线),。
我们可以改变假设函数的表现或曲线,方法是使其成为二次、三次或平方根函数(或任何其他形式)。
比如说,如果我们的假设函数是h(x)=θ0+θ1x1 ,然后我们创建额外的基于x1的特征量,来得到平方函数或立方函数。
在立方版本,我们创造了新特征量x2和x3(x2=x1的平方,x3=x1的立方)
要使其成为平方根函数,我们可以这样做:h(x)=θ0+θ1x1+θ2根号x1
需要记住的一件重要事情是,如果您以这种方式选择特征量,那么特征量缩放就变得非常重要。
比如x1范围是1-1000,那么x2的平方的范围就是1-1000000,以此类推
Normal Equation 正规方程
梯度下降给出了最小化J的一种方法。让我们讨论第二种方法,这一次明确地执行最小化,而无需使用迭代算法。在“正规方程”方法中,我们将通过明确地取J相对于θj的导数,并将其设置为零,来最小化J。这使我们无需迭代就能找到最佳θ。正规方程公式如下所示:
正规方程无需进行特征缩放。
下面是梯度下降法和正规方程的比较:
梯度下降法 正规方程
需要选择学习速率α 无需选择学习速度α
需要很多迭代 无需迭代
复杂度O(kn²) 复杂度O(n³),需要计算XTX的逆
当n很大的时候效果很好 当n很大的时候很慢
对于正态方程,计算反演具有复杂性O(n³)).
因此,如果特征值很多,正规方程会很慢。
在实践中,当n超过10000时,用迭代过程可能会比正规方程好。
Normal Equation Noninvertibility(正规方程不可逆)
在倍频程中实现正规方程时,我们希望使用“pinv”函数而不是“inv”。即使XTX不可逆,“pinv”函数也会给出θ的值。
如果XTX是不可逆的,常见原因可能是:
-冗余特征,其中两个特征密切相关(即线性相关)
-特征太多(例如m≤ n,m是样本数,n是特征数) 。在这种情况下,删除一些特征或使用“正则化”(将在后面的课程中解释)。
XTX不可逆,“pinv”函数也会给出θ的值。
如果XTX是不可逆的,常见原因可能是:
-冗余特征,其中两个特征密切相关(即线性相关)
-特征太多(例如m≤ n,m是样本数,n是特征数) 。在这种情况下,删除一些特征或使用“正则化”(将在后面的课程中解释)。
上述问题的解决方案包括删除与另一个特征线性相关的特征,或者在特征太多时删除一个或多个特征。