采用过采样进行打包以建立罕见事件预测模型


13

有谁知道是否描述了以下内容以及(无论哪种方式)听起来像是一种学习目标变量非常不均衡的预测模型的合理方法?

通常在数据挖掘的CRM应用程序中,我们将寻求一个模型,其中相对于大多数事件(负面事件)而言,积极事件(成功)非常罕见。例如,我可能有500,000个实例,其中只有0.1%是感兴趣的正类(例如,购买的客户)。因此,为了创建预测模型,一种方法是对数据进行采样,从而保留所有正类实例,而仅保留一个负类实例的样本,以使正类与负类的比率更接近1(可能为25%达到75%(从正面到负面)。文献中有过采样,欠采样,SMOTE等所有方法。

我很好奇的是将上面的基本采样策略与否定类的装袋相结合。

  • 保留所有积极的课堂实例(例如1,000个)
  • 对否定类实例进行采样,以创建一个平衡的样本(例如1,000)。
  • 拟合模型
  • 重复

有人听说过吗?似乎没有装袋的问题是,当存在500,000个样本时,仅对1,000个否定类实例进行采样是因为预测变量空间将稀疏,并且您很可能无法表示可能的预测变量值/模式。套袋似乎对此有所帮助。

我看了rpart,当其中一个样本没有一个预测变量的所有值时都没有“中断”(然后用这些预测变量的值预测实例时也没有中断):

library(rpart)
tree<-rpart(skips ~ PadType,data=solder[solder$PadType !='D6',], method="anova")
predict(tree,newdata=subset(solder,PadType =='D6'))

有什么想法吗?

更新: 我获取了一个真实世界的数据集(营销直接邮件响应数据),并将其随机划分为训练和验证。有618个预测变量和1个二进制目标(非常罕见)。

Training:
Total Cases: 167,923
Cases with Y=1: 521

Validation:
Total Cases: 141,755
Cases with Y=1: 410

我从训练集中选取了所有阳性样本(521),并从平衡样本中随机抽取了相同大小的阴性样本。我适合一棵rpart树:

models[[length(models)+1]]<-rpart(Y~.,data=trainSample,method="class")

我重复了此过程100次。然后针对这100个模型中的每一个,在验证样本的情况下预测Y = 1的概率。我只是将这100个概率取平均值进行最终估算。我在验证集上确定了概率,并在每个十分位中计算了Y = 1(模型估算能力的传统方法)的百分比。

Result$decile<-as.numeric(cut(Result[,"Score"],breaks=10,labels=1:10)) 

表演如下: 在此处输入图片说明

为了了解与没有套袋相比的情况,我仅使用第一个样本(所有阳性病例和相同大小的随机样本)预测了验证样本。显然,所采样的数据太稀疏或过拟合,以至于无法对保留的验证样本生效。

当发生罕见事件且n和p较大时,建议套袋程序的有效性。

在此处输入图片说明

Answers:


7

除了在每个袋中包括相同的肯定类别示例外,这是S ^ 3Bagging,如S ^ 3Bagging:带二次采样和装袋的快速分类器归纳方法中所述。(我没有深入研究这篇论文,只是略读了一下。)

从理论上讲,您的方法没什么错,尽管我经常看到次采样与增强相结合而不是装袋。

这可能无法完全解决您的问题,但是一篇关于处理不平衡数据的不同方法的出色论文是“ 从不平衡数据中学习”。像成本敏感型学习这样的接缝可能更适合您的情况。由于您使用的是决策林,因此第3.2.3节“成本敏感型决策树”可能会有所帮助。它指出,

关于决策树,成本敏感的拟合可以采取三种形式:第一,可以将成本敏感的调整应用于决策阈值;其次,可以对每个节点的拆分标准进行成本敏感的考虑。最后,可以将成本敏感的修剪方案应用于该树

对决策阈值进行成本敏感的调整,基本上意味着根据ROC或Precision-Recall Curve性能选择决策阈值。尤其是PRC的表现对于不平衡的数据非常有力。

成本敏感的拆分标准归结为更改杂质函数以处理不平衡的数据。上述论文指出,

在[63]中,与准确度/错误率基线相比,三个特定的杂质函数吉尼,熵和DKM被证明具有改善的成本不敏感性。此外,这些经验实验还表明,使用DKM函数通常会产生较小的未修剪决策树,更糟糕的是,它们提供的精度可与Gini和Entropy媲美。后来在[49]中建立了详细的理论基础来解释这些经验结果的结论,该理论概括了对于任意吐口水标准的决策树增长的影响。

至于修剪

但是,在数据不平衡的情况下,修剪程序倾向于删除描述少数派概念的叶子。研究表明,尽管由不平衡数据引起的修剪树可能会阻碍性能,但在这种情况下使用未修剪的树不会提高性能[23]。结果,注意力已经集中在改进每个节点上的类别概率估计上,以开发更具代表性的决策树结构,从而可以应用修剪效果。一些有代表性的工作包括概率估计的拉普拉斯平滑方法和拉普拉斯修剪技术[49]。

[23] N. Japkowicz和S. Stephen,“班级失衡问题:系统研究”,《智能数据分析》,第1卷。6号 5,第429-449页,2002年。

[49] C. Elkan,“成本敏感型学习的基础”,Proc。国际联合会议 人工智能,第973-978页,2001年。

[63] C. Drummond和RC Holte,“利用决策树划分标准的成本(敏感性)”,Proc.Natl.A则。国际会议 《机器学习》,第239-246页,2000年。


0

这很有趣。我最近有一个项目,情况类似,在罕见事件上的验证效果很好,而在最低预测范围内(例如0.0-0.1)的非事件的验证效果却不稳定。如您所述,背后的原因是由于大量的非事件,最好在训练集中包含更多样本,以便有足够的样本来覆盖变量的各种组合。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.