之杰的机器学习笔记:3.多变量线性回归

        上一篇文章中我们简单的讨论了单变量线性回归,在一个特征的情况下如何建立线性回归模型。事实上描述一个事物的特征往往不是唯一的。就拿给树苗浇水来说,影响树苗长高的因素不仅仅是浇水量,还有日照时间、温度等等...当我们考虑更多特征时,问题的模型会变得更加完善,更加接近我们的真实世界,同时也会变得更加复杂。这里我们仍然假设每个特征对于结果的影响是线性的,进一步来讨论一下多变量线性回归(Multivariate linear regression)。

        由于我们已经有单变量的经验,很容易类比出多变量线性回归的假设函数:

        这是一个比之前复杂的函数表达式——记住它也许并不麻烦。数学家们往往喜欢简单,希望能够将函数表达的更加简洁和神秘,矩阵是一个很好的选择。如果我们引入常数x0=1,并且将假设函数作如下变换:

        假设进一步将假设函数写作:

 

        其中θT是θ的转置矩阵。

        我们用θ来代表一系列特征的参数,如果能通过大量样本求得合适的θ,便能够构造出合适的多变量线性回归。下面我们来讨论θ的两种解法。

        第一种解法和之前一样,我们仍然采用一个代价函数评估θ参数矩阵的优劣。

        之后仍然采用梯度下降的算法,便可求出合适的θ参数矩阵。

 

        此时我们需要注意一点,由于具有多个特征,在进行梯度下降时可能会得不到很好的效果。比如有三个特征影响,第一个特征的取值范围是(0,1),第二个特征的取值范围是(0,0.0001),第三个特征的取值范围是(0,10000)。这显然太不公平了——三个特征的取值差距相当大,以至于在进行梯度下降时,不同的特征收敛的步长差距悬殊,需要很多的迭代次数才能够得到理想的结果。

        因此在多变量线性回归时有一个小技巧,即特征缩放(Feature Scaling)。

        所谓特征缩放,顾名思义是将不同特征的取值范围归一化到相同的参数段,比如将所有特征归一化到±1之内。这个范围并不严格,实际上只要不是太大或太小,算法都能够取得比较好的效果。

      一种常用的特征放缩方法是均值归一化(Mean Normalization)。假设特征xi的取值范围是(x1,x2),且其均值为μi=(x1+x2)/2。那么我们可以把该特征归一化为:

 

        经过归一化后的xi取值范围为(-0.5,0.5),看起来还不错。

        刚才说到介绍θ的两种解法,第二种解法是线性代数提供给我们的思路。这种方法不需要我们求偏导数,也不需要进行特征放缩;但是对于线性代数基础薄弱的朋友可能较难理解公式的意义——没关系,你也许更关心应用,这便足矣。

        刚才我们把假设函数表示成h=θTx的形式,当我们用样本代入假设函数,会得到:

        线性代数告诉我们一种很好的获取近似θ矩阵方法:正规方程(Normal Equation)。

        正规方程是θ的一种解析解法,我们通过下式便可获得合适的θ:

        这个公式的推导在本文暂不展开。对于机器学习的使用者能够利用公式便足够了。最后我们来总结一下这两种方法的优缺点。

        梯度下降法我们需要选择合适的学习率α,需要进行多次迭代;适用于特征n较多的时候。而正规方程不需要选择α或迭代,但是当n增大时运算会变慢。值得注意的是,在求解正规方程时,我们进行了一次矩阵求逆,如果矩阵XTX是一个奇异矩阵(退化矩阵),无法求逆,事实上通过编程时采用伪逆运算仍然可以得到想要的解,这听起来非常奇妙,至于支撑这个算法的数学原理,此处也不再赘述了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值