《Machine Learning Yearning》第18章

18 How big should the Eyeball and Blackbox dev sets be?

这里写图片描述

 你的Eyeball开发集应该要足够大,以至于能得到你算法的主要错误类别。如果正在做一项人类做的好的工作(例如识别图片中的猫),下面有一些粗略的指引:

  • 一个Eyeball开发集在你的分类器里有10个错误,这被认为是非常小的。只有10个错误,很难准备估计不同错误类别的影响。但是如果你的数据非常少并且Eyeball开发集也无法承担更多的数据,那么这比没有好,并且有助于项目的优先级排序。
  • 如果你的分类器在Eyeball开发集样本中有20的错误,你可以粗略的估计主要错误来源。
  • 如果有50个错误,你可能对主要错误来源有较好的了解。
  • 有100个错误,你将非常了解错误的主要来源。我看到人们手动分析更多的错误–有时多达500个。只要你有足够的数据,就没有任何坏处。

 假设你的分类器有5%的错误率。为了确保你的Eyeball开发集有100个错误分类的样本,Eyeball开发集就必须有大约2000个样本(因为0.05*2000=100)。你分类器错误率越低,你的Eyeball开发集就要越大,以便获得足够多的错误去分析。

 如果你正在做连人类都做不好的任务,那么检查Eyeball开发集将不会有什么用处,因为很难弄清楚为什么算法没有对一个样本正确分类。在这种情况下,你可能会不设置Eyeball开发集。我们将在后面的章节讨论这种问题的处理方式。

这里写图片描述
 Blackbox开发集怎么设置呢?我们之前说过通常情况下开发集有1000-10000个样本。为了优化这个内容,尽管获得更多的数据没有什么坏处,但是一个1000到10000的Blackbox开发集能让你有足够的数据去调节超参数和选择模型。一个100的Blackbox开发集虽然很小但是也有用。

 如果你的开发集比较小,可能没有足够的数据分成Eyeball和Blackbox,使它们都足够大能满足目的。反之,你的整个开发集都必须用作Eyeball—例如,你将手动检查这些开发集数据。

 相比较Blackbox开发集,我认为Eyeball更重要些(假设你正在解决一个人类可以做得很好的问题,并且检查样本能帮你获得线索)。如果你只有Eyeball,你可以在上面很好地进行错误分析、模型选择和超参数调节。只有Eyeball数据集的缺点是过拟合的风险增大。

 如果你有足够的访问数据权限,那么Eyeball大小主要取决于你的时间可以分析多少样本。例如,我很少见过有人分析超过1000个错误。

猜你喜欢

转载自blog.csdn.net/Lisa_Ren_123/article/details/81449652