Skip to content

Commit 78e2765

Browse files
nutllwhycheekyshibe
authored andcommittedAug 8, 2018
Update ch11.md (#27)
1 parent fe43985 commit 78e2765

File tree

1 file changed

+10
-10
lines changed
  • _docs/Setting up development and test sets

1 file changed

+10
-10
lines changed
 

‎_docs/Setting up development and test sets/ch11.md

+10-10
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,28 @@ title: 何时修改开发集、测试集和指标
33
permalink: /docs/ch11/
44
---
55

6-
开展一个新项目时,我会尽快选好开发集和测试集,因为这可以帮团队制定一个明确的目标。
6+
每当开展一个新项目时,我会尽快选好开发集和测试集,因为这可以帮团队制定一个明确的目标。
77

8-
我通常会要求我的团队在不到一周(一般不会更长)的时间内给出一个初始的开发集、测试集和指标,提出一个不太完美的方案并迅速采取行动 ,比花过多时间去思考要好很多。但是一周的时间要求并不适用于成熟的应用程序,譬如垃圾邮件过滤。我也见到过一些团队在已经成熟的系统上花费数月的时间来获得更好的开发集和测试集。
8+
我通常会要求我的团队在不到一周(一般不会更长)的时间内给出一个初始的开发集、测试集和指标,提出一个不太完美的方案并迅速执行 ,这比起花过多的时间去思考要好很多。但是一周的时间要求并不适用于成熟的应用程序,譬如垃圾邮件过滤。我也见到过一些团队在已经成熟的系统上花费数月的时间来获得更好的开发集和测试集。
99

10-
如果你渐渐发现初始的开发集、测试集和指标设置与期望目标有一定差距,那就快想方法去改进它们。例如你的开发集与指标在排序时将分类器 A 排在 B 的前面,然而你的团队认为分类器 B 在实际产品上的表现更加优异,这个时候就需要考虑修改开发集和测试集,或者是你的评估指标了。
10+
如果你渐渐发现初始的开发集、测试集和指标设置与期望目标有一定差距,那就尽快想办法去改进它们。例如你的开发集与指标在排序时将分类器 A 排在 B 的前面,然而你的团队认为分类器 B 在实际产品上的表现更加优异,这个时候就需要考虑修改开发集和测试集,或者是你的评估指标了。
1111

12-
在上面的例子里,有三个主要原因可能导致开发集/评估指标错误地将分类器A排在B前面:
12+
在上述例子中,有三个主要原因可能导致开发集/评估指标错误地将分类器A排在B前面:
1313

1414
1. **你需要处理的实际数据的分布和开发集/测试集数据的分布情况不同。**
1515

16-
假设你的初始开发集和测试集主要是成年猫的图片,然而你在 app 上发现用户上传的更多是小猫的图片,这就导致了开发集和测试集的分布与你需要处理数据的实际分布情况不同。在这种情况下,需要更新你的开发集和测试集,使之更具代表性。
16+
假设你的初始开发集和测试集中主要是成年猫的图片,然而你在 app 上发现用户上传的更多是小猫的图片,这就导致了开发集和测试集的分布与你需要处理数据的实际分布情况不同。在这种情况下,需要更新你的开发集和测试集,使之更具代表性。
1717

1818
2. **算法在开发集上过拟合了。**
1919

2020
在开发集上反复评估某个想法会导致算法在开发集上 “过拟合” 。当你完成开发后,应该在测试集上评估你的系统。如果你发现算法在开发集上的性能比测试集好得多,则表明你很有可能在开发集上过拟合了。在这种情况下,你需要获取一个新的开发集。
2121

22-
如果需要跟踪团队的进度,你可以每周或者每月在测试集上对系统进行一次定期评估。但不要根据测试集指标对算法做出任何决策,包括是否将系统回滚到前一周的状态。坚持这样做会导致算法在测试集上开始过拟合,并且不要再指望根据它对你的系统性能进行完全无偏估计(这对发表研究论文以及需要做出商业决策的人来说影响很大)。
22+
如果需要跟踪团队的进度,你可以每周或者每月在测试集上对系统进行一次定期评估。但不要根据测试集指标对算法做出任何决策,包括是否将系统回滚到前一周的状态。坚持这样做会导致算法在测试集上开始过拟合,并且不要再指望通过测试集对你的系统性能进行完全无偏估计(这对发表研究论文以及需要做出商业决策的人来说影响很大)。
2323

24-
3. **该指标所的不是项目应当优化的目标**
24+
3. **该指标不是项目应当优化的目标**
2525

26-
假设你的猫咪 app 当前的指标为分类准确率,而该指标认为分类器 A 优于分类器 B。然而在尝试了两种算法后,你发现分类器 A 竟然允许出现一些色情图片,这实在难以容忍。应该怎么办呢?
26+
假设你的猫咪 app 当前的指标为分类准确率,而该指标认为分类器 A 优于分类器 B。然而在尝试了两种算法后,你发现分类器 A 竟然允许出现一些色情图片,这实在是难以容忍。应该怎么办呢?
2727

28-
这表明此时的指标并不能辨别出算法 B 在实际产品的表现比 A 更好,因此根据该指标来选择算法就不那么可靠了,也说明是时候改变现有的评估指标了。你可以修改指标,使之对出现色情图片的情况进行严重惩罚。强烈建议你选择一个新的指标并为你的团队制定一个新的研究目标,而不是在不可信的指标上耗费太多的时间后,最终不得不回过头对分类器进行人工选择
28+
以上这种情况表明,此时的指标并不能辨别出算法 B 在实际产品中的表现是否比 A 更好,因此根据该指标来选择算法并不可靠,也说明此时应该改变现有的评估指标。你可以选择修改指标,使之对出现色情图片的情况执行严重惩罚。此外,强烈建议你选择一个新的指标并为你的团队制定一个新的研究目标,而不是在不可信的指标上耗费太多的时间,最终导致不得不回过头对分类器进行人工选择
2929

30-
在项目中改变开发集、测试集或者指标是很常见的。一个初始的开发集、测试集和指标能够帮助团队进行快速迭代,当你发现它们对团队的导向不正确时,不要担心,你只需要对其进行修改并确保团队了解接下来的新方向
30+
在项目中改变开发集、测试集或者指标是很常见的。一个初始的开发集、测试集和指标能够帮助团队进行快速迭代,当你发现它们对团队的导向不正确时,不要担心,你只需要对其进行修改并确保团队能够了解接下来的新方向

0 commit comments

Comments
 (0)
Please sign in to comment.