(2)Linear Regression with Multiple Variables

来源:互联网 发布:淘宝买家怎么样刷信誉 编辑:程序博客网 时间:2024/04/29 12:04

以下内容源自coursera上的machine learning,同时参考了Rachel-Zhang的博客(http://blog.csdn.net/abcjennifer/article/details/7700772)



上一节讲了只有一个特征的情况,下面聊聊多特征的。

(一):多特征的例子以及多特征的的cost function和得到的函数h





(二):单特征和多特征的梯度算法的比较:







(三):应用梯度算法时的小技巧









(四):如何选取特征和模型函数?

有时候并不是特征越多效果就越好,我们可以考虑特征A和特征B相乘作为一个新的特征,或者特征C和特征D相除作为一个新特征等等之类的。但是需要在理论上合理。另外在建立模型是,可以选择三次,二次,甚至开方,我们在刚建模型的时候,都可以尝试,但需要在理论上说的过去,比如房价几乎只会随着面积的增大而增大,不可能减小,即这个时候某些二次函数就不适合,因为会降低,而三次函数就更可能建立起一个更好的预测模型!

 

当然需要格外注意归一化问题,因为平方开方三次方会导致数据相差很大!



(五):Normal Equation : method to solve for theta  analytically这时没必要用feature scaling)


至于为什么这样一个公式就搞定了呢?

请参考:http://cs229.stanford.edu/notes/cs229-notes1.pdf  (P7-P11)


(请注意,在使用normal equation的时候,在使用公式可能会有不可逆的情况:此时可以尝试减少特征数!还有一点在特征数目很大的情况下(比如n》10000,需格外注意normal equation的效率!)





(六):gradient descent和normal equation的对比

后者的适用范围没有前者广,在特征数目比较少的情况下,normal equation比较方便,因为不需要选取学习速率,不需要迭代。但在特征数目n比较大的情况下,normal equation就比较耗时(因为求逆的时间)(n=1000是,对于当代计算机还是很轻松的,但当n=10000是就需要考虑了)。而gradient decent在即使n很大的情况下也可以比较快的计算出最后结果!