博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转】决策树之三国争霸
阅读量:6434 次
发布时间:2019-06-23

本文共 1606 字,大约阅读时间需要 5 分钟。

原文出处:

 

 

决策树是一种简洁实用的数据挖掘方法
在R中通常可以用rpart包和party包来实现
最近著名的C4.5决策树算法的升级版本 已经可以在官网下载到。对于这三种决策树算法,本文来做一个预测效果的简单对比
对比用的数据集是C50包中自带的churn数据,它是用来预测顾客流失的数据集,其中样本量为3333个,变量数为20个
为不平衡数据,没有缺失值存在
对比基本步骤是用10重交叉检验,将数据随机分为10份,用9份训练决策树,用1份来检验结果。循环后求出10个预测准确度的均值
然后在外面再套一个100次大循环,产生三个决策树算法各100个准确率。最后绘制为提琴图,从图中可以观察到C5
. 0的表现最好,而party次之,rpart的效果最差。在本例实验中最大的差距虽然不过0.02,但如果放在kaggle的数据挖掘比赛中,就相当于是一百位名次的差距了。
生成代码如下:
(C50)()()(reshape2)()(churn)rate.c <- rate.r <-rate.p<-  (0,100)for (j in 1:100) {    num <- (1:10,(churnTrain),=T)    res.c <- res.r  <-res.p<- (0,=(2,2,10))    for ( i in 1:10) {        train <- churnTrain[num!=i, ]        test <- churnTrain[num==i, ]         model.c <- C5.0(churn~.,=train)        pre <- (model.c,test[,-20])        res.c[,,i] <- ((pre,test[ ,20]))         model.p <-ctree(churn~.,=train)        pre <- (model.p,test[,-20])        res.p[,,i] <- ((pre,test[ ,20]))         model.r <- (churn~.,=train)        pre <- (model.r,test[,-20],type='class')        res.r[,,i] <- ((pre,test[ ,20]))    }    table.c <- (res.c,MARGIN=(1,2),)    rate.c[j] <- ((table.c))/sum(table.c)     table.p <- (res.p,MARGIN=(1,2),)    rate.p[j] <- ((table.p))/sum(table.p)     table.r <- (res.r,MARGIN=(1,2),)    rate.r[j] <- ((table.r))/sum(table.r)} <- (c50=rate.c,=rate.r,=rate.p)data.melt <- melt() p <- (data.melt,aes(variable,value,color=variable))p + geom_point(position='jitter')+    geom_violin(alpha=0.4)
C5.0算法相对于C4
. 5有如下几点改进:
  • 速度显著加快
  • 内存使用减少
  • 生成树模型更为简洁
  • 支持boosting方法
  • 支持加权和成本矩阵
  • 支持变量筛选
此外C50包中也有丰富的设置参数:包括设置boost次数
全局剪枝和模糊阀值设置
有兴趣的朋友不妨一试。
 

转载于:https://www.cnblogs.com/bourneli/articles/3233439.html

你可能感兴趣的文章
POJ3928 Ping pong
查看>>
洛谷P2024 食物链
查看>>
linux系统开机流程详解
查看>>
《计算机图形学3D》
查看>>
CSU - 2059 Water Problem
查看>>
20131109
查看>>
Regular expression
查看>>
Codeforces Round #368 DIV2 C.
查看>>
html5在canvas中插入图片
查看>>
门诊住院流程图
查看>>
win7_iis报500.19和500.21错误问题解决
查看>>
Marketing learning-3
查看>>
算法分类合集(转)
查看>>
阿里云Maven配置,Maven仓库配置,Maven镜像配置
查看>>
#和##运算符实例
查看>>
图层的transform属性
查看>>
Mac 配置环境变量
查看>>
float
查看>>
eureka多实例,模拟多台机器
查看>>
JVM基础系列第15讲:JDK性能监控命令
查看>>