【转】决策树之三国争霸

简介:

原文出处:http://xccds1977.blogspot.com/2012/11/blog-post_28.html

 

 

决策树是一种简洁实用的数据挖掘方法 在R中通常可以用rpart包和party包来实现 两种算法的决策树  最近著名的C4.5决策树算法的升级版本 C5.0  已经可以在官网下载到。对于这三种决策树算法,本文来做一个预测效果的简单对比


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

 
声明:如有转载本博文章,请注明出处。您的支持是我的动力!文章部分内容来自互联网,本人不负任何法律责任。

本文转自bourneli博客园博客,原文链接: http://www.cnblogs.com/bourneli/articles/3233439.html ,如需转载请自行联系原作者
相关文章
|
8月前
|
人工智能 自然语言处理 数据安全/隐私保护
模型争霸,花落谁家
AI热潮席卷全球,语言大模型(LLM)主导的生成式AI(GenAI)必将成为未来几年最为重要的生产工具之一,各大科研机构、企业、开源团队纷纷推出各自的语言大模型,其中有通用语言大模型,也有专注于某些领域的语言大模型,因其侧重点不一,其使用效果也是不一样的,那么笔者将通过本篇文章带您体验由阿里云魔搭社区联合港中文大学(深圳)共同推出的中文竞技场大模型测评,通过6个不同领域来测试不同模型在不同领域的效果吧~~~
18668 10
模型争霸,花落谁家
|
10月前
|
决策智能
博弈论第十七集总结(“声誉和决斗 ”观后感)
博弈论第十七集总结(“声誉和决斗 ”观后感)
32 0
|
10月前
|
决策智能
博弈论第一集总结
博弈论第一集总结
41 0
|
10月前
|
数据挖掘 计算机视觉 Python
【每周一坑】蜥蜴流感与贝叶斯定理
不过今天的题,我希望你们用程序模拟一场蜥蜴流感。比如有10万个人,按照上述3条规则去模拟,最后去统计下检测结果阳性中有多少人是真正的患者。
|
12月前
|
前端开发 安全 决策智能
博弈论(四)——产品经理绝地求生
博弈论(四)——产品经理绝地求生
89 0
2021年度训练联盟热身训练赛第三场——C,G,I
2021年度训练联盟热身训练赛第三场——C,G,I
65 0
2021年度训练联盟热身训练赛第一场——Weird Flecks, But OK(最小圆覆盖)
2021年度训练联盟热身训练赛第一场——Weird Flecks, But OK(最小圆覆盖)
60 0
|
安全 ice
画一座冰山,看它沉浮!从简笔画到数据科学,Kaggle冰川图像分类比赛如何征服“轮船克星”?
画一座冰山,看它沉浮!从简笔画到数据科学,Kaggle冰川图像分类比赛如何征服“轮船克星”?
165 0