决策树

机器学习中决策数算法算是比较常见的分类和回归算法之一,但是我们在怎么来理解决策树的算法呢?

接下来我们从以下几点做一下学习和总结:

首先,什么是决策树?

决策树

  决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。 构建决策树采用贪心算法,只考虑当前纯度差最大的情况作为分割点。常见的决策树算法有C4.5、ID3和CART。

其次,决策树的优缺点?

优点包括以下:

1、•    决策树易于理解和实现. 人们在通过解释后都有能力去理解决策树所表达的意义。

2、数据准备比较简单,不需要去除多余的或者空白的属性。

3、决策树的时间复杂度是预测数据点的对数,所以能够在较短时间内对大型数据源做出可行且效果良好的结果

4、效率高,决策树只需一次构建,重复使用,每次预测的最大计算次数不会超过决策树的深度。

5、对缺失值不敏感

缺点包括一下几点:

1、决策树的结果可能是不稳定的,因为在数据中一个很小的变化可能导致生成一个完全不同的树,这个问题可以通过使用集成决策树来解决

2、处理特征关联性较强的数据时表现的不是很好

3、当类别太多时,错误会增加的更快。

4、对连续性字段比较难预测。

决策树的实现算法:

ID3算法:

ID3算法是一种贪心算法,理解ID3,需要以信息论为基础,这里简单介绍三个概念:信息、熵、信息增益

信息,什么是信息呢,我的理解就是一种状态或者一种结果,就是我们用来消除事物随机不确定性的东西,那该怎么用数学表达式来形容呢?这里信息被表示为:

这就是当x发生时蕴含的信息其中p(xi)表示X=xi时发生的概率

 有了信息的概念,我们就比较容易来理解熵的定义了,熵,是表示混乱的状态,也是指事件的不确定性,同样我们也可以用数学表达式来对熵这个概念做一个定义:

熵只依赖X的分布,和X的取值没有关系,熵是用来度量不确定性,当熵越大,概率说X=xi的不确定性越大,反之越小,在机器学期中分类中说,熵越大即这个类别的不确定性更大,反之越小,当随机变量的取值为两个时,熵随概率的变化曲线如下图:

                    

当p=0或p=1时,H(p)=0,随机变量完全没有不确定性,当p=0.5时,H(p)=1,此时随机变量的不确定性最大

 值得说明的是,为了引入信息增益的概念,这里还需要提及一个概念,条件熵,以下面的公式为例:

 这里的条件熵就是指随机变量X给定的情况下,随机变量Y的熵,对定义的描述为:X给定情况下,Y的条件概率分布的熵对X的数学期望。

然后我们就可以得出信息增益的概念了,那么什么是信息增益呢,信息增益是决策树算法中用来选择特征的重要指标,信息增益越大,这个特征的选择性越好,在概率中的定义为:待分类的集合的熵与选定某个特征的条件熵之差。用数学 表达式表示为:

 到这里我们就可以来说明决策树的生成了。决策树就是,选择信息增益最大的作为根节点,然后根节点确定以后,再选择信息增益最大的点作为后续的节点,以此类推。

决策树的构建过程是一个递归的过程,那么如果没有停止条件,将会一直无限递归下去,问题来了,决策树的停止条件是什么呢?

1、大于决策树最大深度max_depth

2、小于内部节点再划分需要的最小样本数min_sample_split,可以设置该值的大小。

3、小于叶节点最小样本数min_sample_leaf

4、大于最大叶节点数max_leaf_nodes

选择决策树时会出现的问题:

会出现过拟合现象,什么事过拟合现象,我的微博里有一篇单独的介绍,大家可以看一下,这里不在细说,我们主要将一下问题出现的原因:

1、噪音数据:训练数据中存在噪音数据,决策树的某些节点是由噪音数据作为分割标准,导致决策树无法代表真实数据

2、缺少代表性数据:训练集中没有包含所有代表性的数据,导致某一类数据无法很好的匹配。

优化方案:修剪枝叶、运用随机森林

C4.5算法:

C4.5算法是基于ID3算法,对ID3算法的进一步优化和改进

1、利用信息增益率来选择属性,克服了利用信息增益选取属性时偏向选取值较多的属性的不足。

2、在树构造过程中进行剪枝

3、能够完成对连续属性的离散化

4、能够对不完整数据进行处理

但是C4.5也有不足之处,缺点是,在构造树是需要对数据集进行多次顺序扫描和排序,因此导致算法低效,C4.5值适合于能够长期驻留在内存中的数据集,当训练集大的内存无法容纳时,无法运行。

C5.0算法:

C5.0算法是对C4.5算法的优化,主要是在效率和内存上的优化和提升,此外C5.0在选择属性时,运用了信息熵的下降速度来作为属性选择的依据。

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值