《机器学习:算法视角(原书第2版)》 —1.6 关于编程的注意事项
1.6 关于编程的注意事项
本书旨在帮助你理解和使用机器学习算法,这意味着你需要编写计算机程序。本书既包含算法的伪代码,也包含基于NumPy的Python程序片段(附录A为初学者提供了Python和NumPy的介绍),配套网站为所有算法提供了完整的工作代码。
在理论上理解如何使用机器学习算法是很好的,但是如果不在数据上进行程序测试,并且看到参数的作用,你将无法熟悉机器学习的完整流程。通常,自己编写代码始终是理解算法以及发现未知细节的最佳方法。
不幸的是,调试机器学习代码比一般调试更难——使程序编译和运行起来非常容易,但它有时似乎并没有在真正地学习。在这种情况下,你需要仔细开始测试程序。但是,你很快就会对这样的事实感到沮丧,因为很多算法都是随机的,结果无论如何都不可能重复。可以通过设置随机数种子来暂时避免这个问题,使随机数生成器每次都遵循相同的模式生成随机数,如下面的Python命令行中的代码示例所示(标记为>>>),在种子设置之后出现的10个数字在两种情况下都是相同的,并且将永远是相同的(更多关于计算机生成伪随机数(pseudo-random number)的讨论见15.1.1节)。
这样,在每次运行时将避免随机性,并且参数将全部相同。
另一个有用的方法是使用2D toy数据集,可以对其进行绘制,因此可以观察是否会有意外事件发生。此外,这些数据集可以非常简单,例如可以用直线分开(我们将在第3章中看到更多内容),这样你就可以看到算法是否可以处理简单的情况。
暂时“作弊”的另一种方法是将目标作为输入之一,这样算法就没有理由得到错误的答案。
最后,一个有效而且可以作比较的参考程序会很有用,我希望本书网站上的代码可以帮助人们摆脱意外的陷阱和奇怪的错误。
- 点赞
- 收藏
- 关注作者
评论(0)