之前用了rpart 包做决策树模型,rpart函数已经包含了各种可以优化这棵树的参数。但是它限制的节点分裂方法只有基尼系数和ID3.
下面介绍C4.5算法实现的包(后面升级为C4.8,创建了java环境下的J48,所以J48由此而来,后面升级为C50)
library(RWeka)
m1 <- J48(Species ~ ., data = iris)library(C50)
ruleModel <- C5.0(churn ~ ., data = churnTrain, rules = TRUE)summary(ruleModel)
R中与决策树有关的Package:
单棵决策树:rpart/tree/C50
随机森林:randomforest/ranger
梯度提升树:gbm/xgboost
树的可视化:rpart.plot
随机森林
决策树+bagging= randomForest 随机森林
决策树+booststrap=GBDT 梯度上升决策树
library(randomForest)
该函数中的决策树基于基尼指数(Giniindex)构建,即CART分类决策树,
每棵树随机选取的特征数约等于总特征数的平方根。
1.(回归树中做变量重要性计算指标是RSS,比如身高这个特征,在10棵树中每次分裂整体SSE减少的量相加,并计算均值,越大代表这个变量重要性越大)
2.(分类树中是基尼指标,比如体重这个特征,在10棵树中每次分裂这棵树的基尼系数减少的量相加,并计算均值,越大代表这个变量重要性越大)
3.boostrap中
树的个数m,不像bagging和随机森林,m个数如果太大,容易过拟合,所以用交叉验证方法确定m;
收缩参数a,0.001或0.01,a较小的时候m可以较大。
每棵树中的分裂点d(d+1个叶结点),d=1时,相当于仅仅是一个树桩。



雷达卡



京公网安备 11010802022788号







