如果数据本质上不平衡,我们应该平衡数据集吗?

机器算法验证 回归 分类 采样 不平衡类
2022-04-08 23:04:34

假设我想预测癌症发病率(回归)/预测一个人是否患有癌症(分类)。该数据本质上很少有癌症患者/癌症发病率低,例如 1/200。而且数据集很好,也够大,比如说10万以上。

现在的问题是:在应用任何回归/分类算法之前,我应该使用某种抽样策略来平衡数据吗?

在我看来,我们需要平衡数据的原因是因为我们得到的数据不遵循自然分布,这很糟糕,就像 10/90 的男性/女性一样。但是现在,我们有一个很好的数据,遵循自然分布,我们应该平衡数据吗?

我还想知道分类与回归的情况是否不同。虽然癌症发病率低,但不采样就可以进行回归吗?

任何高级/详细的想法表示赞赏:)

2个回答

在这个线程中有一些非常好的答案。

在进行逻辑回归时,不平衡的样本是否重要?

此外,您的设置是一个经典设置,如果您说某人没有癌症,但实际上他们确实患有癌症,您将付出高昂的代价。

您应该始终在逻辑回归中使用抽样方法。当面对一个不平衡的数据集时,这意味着事件(响应,肯定......)与非事件(无响应,否定......)数据之间存在巨大的大小差异。当目标事件很少时,一个有代表性的样本不太可能有足够的目标事件来构建一个好的预测模型。幸运的是,具有分类结果(例如对营销活动的响应)的数据集中的信息量不是由数据集中的案例总数决定,而是由最罕见结果类别中的案例数量决定。

  1. 过采样

一种方法是oversampling. 虽然过采样减少了分析时间,但它也引入了一些偏差。您需要纠正这些偏差,以便结果适用于总体。

例如,您可以选择包含所有事件且仅包含非事件子集的数据样本,这将使事件和非事件数据大小相似。同样,这种分析引入了您需要纠正的偏差,以便结果适用于总体。

  1. 拆分数据以进行训练、验证和测试。(你可能知道这一点。)
  2. 偏差校正。过采样的效果是响应(logit(p^)) 逻辑回归模型的表面是线性移动的,过采样不会影响斜率,但会导致截距过高或过低。

要纠正偏差或偏移,请遵循以下等式

Offset=ln(π0ρ1)(π1ρ0)

π0=人口中非事件的比例; π1=人口中事件的比例。

ρ0=样本中非事件的比例; ρ1=样本中事件的比例。

输出结果应该是(logit(p^)抵消)