二元分类中的类概率

机器算法验证 机器学习 可能性 分类
2022-04-15 10:21:28

我有一个包含 0 类和 1 类的二元分类任务,并且这些类是不平衡的(1 类:~8%)。数据在 ~10k 样本的范围内,#features 可能会有所不同,但在 50-100 左右。

我只对输入属于第 1 类的概率感兴趣,稍后我将在另一个上下文中使用预测概率作为实际概率(见下文)。

我想知道如何最好地模拟这个问题。我目前的方法是在 scikit-learn 中使用随机森林和 predict_proba,并使用 ROC-AUC 作为评分函数。准确度为 0.92,因为它不能预测概率 > 0.5 的任何 1 类。

在阅读该主题后,我遇到了许多建议和术语,并尝试在所有这些中加入一些结构。具体来说:

  1. 我看到了其他一些建议的评分器,即 Cohens kapa、Matthews 相关系数、PC-AUC 等等。我应该看看所有这些还是我的问题有一个最喜欢的?

  2. 我刚刚遇到了 scikit 中的概率校准主题。由于我对真实概率感兴趣,我认为它非常相关。我是否正确假设我的模型中应该包含一个额外的 CalibratedClassifierCV,因为它基于决策树?(这是在 R 中自动完成的吗?)

  3. 在查看了一些 kaggle 比赛后,xgboost 似乎很有希望。那也很适合我的问题,还是您对算法有其他建议(坚持RF)?

1个回答

您正在考虑不同的分类器,但实际上这不是分类问题。您对将数据分类为 0 和 1 不感兴趣,但对预测个别案例为 0 和 1 的概率感兴趣。在这种情况下,专门为此类问题设计的通常选择方法是逻辑回归与流行的看法相反,逻辑回归不是分类器,而是预测概率,因此它完全符合您的要求。