【问题标题】:Imbalance Data For Classification用于分类的不平衡数据
【发布时间】:2016-08-29 18:42:46
【问题描述】:

我的数据集包含大约 10^6 条目。但问题是数据是Imbalance

我使用 Adboost 创建了一个线性分类器。但是由于数据不平衡,我的准确性很差。如何应对不平衡数据。我正在使用Graphlab

这里是数据平衡的简单代码:

safe_loans_raw = loans[loans[target] == 1]
risky_loans_raw = loans[loans[target] == -1]

# Undersample the safe loans.
percentage = len(risky_loans_raw)/float(len(safe_loans_raw))
safe_loans = safe_loans_raw.sample(percentage, seed = 1)
risky_loans = risky_loans_raw
loans_data = risky_loans.append(safe_loans) 

但是准确性仍然不认可,任何人都可以为此提供有效的方法吗?

【问题讨论】:

    标签: algorithm machine-learning graphlab


    【解决方案1】:

    您是如何得出准确性差是由于数据不平衡造成的结论的?因为根据您提供的代码,loans_data 应该有平衡的数据(大约 50% 的风险贷款和 50% 的安全贷款)。创建loans_data后请查看风险贷数和安全贷数确认。

    准确性差可能是因为您选择了用于训练模型的特征或数据本身。

    【讨论】:

      【解决方案2】:

      处理不平衡数据是数据挖掘和机器学习领域中最具挑战性的领域之一。因此,您不会立即找到一个简单、直接的答案。

      根据我的经验,使用惩罚(或加权)评估指标是最好的方法之一(简短答案),但是(总是有一个但是!),您可以参考以下资源来找到有效的方法。您的问题更多是科学问题,而不是工具问题。

      This 应该会处理这种情况,但请确保在使用之前了解背景。

      Free

      Not Free but more valuable

      【讨论】:

      【解决方案3】:

      你也可以在boosted trees中使用参数"class_weights="auto",它在一定程度上处理了不平衡的数据。欲了解更多信息,请查看:default paramters

      【讨论】:

        猜你喜欢
        • 2021-08-24
        • 2019-08-11
        • 2020-06-27
        • 1970-01-01
        • 2016-12-31
        • 2015-01-28
        • 2017-04-19
        • 2019-11-05
        • 2017-05-26
        相关资源
        最近更新 更多