cart算法_数据挖掘十大算法—— CART

十大算法 —— CART

1、基本介绍

(1)概述:CART算法是一种决策树算法,主要用于分类与回归。CART算法将概率论与统计学的知识引入到决策树的研究中,既可以用于分类,也可以用于回归。不同于C4.5算法,CART算法的本质是对特征空间进行二元划分(CART生成的决策树是一颗二叉树),并能够对标量属性与连续属性进行分裂。CART算法采用地即是递归地对每个特征进行二元切分,然后根据输入的特征值预测输入样本的结果。

(2)优点

[1] 计算简单,易于理解,可解释性强;

[2] 比较适合处理有缺失属性的样本;

[3] 不仅能够处理不相关的特征,还能在相对短的时间内对大型数据源得出可行且效果良好的结果。

(3)缺点

[1] 不支持在线学习,在有新的样本产生后,决策树模型要重建;

[2] 容易出现过拟合的现象,生成的决策树可能对训练数据有很好的分类能力,但对未知的测试数据却未必有很好的分类能力。

2、算法流程

(1)问题说明

6c4d6c9b9c3e3745431952bd4d39ed61.png

(2)算法步骤(文字描述版)

c7dec34c5475088f1a1d6df4679a95a9.png

(3)算法步骤(数学描述版)

8431c42ca34726962b82b774a926978a.png

3、详细例子

(1)例子一(靠嘴模拟)

b7c6c9a0a8a7ea0163fe0bc106698b47.png

(2)例子二(R语言实操)

[1] 代码

test[,5]<-class(test[,5])

colnames(iris)[5]  # 获取iris第5列的列名称

cart1<-rpart(Species~.,data=train,method="class")       # 构建CART二叉树,注意要加上method="class"否则后面会出错

printcp(cart1)     # 查看模型的构建情况

cart2<-prune(cart1,cp=0.5)               # 对模型进行剪枝

printcp(cart2)     # 查看剪枝后模型的构建情况

library(rpart.plot)                      # 加载cart可视化包

opar<-par(no.readonly=T)                 # 设定参数的唯一性

par(mfrow=c(2,1))                        # 构造幕布

rpart.plot(cart1,branch=1,type=2,fallen.leaves=T,sub="剪枝前")    # 可视化剪枝前的决策树

rpart.plot(cart2,branch=1,type=4,fallen.leaves=T,sub="剪枝后")    # 可视化剪枝后的决策树

p1<-predict(cart1,newdata=test,type="class")          # 利用训练集作预测

table(test[,5],p1,dnn=c("真实值","预测值"))              # 输出混淆矩阵,判断结果还不错

[2] 结果

5fa01dec2b46ad3c5734b53d2cea3b8e.png

4ea553cda5ffb314568367687bd5cc96.png
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值