ifelse过度设计:人工智能建模中的最大错误 - svpino


人们喜欢一开始就跳入他们最喜欢的模型,而没有先提出该模型的基准baseline。

这里有一个真实的故事和一些想法:
一个团队花了一个月的时间试验了三种不同的模型来解决一个二进制分类问题。

  • - k-Nearest Neighbors
  • - 一个神经网络
  • - 一个SVM

我甚至不知道他们在这个过程中烧了多少钱。

他们对结果感到自豪:他们的最佳模型大约有92%的准确性。 

只有一个小问题:
其实只要在原始数据集中的一个特征上设置一个简单的if-else条件,就能够以更高的准确率进行预测(但是不需要这些复杂的机器学习模型与算法)。

其实只需要一个条件判断! (banq:这大概是最昂贵的ifelse 笑梗了)

机器学习的第一条规则:
你并不需要机器学习,除非你能证明你需要。
忘记这条规则,你将注定要为追逐不可能的结果而烧钱。

什么是基准?
让我们来谈谈战术:
以下是在我的字典中找到的 "基准baseline "的定义。
"如果今天你吃午饭迟了,那么你可以想出的一个最愚蠢的解决方案"
基准就是一些简单的东西,你可以向其他人解释,打败这个基准就是你的目标。

其他一些基准的例子。

  • - 总是返回主要部分的类(在处理不平衡的数据集时很好)。
  • - 用一组if-then-else条件实现一个简单的启发式方法。

你需要一些快速的东西,给你提供方向。

基准是我的北极星,我总是将基准与另外两样东西配对:

  • 1. 我的评估标准(我如何知道我做得更好)
  • 2. 我的停止标准(我可以承受多长时间的实验)。

这就是它! 这就是 "三要素":

- 你要一个基准线
- 一个评估标准
- 一个停止准则(stopping criteria)

当你打败你目前的基准时,用最新的模型取代它,然后再去做,直到你达到你的停止点。