【问题标题】:How to classify imbalanced data in weka?weka中如何对不平衡的数据进行分类?
【发布时间】:2017-03-17 14:52:09
【问题描述】:

我有一个不平衡的训练数据,我在 weka 中使用逻辑回归进行分类。

有好坏两个等级。好的有 75000 个实例,坏的 3000.我的测试数据有10000个好的数据。

当我训练它时,它更倾向于好的数据,即它几乎将所有坏实例分类为好。我该怎么办 ? 我尝试在训练数据中使用 10000 个好的实例而不是 75000 个,但问题仍然相同。

【问题讨论】:

  • 在没有任何信息的情况下很难分辨。您的数据集中还有匿名唯一标识符吗?如果是这样,请删除该属性。

标签: python weka


【解决方案1】:

不确定 python,但在 gui 版本中,您可以使用 SpreadSubsample 来减少类不平衡。如果您认为“坏”是类的良好表示,那么您可以尝试不同数量的“好”实例。

为此,您需要选择 Filter ==> Supervised ==> Instance ==> SpreadSubsample ==> 使用 'max count' 更改实例数

【讨论】:

    【解决方案2】:

    您可以尝试几件事。

    1. 使用 Boosting (AdaBoostM1),以便为错误分类的实例赋予额外的权重。
    2. 使用 weka.classifiers.meta.CostSensitiveClassifier 并赋予“坏”实例比“好”实例更高的权重。 注意:这可能会降低您的整体准确性,但会使您的分类器更好地识别“坏”实例。

    【讨论】:

      猜你喜欢
      • 2015-09-19
      • 2020-09-25
      • 2015-10-04
      • 2014-06-19
      • 2012-04-07
      • 2017-10-10
      • 2020-09-06
      • 1970-01-01
      • 2011-07-27
      相关资源
      最近更新 更多