machine learning yearning 7.开发集测试集大小设置 开发集的大小应该足够检测出你尝试不同算法之间的差异。例如。如果分类器A有90%的精度,B有90.1%的精度,则100个样本的开发集不足以检测出两个分类器的精度。通常情况下开发集有着1000到10000的样本。有着一万的样本,能够检测出0.1%的提升。 对于成熟且重要的应用,有的团队需要0.01%精度的提升,因为其对公司的利益有直接的提升。这种情况下,开发集需要远大于一万。 测试集的大小呢?它应该大到足够让你对系统的整体性能放心。一种流行的方法就是让你用数据的30%作为测试集。当你有适度的样本的时候30%是可行的,大概在100到10000样本之间。但在大数据的时代经常有几十亿的样本,开发集测试集的数据所占比例一直在下降,即使其的绝对数值在上升。评估算法的性能没有必要使用很大的开发集和测试集。 8.为团队建立单值的评估指标用于优化 分类准确率是单值精度评估指标的一个例子:在开发集上进行分类(或测试集),得到一个样本分类正确的概率的分数。根据这个度量,如果分类器A有97%的准确度,B有90%的准确度,则我们说分类器A更好。 相反,准确率(precision)和召回率(recall)不时单值评估量。它给了两个值去评估你的分类器。多值评估指标使得更难去比较算法。假如你的算法指标如下: 如图所示,没有分类器明显有优势,不能直接让你选出更好的分类器。 开发中,有一个单值的评估指标例如准确率(accuracy)能让你根据值对所有的模型进行排序,迅速的选出最好的模型。 如果关心准确率和召回率,推荐用一种标准化的方式让他们合并成一个值。例如取它们的平均值,或者,可以计算”F1准确率“,是一种修正的计算平均值的方法,也比只是取个平均值效果更好。