如何知道您的机器学习问题是没有希望的?


207

想象一下标准的机器学习场景:

您面临着庞大的多元数据集,并且您对它的理解很模糊。您需要做的是根据所拥有的东西对一些变量进行预测。像往常一样,您清理数据,查看描述性统计信息,运行某些模型,对其进行交叉验证等,但是经过几次尝试,来回尝试多个模型后,似乎没有任何效果,而且您​​的结果很可悲。您可能会花费数小时,数天或数周的时间解决此类问题...

问题是:何时停止?您怎么知道您的数据实际上是绝望的,所有花哨的模型对预测所有案例或其他琐碎解决方案的平均结果都不会带来什么好处?

当然,这是一个可预测性问题,但是据我所知,在尝试对多变量数据进行评估之前很难评估它。还是我错了?

免责声明:这个问题是受这个问题启发的。 我什么时候停止寻找模特儿了?并没有引起太多关注。对此问题有详细的答案以供参考是很好的。


1
这个问题可以用实际的方式(就像@StephanKolassa那样)或绝对的方式(某种表示定理的模型的定理可以在满足某些条件的情况下学习)来回答。你想要哪一个?
极好

3
这听起来与计算机科学的经典停顿问题相似吗?假设您有某种算法A,它具有任意复杂度,它会在输入数据D上进行搜索以寻找预测模型,并且在找到数据的“良好”模型时该算法将暂停。没有在A和D上添加重要结构,我看不到如何分辨给定输入D的A是否会停止,如何分辨A最终将成功还是永远继续搜索?
马修·冈恩

@Superbest可以两者兼而有之。如果您要添加任何内容,请随时回答。我从未听说过关于处理现实多维噪声数据的任何定理,但是如果您知道适用的定理,那么我很想阅读您的答案。
蒂姆

3
根据@StephenKolassa的回答,您可能会提出的另一个问题是:“我应该在什么时候将我的工作带回主题专家,并讨论我的结果(或缺乏结果)?”
罗伯特·德格拉夫

Answers:


241

可预测性

没错,这是一个可预测性问题。已经有上的可预测性几篇文章IIF的面向医生,杂志前瞻。(全部披露:我是副编辑。)

问题在于,在“简单”的案例中,可预测性已经很难评估。

一些例子

假设您有一个这样的时间序列,但是不讲德语:

蛋

您将如何模拟四月份的高峰,以及如何将这些信息包括在任何预测中?

除非您知道此时间序列是瑞士超市连锁店中鸡蛋的销售量(该价位在复活节前夕达到顶峰),否则您将没有机会。另外,随着复活节在日历中移动最多六周,任何不包括复活节特定日期的预测(例如,假设这只是某个季节性高峰,将会在明年的特定星期出现)。可能会非常困难。

同样,假设您有下面的蓝线,并且想要对2010-02-28发生的任何事件进行建模,与2010-02-27的“正常”模式有所不同:

曲棍球游戏

同样,如果不知道当整个加拿大人都在电视上观看奥运会冰球决赛比赛时会发生什么,您将毫无机会了解这里发生的事情,并且您将无法预测何时会再次发生这种情况。

最后,看一下这个:

离群值

这是现金和随身用品商店每日销售的时间序列。(在右侧,您有一个简单的表格:282天的销售量为零,42天的销售量为1 ...而一天的销售量为500。)我不知道它是什么。

直到今天,我还不知道那天有500个销售发生了什么。我最大的猜测是,一些客户预订了很多这种产品并收集了。现在,在不知情的情况下,这一天的任何预测都将相去甚远。相反,假设这是在复活节之前发生的,并且我们有一个愚蠢的智能算法,认为这可能是复活节效应(也许是鸡蛋?),并高兴地预测下一个复活节有500个单位。噢,我的,可能出问题。

摘要

在所有情况下,我们都只有在对影响数据的可能因素有了足够深入的了解后,才能更好地理解可预测性。问题在于,除非我们知道这些因素,否则我们将不知道自己可能并不了解它们。根据唐纳德·拉姆斯菲尔德

这是已知的已知事物;有些事情我们知道我们知道。我们也知道有未知的事物。就是说我们知道有些事情我们不知道。但是,还有未知的未知数-我们不知道的我们不知道的。

如果复活节或加拿大人对曲棍球的偏爱对我们来说是未知的未知数,我们将陷于困境-我们甚至没有前进的道路,因为我们不知道我们需要问什么问题。

处理这些问题的唯一方法是收集领域知识。

结论

我从中得出三个结论:

  1. 始终需要在建模和预测中包括领域知识。
  2. 即使拥有领域知识,也不能保证您获得足够的信息以使预测和预测为用户所接受。请参见上面的异常值。
  3. 如果“您的结果很痛苦”,则您可能希望实现的目标更多。如果您预测抛硬币会很公平,那么就无法获得超过50%的准确性。也不要相信外部预测准确性基准。

底线

这是我建议建立模型的方式-并通知何时停止:

  1. 如果您自己还没有知识,请与具有领域知识的人联系。
  2. 根据第1步,确定您要预测的数据的主要驱动因素,包括可能的相互作用。
  3. 迭代地构建模型,包括按照步骤2的强度降序排列驱动程序。使用交叉验证或保留样本评估模型。
  4. 如果您的预测准确性没有进一步提高,请返回第1步(例如,通过确定您无法解释的公然错误预测,并与领域专家讨论这些错误预测),或者接受您已经达到最后的目标模型的功能。对您的分析进行时间装箱有帮助。

请注意,如果您的原始模型停滞不前,我不主张尝试使用不同类别的模型。通常,如果您以合理的模型开始,则使用更复杂的工具不会产生明显的好处,而可能只是“过度拟合测试集”。我经常看到这种情况,其他人也同意


