决策树适合大数据么( 三 )


模型拟合 【决策树适合大数据么】 该rxDTree功能有许多用于控制模型的拟合选项.rpart用户熟悉这些控制参数中的大多数,但在某些情况下已修改默认值以更好地支持大型数据树模型。可以在rxDTree帮助文件中找到这些选项的完整列表,但在我们的测试中发现以下内容对于控制使用rxDTree拟合模型所需的时间最有用:
XVAL:控制用于执行交叉验证的折叠数默认值为2允许进行一些修剪; 一旦你在模型中关闭,你可能想要增加最终拟合和修剪的值。MAXDEPTH:设置树的任何节点的最大深度随着深度的增加,计算量变得越来越快,因此我们建议MAXDEPTH为10到15。maxCompete:指定输出中保留的“竞争对手拆分”的数量默认情况下,rxDTree将此值设置为0,但设置为3或4可用于诊断目的,以确定选择特定拆分的原因。maxSurrogate:指定输出中保留的代理拆分数同样,默认情况下,rxDTree将此值设置为0。当该观察值缺少主要分割变量时,使用代理分割来分配观察值。maxNumBins:。控制每个变量使用的最大纸槽数管理仓的数量对于控制内存使用非常重要默认情况下,对于小到中等大小的数据集(最多约一百万个观测值),使用较大的101和观测数量的平方根,但对于较大的集合,使用1001个箱。对于具有连续预测变量的小数据集,您可能会发现需要增加maxNumBins以获得类似于rpart包的模型。对于大型数据集(100000或更多观测值),您可能需要调整以下参数以获得有意义的模型:
CP:。复杂性参数,并设置拆分在被接受之前必须降低复杂程度的标准我们将默认值设置为0,并建议使用MAXDEPTH和minBucket来控制树的大小如果要指定CP值,请从保守值开始,例如rpart包的0.01; 如果你没有看到足够数量的分裂,那么将cp减去10的幂,直到你这样做为止。对于我们的大型航空公司数据,我们发现有趣的模型以大约1e-4的cp开头。minSplit,minBucket:确定在尝试拆分之前节点中必须有多少观察值(minSplit)以及终端节点中必须保留多少观察值(minBucket)。大数据树模型使用rxDTree可以将决策树扩展为非常大的数据集,但应谨慎使用 - 错误选择模型参数很容易导致需要数小时或更长时间才能算算的模型,即使在分布式计算环境中也是如此。例如,在教程:使用RevoScaleR加载和分析大型航空公司数据集时,我们使用大型航空公司数据估算线性模型,并使用变量产地作为多个模型中的预测变量该产地变量是373级的水平,没有明显排序的因素变量将此变量合并到rxDTree中执行两级以上分类的模型很容易消耗数小时的计算时间为了防止这种意外后果,rxDTree有一个参数maxUnorderedLevels,默认为32。; 在原产地的情况下,此参数将标记错误。然而,按区域对原产机场进行分组的“区域”因子变量可能是一个有用的代理,并且可以构造成仅具有有限数量的级别。数字和有序因子预测器更容易合并到模型中。
作为大型数据分类树的示例,请使用完整航空公司数据的7%子样本考虑以下简单模型(使用变量ArrDel15表示到达延迟为15分钟或更长时间的航班):
默认的CP为0会产生大量的分裂; 指定cp = 1e-5会在此模型中生成更易于管理的拆分集:
airlineTree 呼叫: rxDTree(公式= ArrDel15~CRSDepTime + DayOfWeek,data = https://www.zhihu.com/api/v4/questions/21145016/sampleAirData, maxDepth = 5,cp = 1e-05,blocksPerRead = 30) 文件:C:// MRS // Data // AirOnTime7Pct.xdf 有效观察数:10186272 失踪观察次数:213483 树表示: n = 10186272 node),split,n,deviance,yval *表示终端节点 1)root 10186272 1630331.000 0.20008640 2)CRSDepTime /u0026lt;13.1745 4941190 642452.000 0.15361830 4)CRSDepTime /u0026lt;8.3415 1777685 189395.700 0.12123970 8)CRSDepTime/u0026gt; = 0.658 1717573 178594.900 0.11787560 16)CRSDepTime /u0026lt;6.7665 599548 52711.450 0.09740671 32)CRSDepTime/u0026gt; = 1.625 578762 49884.260 0.09526714 * 33)CRSDepTime /u0026lt;1.625 20786 2750.772 0.15698070 * 17)CRSDepTime/u0026gt; = 6.7665 1118025 125497.500 0.12885220 34)DayOfWeek = Sun 134589 11722.540 0.09638975 * 35)DayOfWeek =周一,周二,周三,周四,周五,周六983436 113613.80 0.13329490 * 9)CRSDepTime /u0026lt;0.658 60112 10225.960 0.21736090 18)CRSDepTime/u0026gt; = 0.2415 9777 1429.046 0.17776410 * 19)CRSDepTime /u0026lt;0.2415 50335 8778.609 0.22505220 * 5)CRSDepTime/u0026gt; = 8.3415 3163505 450145.400 0.17181290 10)CRSDepTime /u0026lt;11.3415 1964400 268472.400 0.16335320 20)DayOfWeek = Sun 271900 30839.160 0.13043400 40)CRSDepTime /u0026lt;9.7415 126700 13381.800 0.12002370 * 41)CRSDepTime/u0026gt; = 9.7415 145200 17431.650 0.13951790 * 21)DayOfWeek =周一,周二,周三,周四,周五,周六1692500 237291.300 0.16864170 42)DayOfWeek =星期二,星期三,星期六835355 113384.500 0.16196470 * 43)DayOfWeek =星期一,星期四,星期五857145 123833.200 0.17514890 * 11)CRSDepTime/u0026gt; = 11.3415 1199105 181302.000 0.18567180 22)DayOfWeek =周一,周二,周三,周六,周日852016 124610.900 0.17790390 44)DayOfWeek =周二,周日,太阳342691 48917.520 0.17250230 * 45)DayOfWeek =周一,周三,周六509325 75676.600 0.18153830 * 23)DayOfWeek = Thur,Fri 347089 56513.560 0.20474000 * 3)CRSDepTime/u0026gt; = 13.1745 5245082 967158.500 0.24386220 6)DayOfWeek =周一,周二,周三,周六,周日3708992 651771.300 0.22746990 12)DayOfWeek = Sat 635207 96495.570 0.18681000 24)CRSDepTime/u0026gt; = 20.2745 87013 12025.600 0.16564190 * 25)CRSDepTime /u0026lt;20.2745 548194 84424.790 0.19016990 * 13)DayOfWeek =周一,周二,周三,周日3073785 554008.600 0.23587240 26)CRSDepTime /u0026lt;16.508 1214018 203375.700 0.21281150 52)CRSDepTime /u0026lt;15.1325 709846 114523.300 0.20223400 * 53)CRSDepTime/u0026gt; = 15.1325 504172 88661.120 0.22770400 * 27)CRSDepTime/u0026gt; = 16.508 1859767 349565.800 0.25092610 54)DayOfWeek =周一,周二928523 168050.900 0.23729730 * 55)DayOfWeek = Wed,Sun 931244 181170.600 0.26451500 * 7)DayOfWeek = Thur,Fri 1536090 311984.200 0.28344240 14)CRSDepTime /u0026lt;15.608 445085 82373.020 0.24519140 28)CRSDepTime /u0026lt;14.6825 273682 49360.240 0.23609880 * 29)CRSDepTime/u0026gt; = 14.6825 171403 32954.030 0.25970960 * 15)CRSDepTime/u0026gt; = 15.608 1091005 228694.300 0.29904720 30)CRSDepTime/u0026gt; = 21.9915 64127 11932.930 0.24718140 * 31)CRSDepTime /u0026lt;21.9915 1026878 216578.100 0.30228620 62)CRSDepTime /u0026lt;17.0745 264085 53451.260 0.28182970 * 63)CRSDepTime/u0026gt; = 17.0745 762793 162978.000 0.30936830 *


推荐阅读