我正在使用一个非常不平衡的数据集(1% 的正例)用于分类问题。我知道班级平衡是这种情况下的重要一步。
我有两个问题:
考虑到我不想放 0/1 标签,而只是根据输出分数对记录进行排序(它始终是正类的校准概率),做类仍然是个好主意吗平衡还是考虑到所需的特定输出,它没有用?
基本上,我不关心截止点,但我只是对记录进行排序,以便识别出阳性概率较高的记录。
考虑到阳性病例的比例真的很小,是否进行过度/不足采样更好?是否有任何经验法则来决定重采样的比例?
先感谢您!
我正在使用一个非常不平衡的数据集(1% 的正例)用于分类问题。我知道班级平衡是这种情况下的重要一步。
我有两个问题:
考虑到我不想放 0/1 标签,而只是根据输出分数对记录进行排序(它始终是正类的校准概率),做类仍然是个好主意吗平衡还是考虑到所需的特定输出,它没有用?
基本上,我不关心截止点,但我只是对记录进行排序,以便识别出阳性概率较高的记录。
考虑到阳性病例的比例真的很小,是否进行过度/不足采样更好?是否有任何经验法则来决定重采样的比例?
先感谢您!
由于存在如此严重的不平衡和两个类别(似乎),您可以将其更多地视为异常值检测问题。您应该阅读该方向的模型和算法!
如果您继续使用传统分类,您需要平衡数据集,请考虑使用 SMOTE 等方法。
根据您的数据大小,我通常建议对多数类进行下采样,以避免产生“合成”案例,但 SMOTE 等高级方法基本上会为您处理这个决定。
你能详细说明你的第一个问题是什么意思吗?分类算法需要 0/1 标签,因此输出分数不能按照您提到的方式排序。一些分类算法会给出概率分数而不是预测标签,所以如果这就是你的意思,我可以告诉你,不平衡仍然是一个问题。
一些 Python Sklearn 模型有这个选项:class_weight="balanced"。通过这种方式,您可以向算法指定您的数据是不平衡的,并且它会自行进行更改。您可以在几个模型上尝试此操作,与在同一问题中使用下采样多数类技术相比,我使用此选项获得了更好的结果