ng Machine Learning课程笔记(1)——Linear Regression线性回归

回归问题:输出是实数

分类问题:输出是固定的离散值

在一个模型中,m表示训练集的数量,x表示输入,y表示输出,上标(i)表示数据在训练集中的索引。

单变量的线性回归:

使用梯度下降(gradient descent)的算法,调节θ的值。

设定初始的θ值,然后逐步改变θ,使J(θ1,θ2)减小,直到达到最小值。

每个参数是同步下降的。α称为learning rate,学习速率。既不能太小也不能太大,太小会导致θ的调节非常缓慢,过大又会造成每一次的调整都掠过了最小值,J函数的值反而增大。

随着偏导值的减小,α与偏导的乘积也减小,每一次计算θ移动的step也在减小,从而渐渐下降到最优值。就算一开始就处在最小值的位置,由于偏导是0,θ将不做任何改变,停在最优值处。

在线性回归中,J函数的局部最优值就是最小值。J(θ1,θ2)是一个凸函数(convex function)。

上述梯度下降算法被称为Batch Gradient Descent,这个batch的含义代表每一步都考虑所有的训练集training set。关于其他梯度下降算法可以参考https://blog.csdn.net/llx1990rl/article/details/44001921

多变量线性回归

即有多个特征,x1,x2,x3,…,令x0=1,则有

多变量的梯度下降算法:

注意把公式向量化了。

由于多个特征xi的取值范围可能差距过大,需要把数据取值规范在某个共同的区间之内(feature scaling和mean normalization)。

feature scaling是把数值限制在-1与1之间,计算方法是用原值除以所有特征值中最大值与最小值的差。

mean normalization是对特征取值做改变,使它们的平均值近似取0,就是使它们均匀的分布在0的两边。计算方法是用原值减去所有特征值的平均值。

综合起来公式是这样的:

learning rate - α的选取:J的取值应该随着迭代次数的增加逐步下降,当每一次迭代,J下降不超过10^(-3)时,说明J已经达到了最优值。

J既增又减,不减反增,减了又增等,都说明α取值过大,需要减小α。

但当α取值过小时,J的下降速率会过慢,也不合适。

Ng通常取一系列的α值,然后选择其中最合适的那个。课程中的例子,每次扩大了约3倍。

对于已知depth和length的预测房价问题,将房子的depth和length相乘,转化为面积,从而将两个特征转化成了一个特征。拟合的函数也是多样的(多项式回归 polynomial regression):

可以将(size)^2等视为x2,转化为多变量的线性回归,此时要注意feature scaling和mean normalization。

正规方程(normal equation):相比于梯度下降,是一种直接计算θ取值的方法。

适用于当特征值不够多的情况,令J(θ)关于θj的偏导等于0,直接求值。

将X,y都用矩阵、向量表示之后,公式如下:

与梯度下降算法相比,正规方程方法可以直接的算出θ的值,不需要选择learning rate - α,也不需要迭代,但它需要做矩阵运算,当特征特别多时,运算速度会很慢。

梯度下降算法需要选择learning rate- α,经过迭代之后得到合适的θ,优点是即使特征特别多,也能很好的运用。

特征数n的取值分界在10,000,当特征数达到10,000时,更倾向于选择迭代的方法。

如果X'X不可逆,有两种情况:

(1)特征有冗余,对应于X矩阵中存在两列成比例,去掉多余的特征即可。

(2)特征数过多,此时m<=n,可以删掉一些特征,或者正则化(regularization)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值