R----决策树

决策树算法可以分成两块:1. 基于信息增益率的分类C5.0算法;2. 基于基尼系数分类的CART(Classification And Regression Tree)
一:C5.0
    C5.0算法由最初的ID3到C4.5一步一步演化而来,C5.0算法是以信息增益率(即信息熵下降最快)为分组依据,同时算法还能进行多分类(即一次可以分多类)。 相比于其他模型 C5.0 模型输出的规则非常直观易理解。而且他应用于大数据集效果较好。 对缺失值不敏感,即使数据集缺失值不用处理。
    R中用C50包专用C5.0 算法
     C_model <- C5.0(data,label,trials = 1,costs=NULL):label 是data数据集的标签
     p_label <- predict(C_model,test_data,type = 'class'or'prob'):type 默认class,prob 是该标签的概率最大值。可以用gmodels 包中的CrossTable 函数去验证准确性。
 二:CART
    CART(分类回归树)顾名思义,算法既可以做分类,又能做回归。CART是一种二分类的决策树(有点类似于if..then...)父节点分出两个子节点。CART是以gini增益最大来决定分类的属性。CART分为两步1.根据数据集生成决策树,越大越好,2.对树进行剪枝,以损失函数最小为标准,选择最优子树,作为CART算法的模型。对缺失值不敏感。
    R中用rpart|tree 包中的rpart|tree函数
         r_mod <- rpart(label ~.,data=train)
         r_mod$variable.importance;#查看变量重要            
         r_mod$cp ;#查看每次分割复杂度参数 
         plotcp(r_mod) ;#画树图
         prune(r_mod,...) 剪枝函数
         predict(r_mod,test)#预测
         具体可以看 http://www.cnblogs.com/karlpearson/p/6224148.html

       tree函数(简写)
       t_mod <- tree(label~. data = train)
       prune.tree()#剪枝
       cv.tree() 交叉验证
       predict.tree() 预测
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值