全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
989 0
2017-11-30

之前用了rpart 包做决策树模型,rpart函数已经包含了各种可以优化这棵树的参数。但是它限制的节点分裂方法只有基尼系数和ID3.

下面介绍C4.5算法实现的包(后面升级为C4.8,创建了java环境下的J48,所以J48由此而来,后面升级为C50

library(RWeka)

m1 <- J48(Species ~ ., data = iris)

libraryC50

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.0010.01a较小的时候m可以较大。

每棵树中的分裂点dd+1个叶结点),d=1时,相当于仅仅是一个树桩。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群