具有“稀有”事件的监督学习,稀有是由于大量反事实事件造成的

机器算法验证 机器学习
2022-02-15 13:14:27

假设您观察到市场上买卖双方之间的“匹配”。您还可以观察买家和卖家的特征,您希望使用这些特征来预测未来的比赛并向市场双方提出建议。

为简单起见,假设有 N 个买家和 N 个卖家,并且每个人都找到匹配项。有 N 个匹配项和 (N-1)(N-1) 个不匹配项。包罗万象的训练数据集有 N + (N-1)*(N-1) 个观察值,可能大得令人望而却步。似乎从 (N-1)(N-1) 个不匹配项中随机抽样并在减少的数据上训练算法可能更有效。我的问题是:

(1)从不匹配中抽样来构建训练数据集是处理这个问题的合理方法吗?

(2) 如果 (1) 为真,是否有严格的方法来决定要包含多大的 (N-1)(N-1) 块?

2个回答

如果我理解正确,您有一个两类分类问题,其中正类(匹配)很少见。许多分类器都在为这种类不平衡而苦苦挣扎,通常的做法是对多数类进行二次抽样以获得更好的性能,因此第一个问题的答案是“是”。但是,如果子采样过多,最终会得到一个分类器过度预测少数正类,所以最好的办法是选择子采样率以最大化性能,也许通过最小化交叉-未对测试数据进行二次抽样的验证错误,因此您可以很好地指示操作性能。

如果你有一个概率分类器,它可以估计类成员的概率,你可以更好地对输出进行后处理,以补偿训练集和操作中类频率之间的差异。我怀疑对于某些分类器,最佳方法是通过优化交叉验证误差来优化子采样率和对输出的校正。

对于某些分类器(例如 SVM),您可以为正负模式赋予不同的权重,而不是二次抽样。我更喜欢子抽样,因为这意味着由于使用了特定的子样本,结果没有变化。如果这是不可能的,请使用自举来制作袋装分类器,其中在每次迭代中使用多数类的不同子样本。

我要说的另一件事是,通常在存在大类不平衡的情况下,假阴性错误和假阳性错误并不同样糟糕,将其构建到分类器设计中是一个好主意(可以通过 sub - 属于每个类别的采样或加权模式)。

关于(1)。如果你想要有意义的结果,你需要保持积极和消极的观察。
(2) 如果您的数据没有任何先验知识,那么没有比均匀分布更明智的二次抽样方法。