吴恩达《Machine Learning Yearning》学习笔记(一):开放集与测试集

1.你的开放集与测试集

(1)训练集:不言而喻

(2)开放集:在训练时用来测试模型并调整模型参数的数据

(3)测试集:模型训练好后用来评估模型的数据

        一般而言,训练集和测试集三七分。但你要特别注意的开放集和测试集。因为,开放集和测试集代表着你希望模型朝着某个最重要的方向进行训练。

        因此,选择的开放集和测试集要能够反映你未来得到的数据。所以,30%的测试集不要随便选。比如做一个图像识别模型,你的训练集数据是从网上找的,然后你想用模型识别你手机拍摄的照片,你会发现,模型效果很差。这是因为,网上的图片分辨率、模糊度与手机拍摄的很不同,这时就应该多找一些手机拍来的照片做开放集和测试集。

2.你的开放集和测试集应该属于同分布

        比如你识别猫的图像分别来自四个国家,你用两个国家做开放集,另外两个国家做测试集,这样大错特错!这样你会发现,在开放集表现良好的模型,到了测试集表现不好。如果这时你的开放集和测试集是同分布的,那问题就很明确了,开放集过拟合了。这时我们要做到就是增加开放集。

        但如果开放集和测试集没有同分布,问题分析起来就会麻烦很多,会浪费大量开发时间。

3.开放集/测试集需要多少?

        开放集的数量要足够多,以至于可以将两个算法的性能差别体现出来。比如两个模型有0.1%的差别,100个开放集样本应该不能体现出差别,应该去1000甚至10000个样本。当然,在如广告、网页搜索、商品推荐等领域,0.01%的准确率的提升都会对业务起到很大帮助的场景,开放集要取得比10000大的多得多。

        测试集多大呢?应该足够大到有绝对的信心把模型性能展现出来。一个启发性的说法是30%,但如果在大数据比如数十亿级别的数据中,测试集的规模可以适当缩减。因为,不需要这么多啦~

你可能感兴趣的:(吴恩达《Machine Learning Yearning》学习笔记(一):开放集与测试集)