Coursera-Machine-Learning-Review-W2

Multivariate Linear Regression

       W1的房价预测中,我们只有一个特征,即面积为变量来预测房价。但是生活中对于结果预测需要多个特征,拿房价举例就和房子使用年限等等特征都影响房价。所以此处引入多个特征变量,以上标表示。

        自然的,假设函数也要同样的进行改变,写成多变量形式,并且为了后面便于计算,这里使用列向量x来代替变量x0~xn,其中x0=1,用列向量θ来代替对应变量xi的参数θi,θ0为偏差,从而得到  h(x)=$\mathbf{\Theta}^\mathrm{T}$ x

        对于单变量我们利用代价函数,通过梯度下降方法调整参数θ,使得代价函数值最小化,引入多变量后自然需要考虑如何利用梯度下降算法找到所有符合最小化条件的参数θ。

        首先考虑代价函数,其形式仍为各样本预测值的偏差之和,只不过这里的h(x)中的x不再是单变量,而是多变量组成的向量x,而J(θ)也自然关于多变量组成的向量θ。

        然后考虑梯度下降算法,原本需要同步更新的θ0,θ1自然地变成整个θ向量。更新算法其实没有什么变化,和之前的更新是一回事,只不过更新了更多参数。

Feature Scaling

        概念在于使得变量的范围处于一个近似的度量,使得梯度下降算法更快的收敛,一般来讲使得特征范围处于-1到1之间比较合适,但是不用太过拘泥于这个数字,只要使得特征经过缩小或者放大后处于合理范围即可。

        我们可以通过特征归一化(Mean normalization)来处理数据,公式为x=(x-\mu )/s,其中μ为特征的平均值s为该特征的范围(最大值-最小值)

Learning Rate

        我们都知道,学习速率决定了代价函数收敛的速度。首先我们在学习过程中可以通过建立迭代次数与代价函数的关系来确定其是否已经收敛,一般以一次减小10^-3为判定边界。当梯度下降算法不工作时,需要减小α,而当其收敛过慢时,需要增大α来加快收敛。

Quiz:Suppose a friend ran gradient descent three times, with α=0.01, α=0.1, and α=1, and got the following three plots (labeled A, B, and C):

可以根据之前介绍的关于学习速率的特点的值,A图收敛正常,B图收敛过慢,C图算法失效。

Answer: A is α=0.1, B is α=0.01, C is α=1.

        谈到这里,我们或许回想为何假设函数的形式如此单一,比如一块地皮有两个特征长和宽,但是其价格应当与其面积相关性更高,所以可以想到通过改善假设函数的特征,把多个特征整合使得算法工作的更加合理。

        而即使只有一个特征,如果一条直线对结果的拟合不好,我们也可以通过增加二次项,三次项来创造新特征使得我们的假设不为线性,但是不要忘记在创造特征时使用Feature Scaling来加速收敛。

Computing Parameters Analytically

        正如我们以前知道的一元二次方程有通解一样,这样一个代价函数是否有一个方法可以直接求解呢?答案是肯定的,正规方程(Normal Equation)正是这样一个求解公式。

        以J(θ)举例,θ为参数向量,判断梯度下降算法收敛的条件即为J(θ)对于所有θi求偏导均为0,只要求出他们所对应的值就可以了。拿我们之前的房价举例,把特征x转化为一个矩阵,如果有m个样本,n个特征,添加x0=1的列向量后,那么转化出来的矩阵即为m*(n+1)维矩阵,同理y为一个m维向量,参数计算公式为\Theta =($\mathbf{X}^\mathrm{T}$X)^{-1}$\mathbf{X}^\mathrm{T}$y,这样就能够得到代价函数最小化的θ。

        Octave中该计算公式为pinv(X`*X)*X`*y,其中pinv为求矩阵的拟,X`为求矩阵X的转置,并且值得注意的是正规方程求解无需对特征进行Feature Scaling,但是缺点在于当特征数量n到达一定程度时,其计算时间会大大增加,此时选择正规方程就不如选择梯度下降算法进行迭代求解。

        当矩阵不可逆时,有以下解决方法:首先pinv()是可以计算不可逆矩阵的,其次可以减少线性相关的特征,例如不同度量单位的相同特征,接着,可以通过删除部分特征,以防止特征数n大于等于样本数m。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值