我尝试了kaggle的欺诈抽样。
该样本由284807个交易组成,其中497个为一类,其余为另一类,比率为0.172%。
有一个不平衡的问题,我想测试简单的随机欠采样的工作原理。我将样本分成20个部分,并通过精确调用曲线下的区域进行检查。
我采用了线性回归和决策树。
线性回归按预期工作:
enter image description here
但是似乎决策树可以完美运行:enter image description here
我们具有很高的精度和召回率,而欠采样会使它们变得更糟。为什么两个模型之间有如此大的差异?
最佳答案
首先,一般而言,简单的决策树模型不能很好地解决不平衡问题,模型的性能与数据集的实际分布密切相关。
有几种情况可以导致决策树模型解决不平衡问题,您可以检查问题中提到的情况是否与以下情况一致:
少数数据全部在特征空间的一个区域中。决策树的训练过程是一个递归过程,算法将继续选择最佳的划分属性,生成分支和节点,直到满足:1)当前节点包含所有样本都属于同一类别,不需要除法2)属性集为空,或者所有属性值中的所有样本都相同,无法除法3)当前节点包含的样本集为空,不能因此,如果少数数据全部位于特征空间的一个区域中,则所有样本将被划分为一个节点,并且在预测中,如果测试集也是这样的特征分布,则将获得良好的分类器。
您正在使用使用成本敏感型Learning的决策树。如果您的决策对成本敏感,那么少数类样本的错误分类将比多数类样本的错误分类具有更高的成本。
如果您使用集成学习,则模型将运行良好,但这不是决策树,而是RF或GBDT
对于使用线性回归(例如逻辑回归)的简单分类器,当遇到不平衡问题时,性能几乎肯定是不好的,这是因为在训练中,模型正在寻找使错误分类最少的超平面。将所有样本分类到大多数标签中。
关于machine-learning - 为什么决策树在不平衡数据上能完美工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46104173/