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

  • 带有193,176个样品的培训数据集,有2,821个阳性
  • 带有82,887个样品的测试数据集,带有673个阳性
  • 有10个功能。

我想执行二进制分类(0或1)。我面临的问题是数据非常不平衡。在标准化和扩展数据以及某些功能工程并使用几个不同的算法之后,这些是我可以实现的最佳结果:

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

即只有6个正确的积极命中。这是使用逻辑回归。这是我尝试过的各种事情:

  • 不同的算法,例如Randomforest,Deciestrete,SVM
  • 更改参数值以调用函数
  • 一些基于直觉的功能工程,包括复合功能

现在,我的问题是:

  1. 我该怎么做才能提高积极的命中次数?
  2. 在这种情况下,如何确定是否有过度合适? (我尝试绘图等)
  3. 在什么时候可以得出结论,这是否是我能拥有的最佳选择? (考虑到673中只有6次命中,这似乎很可悲)
  4. 有没有办法使积极的样本实例更重,从而改善了模式识别,从而导致更多打击?
  5. 哪些图形图可以帮助检测异常值或有关哪种模式最适合最佳的直觉?

我正在使用带Python的Scikit-Learn库,所有实现都是库函数。

编辑:

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

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

[[82211   667]
[    3     6]]

决策树:

[[78611   635]
[ 3603    38]]
有帮助吗?

解决方案

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

  2. 您可以随时使用 学习曲线, ,或一个模型参数与培训和验证错误的图,以确定您的模型是否过于拟合。在您的情况下,这似乎很合适,但这只是直觉。

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

  4. 没有声称自己是该主题的专家,您可能会遵循许多不同的技术(提示:: Google上的第一个链接),但我认为您应该首先确保仔细选择成本功能,以代表您实际寻找的内容。

  5. 不确定您的意思是图案直觉,您能详细说明吗?

顺便说一句,您尝试的不同算法是什么结果?他们有什么不同吗?

其他提示

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

Smote和Adasyn 是我们可以用来超过数据的一些技术。

许可以下: CC-BY-SA归因
scroll top