![机器学习编程:从编码到深度学习](https://wfqqreader-1252317822.image.myqcloud.com/cover/201/38335201/b_38335201.jpg)
上QQ阅读APP看书,第一时间看更新
4.3.5 整合函数
让我们检查一下是否所有工序都已就位:
·编写完成了关于样本数据准备的代码;
·完成了对predict()函数的升级;
·得到了无须升级loss()函数的结论;
·完成了对gradient()函数的升级。
检查……检查……检查……再检查。现在我们终于可以将这些变化应用到学习程序之中了:
![](https://epubservercos.yuewen.com/432DF4/20180619108106606/epubprivate/OEBPS/Images/053-i.jpg?sign=1738870080-tBchMbQ8WddYx8U4VuIFt2QkqzvUcZbn-0-2ebf4392e0f91e4eb789c71137686472)
我们花了几页纸的篇幅才完成了代码,但它与之前章节的代码十分相似。除了加载和样本数据准备这部分的代码之外,我们只改变了三行代码。注意,我们的函数具有一般性,它们不仅可以处理Roberto的三输入变量数据集,还可以处理任意数量的输入变量。
如果运行该程序,则可以得到如下结果:
![](https://epubservercos.yuewen.com/432DF4/20180619108106606/epubprivate/OEBPS/Images/054-i.jpg?sign=1738870080-CGU15gfd7YSvcSLDM06tSULeE3E8nuAg-0-6ffb3568c285158009a2b768f661b2f4)
损失函数值在每次迭代中都会减少,这表明程序确实是在学习。然而,我们的工作还没结束,因为在本章开头忽略了偏置参数以简化思路。其实我们很清楚,不应该期望在没有偏置参数的情况下得到良好预测。幸运的是,把偏置放回去看起来很容易。