测试驱动的机器学习:科学方法与风险应对
1. 测试驱动开发与科学方法
科学研究是一个不断尝试和纠错的过程。科学家先提出假设,然后对其进行测试,最后将这些假设整合为理论。这个过程与测试驱动开发(TDD)有着相似之处,TDD 也可以看作是“假设 - 测试 - 理论化”的过程,只不过在编程中可以称为“红 - 绿 - 重构”。
1.1 TDD 与科学方法的相似性
在机器学习代码编写中,先编写测试是一种有效的方法。大多数机器学习从业者都会运用某种形式的科学方法,而 TDD 能促使开发者编写更简洁、稳定的代码。TDD 是科学方法的一个子集,主要体现在以下三个方面:
- 提出有效性的逻辑命题 :科学家使用科学方法解决问题并证明其有效性。为了证明我们的信念,需要构建稳定、逻辑的命题。在逻辑中,有必要条件和充分条件两种类型来判断某件事是否为真。
- 必要条件 :是指如果缺少这些条件,我们的假设就会失败。例如,一致通过的投票或飞行前的检查清单。所有条件都必须满足,才能让我们相信所测试的内容是正确的。
- 充分条件 :意味着有足够的证据支持某个论点。例如,雷声是闪电发生的充分证据,但雷声不是闪电发生的必要条件。充分条件很多时候以统计假设的形式出现,虽然可能不是完美的,但足以证明我们所测试的内容。
| 科学方法 | TDD |
|---|---|
| 必要条件 | 公理,纯 |
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



