利用上采样数据的交叉验证

机器算法验证 交叉验证
2022-03-23 17:33:00

我正在为极其不平衡的数据创建一个支持向量机,其中识别稀有类的实例是最重要的。由于数据是如此不平衡,因此在没有上采样的情况下训练和测试一个模型会产生一个极其准确的模型,该模型在其真实阳性率方面表现非常差。

为了确保模型能够正确区分正负类,我将数据分成训练集和测试集,并对训练数据中的稀有类进行上采样。这允许我使用测试数据来估计模型的性能,但它似乎让我无法利用 k 折交叉验证。我使用的方法是可接受的方法吗?是否有其他推荐的方法?

3个回答

是的,简历结果会有偏差。您仍然可以使用它们来调整模型。

另一种选择是使用类加权方案,为不同类型的错误提供不对称的成本值(参见下面的参考资料)。这在某些软件中可用(例如 R kernlab 包)。

我认为这是一种更好的方法,因为它允许您调整成本函数以满足您的敏感性或特异性需求。这是另一个调整参数,在上采样时你没有那个“旋钮可以转动”。

最大限度

Veropoulos K、Campbell C、Cristianini N (1999)。“控制支持向量机的灵敏度。” 国际人工智能联合会议论文集,1999 年,55-60。

这是一个可能对此问题感兴趣的相关答案。(抱歉自动引用)

我不使用支持向量机,但在逻辑回归和人工神经网络中,我已经成功地将 k-fold 与复制的训练数据一起使用(剪切折叠,生成正确的训练\测试对,仅在训练数据中生成较少代表类的副本),有时有噪音。在选择切点时消除了偏差。

如果在本文中找到,对可用于不平衡数据的技术进行非常基本的回顾。到目前为止,我最喜欢的技术(PCA 加噪声注入)可以在本文中找到。