不平衡数据的二进制分类模型


14

我有一个具有以下规格的数据集:

  • 训练193,176个样本的数据集,具有2,821个阳性
  • 包含82,887个样本和673个阳性样本的测试数据集
  • 有10个功能。

我想执行一个二进制分类(0或1)。我面临的问题是数据非常不平衡。在对数据进行归一化和缩放以及一些特征工程并使用几种不同的算法之后,这些是我可以实现的最佳结果:

mean square error : 0.00804710026904
Confusion matrix : [[82214   667]
                   [    0     6]]

即只有6个正确的正面命中率。这是使用逻辑回归。这是我尝试过的各种方法:

  • 不同的算法,例如RandomForest,DecisionTree,SVM
  • 更改参数值以调用函数
  • 一些基于直觉的要素工程以包含复合要素

现在,我的问题是:

  1. 我该怎么做才能增加正面的点击次数?
  2. 在这种情况下,如何确定是否存在过度拟合?(我曾尝试绘图等。)
  3. 在什么时候可以得出结论,也许这可能是我所能做到的最佳选择?(考虑到673中只有6个匹配项,这似乎很可悲)
  4. 有没有办法使正样本实例更重,从而提高模式识别能力并导致更多匹配?
  5. 哪些图形化图可以帮助检测离群值或关于哪种模式最适合的直觉?

我将scikit-learn库与Python一起使用,并且所有实现都是库函数。

编辑:

以下是一些其他算法的结果:

随机森林分类器(n_estimators = 100)

[[82211   667]
[    3     6]]

决策树:

[[78611   635]
[ 3603    38]]

Answers:


11
  1. 由于您正在执行二进制分类,您是否尝试过调整分类阈值?由于您的算法似乎不太敏感,因此我将尝试降低它并检查是否有改进。

  2. 您始终可以使用“ 学习曲线 ”或一个模型参数与“训练和验证”误差的图来确定模型是否过拟合。看来这很适合您的情况,但这只是直觉。

  3. 好吧,最终它取决于您的数据集以及您尝试过的不同模型。在这一点上,没有进一步的测试,就不可能有确切的答案。

  4. 在不声称自己是该主题的专家的情况下,您可以遵循许多不同的技术(提示:google上的第一个链接),但是我认为您应该首先确保谨慎选择成本函数,以便它代表什么。您实际上正在寻找。

  5. 不确定模式直觉是什么意思,能否详细说明?

顺便说一句,您尝试过的不同算法的结果如何?它们有什么不同吗?


1
调整逻辑回归的阈值可以解决问题。感谢来源清单。
tejaskhot 2014年

有人可以粘贴有关如何调整逻辑回归阈值的代码段吗?
Blenz

0

由于数据非常偏斜,因此在这种情况下,我们还可以在对数据进行过采样后尝试进行模型训练。

SMOTE和ADASYN是我们可以用来对数据进行过采样的一些技术。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.