《机器学习:算法视角(原书第2版)》 —1.6 关于编程的注意事项

举报
华章计算机 发表于 2019/12/21 11:44:18 2019/12/21
【摘要】 本节书摘来自华章计算机《机器学习:算法视角(原书第2版)》 一书中第1章,第1.6节,作者是[新西兰] 史蒂芬·马斯兰(Stephen Marsland),高 阳 商 琳 等译。

1.6 关于编程的注意事项

本书旨在帮助你理解和使用机器学习算法,这意味着你需要编写计算机程序。本书既包含算法的伪代码,也包含基于NumPy的Python程序片段(附录A为初学者提供了Python和NumPy的介绍),配套网站为所有算法提供了完整的工作代码。

在理论上理解如何使用机器学习算法是很好的,但是如果不在数据上进行程序测试,并且看到参数的作用,你将无法熟悉机器学习的完整流程。通常,自己编写代码始终是理解算法以及发现未知细节的最佳方法。

不幸的是,调试机器学习代码比一般调试更难——使程序编译和运行起来非常容易,但它有时似乎并没有在真正地学习。在这种情况下,你需要仔细开始测试程序。但是,你很快就会对这样的事实感到沮丧,因为很多算法都是随机的,结果无论如何都不可能重复。可以通过设置随机数种子来暂时避免这个问题,使随机数生成器每次都遵循相同的模式生成随机数,如下面的Python命令行中的代码示例所示(标记为>>>),在种子设置之后出现的10个数字在两种情况下都是相同的,并且将永远是相同的(更多关于计算机生成伪随机数(pseudo-random number)的讨论见15.1.1节)。

 

这样,在每次运行时将避免随机性,并且参数将全部相同。

另一个有用的方法是使用2D toy数据集,可以对其进行绘制,因此可以观察是否会有意外事件发生。此外,这些数据集可以非常简单,例如可以用直线分开(我们将在第3章中看到更多内容),这样你就可以看到算法是否可以处理简单的情况。

暂时“作弊”的另一种方法是将目标作为输入之一,这样算法就没有理由得到错误的答案。

最后,一个有效而且可以作比较的参考程序会很有用,我希望本书网站上的代码可以帮助人们摆脱意外的陷阱和奇怪的错误。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。