10
+1是我完全同意的绝佳答案。我不接受(尚未),因为问题仍然很广泛,因此仍希望找到其他答案。
蒂姆

1
当然。我也希望看到其他人对此的看法!
Stephan Kolassa '16

9
If you are forecasting a fair coin toss, then there is no way to get above 50% accuracy.。你说的都在那里
Walfrat '16

3
使用领域知识,您可以为前两种情况添加新功能(例如,直到复活节的时间和电视收视率,尽管后者需要自己预测)才能获得更好的结果。在任何情况下,情况都是绝望的。真正有趣的部分是如何从公平的硬币翻转数据中分辨出缺少的领域知识。
KarolisJuodelė16年

4
@KarolisJuodelė:这正是我的观点。除非我们与专家交谈,否则我们什至不知道我们的处境何时会绝望……然后,有时专家也无法帮助我们,专家们有“未知的未知数”,可以想象其他人可能会知道。
Stephan Kolassa '16

57

史蒂芬·科拉萨(Stephan Kolassa)的回答很好,但我想补充一点,通常也有经济停顿的状况:

  1. 当您为客户而不是为了娱乐而进行ML时,应查看客户愿意花费的金额。如果他付给您公司5000欧元,而您花了一个月的时间来寻找模型,您将失去金钱。听起来微不足道,但是我已经看到“必须有一个解决方案!!!!”的想法,这导致了巨大的成本超支。因此,请在资金用尽时停止,并将问题传达给客户。
  2. 如果您做了一些工作,您通常会感觉到当前数据集可以实现的目标。尝试将其应用于您可以从模型中赚取的金额,如果金额微不足道或为净负数(例如,由于收集数据,开发解决方案的时间等),则应该停止。

举个例子:我们有一个客户想要预测他的机器何时损坏,我们分析了现有数据并发现了噪音。我们深入到该过程中,发现最关键的数据没有记录,并且很难收集。但是没有这些数据,我们的模型太差了,没人会使用它,因此它是固定的。

虽然我在研究商业产品时侧重于经济学,但该规则也适用于学术界或娱乐项目-尽管在这种情况下,金钱不再是问题,但时间仍然是稀有商品。例如 在学术界,当您没有取得明显成果时,您应该停止工作,而您还有其他可以做的更有希望的项目。但是不要删除该项目-请同时发布null或“需要更多/其他数据”结果,它们也很重要!


1
+1绝对是一个好点!我想这个问题的所有答案似乎都是“显而易见的”,但我还没有看到所有这些“显而易见的”东西都可供参考。

3
顺便说一句,此停止规则也适用于非商业案例:例如,如果您进行某种研究,那么我们的结果也将具有抽象价值,并且继续进行“无希望”分析也只有在您的分析价值超过您的分析价值之后才是合理的本来可以做的。因此,实际上,该决策理论论点可以变得更笼统。
蒂姆

2
我认为“没有人会使用ist并被罐装”应该更改为“没人会使用ist并被罐装”-这是您想要的意思吗?
银鱼

2
谢谢。我会说,这不仅与时间有关,而且与您可以不同地投入时间有关。您可以改为对其他救生药物研究项目的工作你会节省您的时间,而且市民会从结果等受益
蒂姆

2
@ChristianSauer以我作为工程师的经验,传感器(参见量规)之间的不匹配和有用的目的很可能早于晶体管的发明。
罗伯特·德格拉夫

9

还有另一种方法。问你自己 -

  1. 谁或什么对这个特定变量做出最好的预测?”
  2. 我的机器学习算法产生的结果是否比最佳预测好还是差?

因此,例如,如果您有大量变量与不同的足球队相关联,而您正试图预测谁会获胜,则可以查看庄家赔率或某种形式的人群预测来与您的机器学习结果进行比较算法。如果您更好,那么您可能会处于极限,如果更糟,那么显然还有改进的空间。

您的改进能力(广泛地)取决于两件事:

  1. 在此特定任务中,您是否使用与最佳专家相同的数据?
  2. 在此特定任务中,您是否像最佳专家一样有效地使用数据?

这完全取决于我要执行的操作,但是我倾向于使用这些问题的答案来指导建立模型时的发展方向,尤其是尝试提取更多我可以使用的数据还是专心研究试图完善模型。

我同意Stephan的观点,通常最好的方法是咨询一位域名专家。


1
实际上,您的答案与@StephanKolassa的答案矛盾,因为他提到的文献表明预测基准相当误导。
蒂姆

1
@Tim:全面披露-该链接转到了我写给自己的关于基准的文章。尽管如此,我还是坚持我的结论:我见过的所有需求预测准确性基准都可能会将苹果与橙子进行比较。因此,我对寻求外部基准有些怀疑。另外,我认为这个答案有点让人困惑。一旦您的机器学习算法在“最知名的”算法上得到改进,您如何知道您是否可以进一步改进它,或者我们是否已经实现了绝望的高原?
Stephan Kolassa,2016年

1
我最近的用例完全不同。我正在尝试预测谁有可能从互联网上的帖子中自杀。有多种心理测试可以用来评估抑郁症的严重程度,例如PHQ9。作为其广泛使用的医学测试,人们对其有效性和可靠性进行了大量工作,例如“ PHQ-9简短抑郁症严重程度测量的有效性”。我发现该论文的可靠性和其他措施是从机器学习中可能获得的结果的一个很好的起点。
加文·波特

1
当然,关于改进“最知名的”您是正确的,没有办法告诉是否继续寻找更好的模型。但是以我的经验,这种情况很少发生在现实世界中。我所做的大部分工作似乎都在于尝试通过使用机器学习大规模应用专家判断,而不是尝试提高该领域的最佳专家。
加文·波特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.