Python中不平衡类的欠采样

时间:2019-11-14 23:39:42

标签: python machine-learning downsampling

我目前拥有超过800,000个数据点的不平衡数据集。这种不平衡非常严重,因为两个类别之一只有3719个数据点。在Python中使用NearMiss算法对数据进行欠采样并应用随机森林分类器后,我可以实现以下结果:

  • 准确度:81.4%
  • 精度:82.6%
  • 召回率:79.4%
  • 特异性:83.4%

但是,当再次在完整数据集上再次测试相同模型时,由于某些原因,混淆矩阵结果显示出对少数族裔的较大偏见,从而显示了大量误报。这是欠采样后测试模型的正确方法吗?

1 个答案:

答案 0 :(得分:0)

首先将80万条记录的欠采样数量减少到4k,这可能会浪费您的领域知识。在大多数情况下,您会先进行过采样,然后进行欠采样。 有专用的软件包:imblearn。至于验证:您不想对重新采样的记录进行评分,因为这样会使事情变得混乱。仔细查看sklearn中的评分参数,即:micromacroweighted。文件是here。还有一些特定的指标。在这里检查: