
264
|
第
6
章
符合这一标准的航班数量可能非常少。如果得到这些航班的正确行为对我们的业务
用例至关重要,我们应该基于起飞时间来对数据集分层,将各层平均拆分。
起飞时间就是一个偏斜特征的例子。在一个不平衡的分类问题中(如欺诈检测,其中
欺诈案例的数量相当少),我们可能希望通过标签对数据集进行分层,并均匀地拆分
每个层。如果我们处理的是多标签问题并且其中一些标签的数量比其他标签更稀少,
这也很重要。这些情况在第
3
章的“设计模式
10
:再平衡”一节中已经讨论过了。
非结构化数据
虽然我们在本节中重点讨论了结构化数据,但同样的原理也适用于非结构化数据,如
图像、视频、音频或自由格式的文本。只需使用元数据执行拆分即可。例如,如果同
一天拍摄的视频是相关的,可以使用从元数据抓取的视频拍摄日期来将视频拆分为互
相独立的数据集。同样,如果来自同一个人的文本评论往往是相关的,那么使用评论
者的
user_id
的
Farm
指纹来在数据集中重复拆分评论数据集。如果元数据不可用或
实例之间没有相关性,则使用
Base64
编码对图像或视频进行编码并计算编码的指纹。
拆分文本数据集的一种自然方式可能是使用文本本身的哈希值进行拆分。然而,这
类似于随机拆分,并不能解决评价之间的相关性问题。例如,如果一个人在负面评
论中经常用“
stunning
”这个词,或者如果一个人把所有的《星球大战》系列电影都
评为糟糕,那么他们的评论就是相关的。同样,拆分图像或音频数据集的一种自然
方式可能是使用文件名的哈希值进行拆分,但这不能解决图像或视频之间的一种相
关性问题 ...