举例:一个房子的价格并不仅仅受面积影响,还有其他因素例如:楼层、年龄等 这个 这个图表显示房子的价格的影响因素(特征)有四个:面积x1、卧室的数量x2、楼层数x3、房屋的年龄x4。 此时我们的假设函数就变成了: h θ \theta θ= θ \theta θ0+ θ \theta θ1x1+ θ \theta θ2x2+ θ \theta θ3x3+ θ \theta θ4x4
当我们拥有n个特征后,我们的假设函数如下: h θ \theta θ= θ \theta θ0+ θ \theta θ1x1+……+ θ \theta θnxn (一般我们会添加一个额外的特征量x0,这个特征量x0=1,此时我们的特征向量是(n+1) 维 )
多元线性回归的假设方程、参数、代价函数(注意:这里我们要把所有参数看成一个n+1维向量 θ \theta θ,J是关于向量 θ \theta θ的函数)梯度下降算法:
确保特征量的取值大小再同一规模下。 例如:房屋的价格受面积x1=size(0-2000英尺)和卧室数量x2=numbers of bedrooms(1-5个)影响,那么对应代价函数等高线就会出现两个等高线距离过大(整体看起来十分高窄),此时梯度下降会很缓慢且有可能出现来回波动的情况,如下: 此时我们令x1=size/2000,x2=numbers of bedrooms/5(特征除以最大值),此时x1和x2的取值大小在同一规模下,对应的代价函数等高线如下,此时梯度收敛得会更快 通常来说:我们会尽量把特征值调整到-1~1之间,不过不在这个区间也没关系,只要不同特征量的大小相近就好。
我们还有种方法进行特征缩放(均值归一): 一般情况下: 总的来说,特征缩放并不要求很精确,只是要求所需特征值之间数值较为接近。
多元梯度下降中:迭代次数和代价函数值的关系 我们判断收敛的方法有两种: 1)通过观察上图曲线何时平缓来判断收敛 2)通过自动测试,如果一次迭代后,代价函数下降小于 ξ \xi ξ判断收敛,但是很难决定 ξ \xi ξ的大小
如何决定学习率 α \alpha α
出现左边两种情况,都选择用更小的学习率。 总结: ①如果学习率太小,可能会迭代太慢。 ②如果学习率太大,可能会出现并不是每次迭代代价函数都下降的现象,甚至无法收敛。
选择学习率 α \alpha α(按三倍逐个取,选择合适的最大值): 0.001,0.003,0.01,0.03,0.1.0.3,1
例如:一个房子拥有长度x1和宽度x2两个特征值,但是我们可以选择面积x3=x1*x2作为特征值,这更符合现实意义 你可以选择任何一种函数,例如二次函数或者三次函数只要和数据集拟合就好。
求最小值的导数原理: 其中X是(mn+1)维矩阵,Y是(m1)维矩阵
则 θ \theta θ的值是: 正规方程不需要特征缩放
迭代法和正规方程比较: 当特征的数量很大时,我们选择梯度下降,因为此时正规方程要算矩阵乘法需要O(n3)次。
Octave:pinv函数和inv函数 1.对于方阵A,如果为非奇异方阵,则存在逆矩阵inv(A) 2.对于奇异矩阵或者非方阵,并不存在逆矩阵,但可以使用pinv(A)求其伪逆 若A为非奇异矩阵,请不要使用pinv求逆,虽然计算结果相同,即inv( A ) = pinv( A )但pinv的计算复杂度较高。
矩阵出现不可逆的常见原因:
多余的特征量(例如一个面积分别用不同单位表示,看成两个特征量)太多特征量(解决方法:删除一个特征量或者正则化)