您的位置:首页 > 其它

Machine Learning week 1 note cont.

2013-04-30 17:05 423 查看
Liner Regression with Multiple Features

m定义为sample data的数量

n表示为feature的数量



以下为多个feature情况下的hypothesis function, 注意这里用的下表是从0开始的,但是octave中都是从1开始作为下标的,我们取第一个feature的x为1.

如果给定n个feature的话,我们要为它增加一列为1的feature,最终计算得到n+1个theta



hypothesis, cost function and gradient descent



一个feature和多个feature情况下的梯度递减算法的对比



对数据进行规约可以在计算最优解的时候更快的收敛,下面的规约方式可以把数据规约到【0-1】区间



数据规约并不是说一定要把数据放入[-1, 1]区间,如下面的例子,只要大概在这个数量级就可以了



下面是平均值规约法,u是平均值,s是标准差或者max-min所代表的的range





下面究竟如何确定我们已经得到了最优解的判断条件的标准要具体问题具体分析,这里只是以0.001为例,表示当相邻两次计算的cost function相差下雨0.001的情况认为已经得到近似最优解了。



下去时选取不同的alpha学习速率的情况下cost function可能的变化情况,出现不收敛的情况,建议使用更小的alpha。

cost function可能随着迭代而变大,或者一会变大一会变小,这都需要选择更小的alpha



选择alpha,推荐使用下面的方式每次做3倍的增长或者缩小来尝试选择一个合适的学习速率



多项式回归问题。有的时候我们需要根据现有的feature经过运算引入新的feature,比如下面的例子,不适用长和宽,而使用面积来进行回归



多项式的线性回归问题,可以转化为普通的线性回归问题,只需要替换多项式成为新的feature就可以了,如下,把x的平方,立方分别作为新的feature。



因为选择不同的数据模型会生成不同的曲线图形,下图如果拟合成为一个二次的函数的话,就会出现,随着x增长y开始下降的情况,这明显违背现实情况,可以考虑做成3次方程,或者使用平方根方程。所以建立模型之前如果对各种模型有了解的话,可以更好的创造出合适的模型。



下面开始接受Normal Equation.

我们可以想象二次方程求得最小值的例子,当导数为0的时候,函数取得最小值。那么对于线性回归问题,我们可以领所有偏导数为0,来求得最优解。



下图给出normal equation的计算公式

其中X被称为design matrix,因为在现有feature的基础之上增加了一列值为1 的列



以线性代数的方式来分析X,y



给出Octave下的计算方式,pinv是sudo矩阵逆,即使矩阵不可逆也可以计算得到合理的结果



两种方式的比较,当feature的数量不是很多的情况下normal equation方法效率很高,但是如果feature数量很多,例如10万个情况下,计算下面的矩阵的逆矩阵的复杂度会达到很大的值,O(n^3)的量级。





造成矩阵不可逆的情况分析,可能是存在冗余的feature,也可能是feature的数量太多并且sample data的数量很小

PS:矩阵不可逆一半是行列式为0的情况,行之间成倍数关系,或列之间出现倍数关系

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: