为什么决策树在处理不平衡数据时表现出色?

我尝试了从Kaggle获取的欺诈样本数据进行实验。

样本包含284807笔交易,其中497笔属于一类,其余属于另一类,比例为0.172%。存在数据不平衡的问题,我想测试简单的随机欠采样效果如何。我将样本分成20份,并通过精确率-召回率曲线下的面积进行检查。

我使用了线性回归和决策树。线性回归的表现如预期:插入图片描述

但决策树似乎表现得非常出色:插入图片描述

我们有非常高的精确率和召回率,而欠采样反而使其变差。为什么这两种模型之间会有如此大的差异?


回答:

首先,一般来说,简单的决策树模型并不能很好地解决数据不平衡问题。模型的表现与数据集的实际分布密切相关。

有几种情况可能会导致决策树模型能够解决不平衡问题,你可以检查一下你提到的情况是否与以下情况一致:

  1. 少数类数据全部位于特征空间的一个区域。决策树的训练过程是一个递归过程,算法会持续选择最优的分区属性,生成分支和节点,直到满足以下条件:1)当前节点包含的样本全部属于同一类别,无需再分;2)属性集为空,或者所有样本在所有属性值上都相同,无法再分;3)当前节点包含的样本集为空,无法再分。因此,如果少数类数据全部位于特征空间的一个区域,那么所有样本将被划分到一个节点中,在预测时,如果测试集也有这样的特征分布,那么就会得到一个很好的分类器。
  2. 你使用的是采用成本敏感学习的决策树。如果你的决策是成本敏感的,那么少数类样本的错误分类成本将高于多数类样本的错误分类成本。

如果你使用集成学习,模型表现会很好,但那不是决策树,而是随机森林或梯度提升决策树。

对于使用线性回归的简单分类器,例如逻辑回归,面对不平衡问题时,表现几乎肯定会很差。这是因为,在训练过程中,模型寻找的是使错误分类最少的超平面。结果,模型将所有样本归类为多数标签。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注