【机器学习】Andrew Ng梯度下降法实战

问题建模

在房价预测问题当中,设特征向量x1=size,x2=房间数

假设房价y可由函数以下函数估测,并另x0=1:

 

【机器学习】Andrew Ng梯度下降法实战

【机器学习】Andrew Ng梯度下降法实战

那么对于m个样本,我们需要求取一组theta使得该式子最小:

【机器学习】Andrew Ng梯度下降法实战

搜索算法实现

 【机器学习】Andrew Ng梯度下降法实战

简化公式推导

【机器学习】Andrew Ng梯度下降法实战

那么反映到MATLAB上就一行的implementation:

theta=(featsx'*featsx)\featsx'*y; 

关于过拟合:

当用线性函数拟合时,输出的准确率(或其它指标):

训练集    测试集1    测试集2    测试集3

 0.9599    0.9080    0.9246    0.9476

可以发现测试集效果还是比较OK的,但是当使用较高次的非线性函数拟合时,输出的准确率就差很多了。

训练集    测试集1    测试集2    测试集3

0.9929    0.1475    0.1060    0.0179
可见,虽然训练集准确率非常高,但是观察测试集测试结果发现其泛化能力降低得很厉害。

转载于:https://my.oschina.net/Parser/blog/645534