数据拆分示例

在需要时收集数据并采样后,下一步是将数据拆分为训练集验证集测试集

当随机拆分不是最佳方法时

虽然随机拆分是解决许多机器学习问题的最佳方法,但它不一定是正确的解决方案。例如,考虑将样本自然聚类到类似样本的数据集。

假设您希望模型对新闻报道的文本进行分类。为什么随机拆分会出现问题?

四条单独的报道集群(标记为“故事 1”、“故事 2”、“故事 3”和“故事 4”)显示在时间轴上。 图 1. 新闻报道已汇总。

新闻报道显示在集群中:有关同一主题的多个新闻报道同时发布。因此,如果我们随机拆分数据,则测试集和训练集很可能包含相同的案例。实际上,这种方法并不可行,因为所有故事会同时传入,因此进行此类拆分会导致倾斜。

图 1 中的相同报道不再位于时间轴上。现在,这些文章被随机分为训练集和测试集。每个训练集和测试集都同时包含全部四个故事的不同示例。 图 2. 随机拆分会将集群划分为多组,从而导致偏差。

解决此问题的一种简单方法是根据故事的发布时间(可能按报道的发布日)拆分数据。这会导致同一天的报道被放置在同一分组中。

图 1 中的原始时间轴现已划分为训练集和测试集。“故事 1”和“故事 2”中的所有文章都位于训练集中,而“故事 3”和“故事 4”中的所有文章都位于测试集中。 图 3. 按时间拆分可让集群基本上属于同一组。

若有成千上万个新闻报道,可能会按天计算一个百分比。但没关系,实际上这些报道是在新闻周期的两天内拆分的。或者,您也可以在边缘的一定距离内抛出数据,以确保没有任何重叠。例如,您可以针对 4 月的故事进行训练,然后将 5 月的第二周作为测试集,防止周间隔重叠。