在需要时收集数据并采样后,下一步是将数据拆分为训练集、验证集和测试集。
当随机拆分不是最佳方法时
虽然随机拆分是解决许多机器学习问题的最佳方法,但它不一定是正确的解决方案。例如,考虑将样本自然聚类到类似样本的数据集。
假设您希望模型对新闻报道的文本进行分类。为什么随机拆分会出现问题?
图 1. 新闻报道已汇总。
新闻报道显示在集群中:有关同一主题的多个新闻报道同时发布。因此,如果我们随机拆分数据,则测试集和训练集很可能包含相同的案例。实际上,这种方法并不可行,因为所有故事会同时传入,因此进行此类拆分会导致倾斜。
图 2. 随机拆分会将集群划分为多组,从而导致偏差。
解决此问题的一种简单方法是根据故事的发布时间(可能按报道的发布日)拆分数据。这会导致同一天的报道被放置在同一分组中。
图 3. 按时间拆分可让集群基本上属于同一组。
若有成千上万个新闻报道,可能会按天计算一个百分比。但没关系,实际上这些报道是在新闻周期的两天内拆分的。或者,您也可以在边缘的一定距离内抛出数据,以确保没有任何重叠。例如,您可以针对 4 月的故事进行训练,然后将 5 月的第二周作为测试集,防止周间隔重叠。