【问题标题】:Effects of Observations on Decision Tree Prediction using rpart (R package)使用 rpart(R 包)观察对决策树预测的影响
【发布时间】:2018-08-26 01:19:12
【问题描述】:

我对机器学习非常是新手,所以如果这个问题的答案非常明显,我深表歉意。

我正在使用决策树,使用rpart 包,尝试使用与该结构火灾相关的各种变量来预测结构火灾何时可能导致死亡,例如原因是什么,程度损坏等。

结构火灾导致死亡的几率约为 100 分之一。

简而言之,我的训练集中有大约 154,000 个观察值。我注意到,当我使用完整的训练集时,复杂度参数cp 必须一直降低到.0003

> rpart(Fatality~.,data=train_val,method="class", control=rpart.control(minsplit=50,minbucket = 1, cp=0.00035))
n= 154181 

node), split, n, loss, yval, (yprob)
      * denotes terminal node

  1) root 154181 1881 0 (0.987800053 0.012199947)  
    2) losscat=Minor_Loss,Med_Loss 105538  567 0 (0.994627528 0.005372472) *
    3) losscat=Major_Loss,Total_Loss 48643 1314 0 (0.972986863 0.027013137)  
      6) HUM_FAC_1=3,6,N, 46102 1070 0 (0.976790595 0.023209405) *
      7) HUM_FAC_1=1,2,4,5,7 2541  244 0 (0.903974813 0.096025187)  
       14) AREA_ORIG=21,24,26,47,72,74,75,76,Other 1846  126 0 (0.931744312 0.068255688)  
         28) CAUSE_CODE=1,2,5,6,7,8,9,10,12,14,15 1105   45 0 (0.959276018 0.040723982) *
         29) CAUSE_CODE=3,4,11,13,16 741   81 0 (0.890688259 0.109311741)  
           58) FIRST_IGN=10,12,15,17,18,Other,UU 690   68 0 (0.901449275 0.098550725) *
           59) FIRST_IGN=00,21,76,81 51   13 0 (0.745098039 0.254901961)  
            118) INC_TYPE=111,121 48   10 0 (0.791666667 0.208333333) *
            119) INC_TYPE=112,120 3    0 1 (0.000000000 1.000000000) *
       15) AREA_ORIG=14,UU 695  118 0 (0.830215827 0.169784173)  
         30) CAUSE_CODE=1,2,4,7,8,10,11,12,13,14,15,16 607   86 0 (0.858319605 0.141680395) *
         31) CAUSE_CODE=3,5,6,9 88   32 0 (0.636363636 0.363636364)  
           62) HUM_FAC_1=1,2 77   24 0 (0.688311688 0.311688312) *
           63) HUM_FAC_1=4,5,7 11    3 1 (0.272727273 0.727272727) *

但是,当我只获取前 10,000 个观察值(无意义的顺序)时,我现在可以使用 0.01 的 cp 运行

> rpart(Fatality~., data = test, method = "class", 
+       control=rpart.control(minsplit=10,minbucket = 1, cp=0.01))
n= 10000 

node), split, n, loss, yval, (yprob)
      * denotes terminal node

  1) root 10000 112 0 (0.988800000 0.011200000)  
    2) losscat=Minor_Loss,Med_Loss 6889  26 0 (0.996225867 0.003774133) *
    3) losscat=Major_Loss,Total_Loss 3111  86 0 (0.972356156 0.027643844)  
      6) HUM_FAC_1=3,7,N 2860  66 0 (0.976923077 0.023076923) *
      7) HUM_FAC_1=1,2,4,5,6 251  20 0 (0.920318725 0.079681275)  
       14) CAUSE_CODE=1,3,4,6,7,8,9,10,11,14,15 146   3 0 (0.979452055 0.020547945) *
       15) CAUSE_CODE=5,13,16 105  17 0 (0.838095238 0.161904762)  
         30) weekday=Friday,Monday,Saturday,Tuesday,Wednesday 73   6 0 (0.917808219 0.082191781) *
         31) weekday=Sunday,Thursday 32  11 0 (0.656250000 0.343750000)  
           62) AREA_ORIG=21,26,47,Other 17   2 0 (0.882352941 0.117647059) *
           63) AREA_ORIG=14,24,UU 15   6 1 (0.400000000 0.600000000)  
            126) month=2,6,7,9 7   1 0 (0.857142857 0.142857143) *
            127) month=1,4,10,12 8   0 1 (0.000000000 1.000000000) *
  1. 为什么更多的观察结果导致了我 必须降低复杂性?直觉上我认为它应该是 对面。
  2. 是否必须将 cp 减少到 .003 “不好”?
  3. 一般来说,是否有任何其他建议可以提高决策树的有效性,尤其是在首先预测概率如此之低的事物时?

【问题讨论】:

    标签: r machine-learning decision-tree prediction rpart


    【解决方案1】:
    1. cp,根据我的阅读,是一个用于决定何时停止向树中添加更多叶子的参数(对于要考虑进行另一个拆分的节点,通过允许新拆分来改善相对误差必须通过超过cp 阈值)。因此,数字越小,它可以添加的叶子越多。更多的观察意味着有机会降低门槛,我不确定我是否理解你“必须”减少cp...但我可能是错的。如果这是一个非常罕见的事件,并且您的数据不适合在模型的早期阶段显示显着改进,则可能需要您通过降低 cp...“提高敏感性”...但您可能知道你的数据比我好。
    2. 如果您正在模拟一个罕见的事件,不。如果这不是罕见的事件,您的cp 越低,您越有可能过度拟合样本的偏差。我不认为 minbucket=1 会导致一个可解释的模型,或者......出于类似的原因。
    3. 对我来说,决策树在 3-4 级之外没有多大意义,除非您真的相信这些硬削减确实创建了证明最终“桶”/节点或预测合理的标准(例如,如果我想将您放入适合您风险状况的贷款或保险产品之类的金融产品中,而我的精算师进行了严格的削减以分割前景)。在您将数据拆分 3-4 次后,在树的底部生成至少 8-16 个节点,您基本上已经构建了一个模型,该模型可以被认为是独立分类变量的 3 阶或 4 阶交互作用。如果您将 20 位统计学家(不是经济学家)放在一个房间里,并询问他们在模型中看到重要的三阶或四阶交互的次数,他们可能会摸不着头脑。你有没有尝试过其他方法?还是从降维开始?更重要的是,你试图对数据做出什么推论?

    【讨论】:

    • 我应该澄清一下,必须降低 cp,我的意思是我必须降低最低限度才能拥有任何分支。即使用完整的训练集,如果使用'cp = .0005',我总是只得到根。我注意到所有在线示例都涉及具有高概率的因变量的场景,即泰坦尼克号数据集。我注意到即使我的模型可能有 98% 的准确率,但对我来说这并不意味着什么。我可以“预测”每个人都会在结构火灾中幸存下来并达到 98% 的准确率!现在尝试随机森林。
    猜你喜欢
    • 2018-10-02
    • 2015-08-22
    • 2015-06-16
    • 2015-06-28
    • 2013-02-09
    • 2021-05-30
    • 2012-12-26
    • 1970-01-01
    • 2013-05-01
    相关资源
    最近更新 更多