机器学习之决策树--原理分析

一、什么是决策树?

决策树(Decision Tree)是一种非常经典的分类器,设计出来就是用来做分类的,就算之后被开发成也可以用来做回归,但是其实也是将数值区间看成一个类别来做。
因其扩展通过节点的类别情况,每个类别会导致一个结果,将这个过程用图示的方式表示,很像一棵树,所以称为决策树。

二、如何构建决策树?

决策树是一种监督学习算法,每个样本都有多个属性和一个类别,根据样本进行学习,通过样本的属性能够最后得到样本的类别,然后可以对只给出属性的数据进行类别的预测。
从根节点开始,每次扩展节点都根据该节点的类别情况来扩展。每个节点可能的类别情况有1个、2个或者多个。

  • 如果节点的类别只有1个,则该节点为纯节点,即该节点下的所有样本都是同一个类别,该类节点不需要再进行扩展。
  • 如果节点的类别有2个,则根据这两个类别可以生长出2个分支,若整棵决策树的每个非叶子节点都是2个分支,这样的树中最典型的被称为CART(Classification And Regression Tree),即分类与回归树。
  • 如果节点的类别有多个,则可以生长出多个分支,这样的树中典型的有ID3、C4.5和C5.0等,可以发现,多个分支也可以用2个分支的方式去进行处理,所以C4.5等可以转化为CART。

三、举例

我自己乱写了个数据集来模拟决策树的创建过程。

决策树数据集

决策树的构建需要一组特征以及一个目标类别,上表中的特征为(性别,收入,结婚),目标类别为(是否意愿负担房贷)。

对上表数据集采用最经典的决策树来做的话,其构建过程如下图

这里写图片描述

可见经过3次决策,就完全将7个样本很好的适配进该决策树中,每个叶子节点都是纯节点。

四、思考

经过上述的简单的一个决策树过程,可以看出决策树可以很好的决策一些分类问题,但是也有一些问题可以进行思考。

(一)如何做数值型的回归决策?

决策树被设计出来就是用与做分类的,那连续的数值型数据显然要做分类需要进行处理。ID3这种决策树就不能用于做数值型的回归,它专注于做分类决策。而C4.5和CART均可以做数值型的回归。具体可以参考后篇。

(二)如何优化决策树,让决策树变得小但是适用?即如何进行剪枝?

剪枝分为前剪枝和后剪枝。前剪枝强调剪枝在决策树的创建过程中进行剪枝,后剪枝在决策树完全生成之后再根据情况进行剪枝,后剪枝比较常用,具体方法可以参考后篇。

(三)如何防止过度拟合,防止决策树只在训练样本上精度高,而测试样本上精度低?

过度拟合是决策树中需要解决的最大的问题,一旦过度拟合,那其实这棵决策树就没有什么用处。过度拟合可以通过限制决策树的最大层数和限制规则的数量来处理,比如上图,我限制最大层数为2,则到结婚那一步就不再进行生长,显然这样可以很好的防止过度拟合,但是显然牺牲了一些预测的精度。而防止过度拟合就是要在精度和过度拟合之间找到一个平衡。

(四)什么时候停止决策树生长?

最明显的,当某个节点的纯度达到最高时,自然决策树就停止生长了。但是就带来了过度拟合的问题。解决的办法可以在节点的纯度上设置一个阈值,达到一定阈值就停止生长,那么该节点中占比最大的那个类别就被当作是该节点的类别。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值