为成本敏感的分类调整超参数

数据挖掘 r 分类 阶级失衡 超参数
2022-03-10 08:35:56

我有一个不平衡的数据集,其中包含大约 8% 的负面示例。目标是在给定成本矩阵的情况下最小化假阴性。似乎 SVM(带有径向内核)和随机森林效果最好。我应该如何在此设置中调整超参数?

我的建议:将数据分成训练/验证集,使用概率输出和成本矩阵来分配预测类,调整超参数以最大限度地提高准确性

如何提高性能?目前,我使用nodesize=1mtry=5的随机森林,准确率约为 97%。

2个回答

调整模型的超参数更像是一门艺术,而不是一门科学。

R (caRet) 和 Python (sklearn) 都有使用交叉验证执行超参数网格搜索的框架。您可以在这些框架中定义自定义成本函数,这将允许您使用成本矩阵直接评估交叉验证结果。请参阅Python的scikit-learn 文档或 R 的caRet 文档。使用成本矩阵直接评估模型,而不是使用 F-1、精度、召回率、准确率或任何其他指标,您将获得更好的结果。

其他指导

重要的是要了解不同超参数在每种学习算法的上下文中的实际含义,以帮助指导参数搜索,因为计算限制通常会严格限制您可以构建的不同模型的总数,从而限制您可以实际使用的网格大小搜索。

由于您的集中负面示例的百分比如此之低,您将需要确保使用分层抽样进行交叉验证。这将确保每个折叠具有与基本集相同百分比的负样本。否则,您的交叉验证结果可能会受到非均匀负类分布的影响。

我按如下方式解决此任务:交叉验证训练数据以最大化 F1 分数,然后使用概率输出和成本矩阵来预测新项目的类别。欢迎任何建议。