1. 描述
第一个练习将为你提供线性回归练习。这些练习已经用Matlab进行了广泛的测试,但它们也应该在Octave中工作,它被称为“免费版的Matlab”。如果你使用的是Octave,那就是
一定要安装Image包(可在Windows中作为选项使用)安装程序,可从Octave-Forge获得Linux。
2.线性回归
回想一下,线性回归模型是
h θ ( x ) = θ T x = ∑ j = 0 n θ j x j h_{\theta}(x) = \theta^Tx=\sum_{j=0}^n \theta_j x_j hθ(x)=θTx=j=0∑nθjxj
其中 θ \theta θ是我们需要优化的参数, x x x是 n + 1 n+1 n+1 - 维特征向量。给定一个训练集, { x } ( i ) i = 1 , … , m {\{x\}^{(i)}}_{i=1, \dots,m} {
x}(i)i=1,…,m,我们的目标是找出 θ \theta θ最佳值,使得目标函数 J ( θ ) J(\theta) J(θ)如图等式可以最小化
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ − y ( i ) ) 2 J(\theta) = \frac{1}{2m} \sum_{i=1}^m(h_{\theta }- y^{(i)})^2 J(θ)=2m1i=1∑m(hθ−y(i))2
优化方法之一是梯度下降算法。算法迭代执行,并在每次迭代中,我们更新 θ \theta θ遵循以下规则
θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_j :=\theta_j - \alpha \frac{1}{m}\sum_{i=1}^m(h_{\theta }(x^{(i)})- y^{(i)})x_j^{(i)} θj:=θj−αm1i=1∑m(hθ(x(i))−y(i))xj