回答数
3
浏览数
8729
手撩
本章将深入探讨上一章留下的知识点: 阅读本章前,请先充分认识到在决策树中的作用和意义。 请参考:《 02 决策树 - 概念 》 决策树的构建是基于样本概率和纯度来进行的,判断数据集是否“纯”可以通过三个公式进行判断:Gini系数、熵(Entropy)、错误率。 三个公式的值越大,表示数据越不纯。值越小,表示数据越纯。 例:偿还贷款的能力。 P(1) = 710 = 0.7; 可以偿还的概率; P(2) = 310 = 0.3; 无法偿还的概率; Error= 1 - max {p(i)}(i =1 ~ n) = 1 - 0.7 = 0.3 如果只有两种分类情况,随着两种情况发生的概率的改变,最后根据三种公式的计算所得: 可以发现,三种公式的效果差不多,一般情况使用熵公式。 当计算出各个特征属性的量化纯度值后,使用 信息增益度 来选择出当前数据集的分割特征属性。如果信息 增益度值越大 ,表示在该特征属性上会损失的纯度越大,那么该属性越应该在决策树的上层。计算公式如下: Gain为A在特征对训练数据集D的信息增益,它为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差。思考:现在有两个事件A和D,下图黑色部分是特征A给定条件下D的经验条件熵 H(D|A)。 显然,Gain= 蓝色区域 = H(D) - H(D|A) 较为理想的分割结果如下,红色方框里是分割后系统剩余的不纯度,这种分割情况下不纯度小了很多: 思考完后,请再次理解以下这句话的含义: 如果信息 增益度值越大 ,表示在该特征属性上会损失的纯度越大,那么该属性越应该在决策树的上层。 决策树构建过程是一个递归的过程,所以必须给定停止条件。 1、大于决策树最大深度。max_depth2、小于内部节点再划分所需最小样本数。 min_samples_split设min_samples_split=3,一个叶子节点a中剩余的样本数位5,另一个叶子节点b中剩余样本数量为2。a可以继续划分,b停止划分。 3、小于叶节点最少样本数。 min_samples_leaf设min_samples_leaf=3,如果划分出的新叶子节点剩余样本数小于3,那么撤销这步划分。 4、大于最大叶节点数。 max_leaf_nodes设max_leaf_nodes=5,当划分出超过五个叶子节点时,撤销这步划分操作。 5、小于节点划分不纯度。 min_impurity_split当Gini系数、熵(Entropy)、错误率,小于 min_impurity_split时,不再生成新的叶子节点。一般不会设置这个参数,依靠上面4个停止条件即可。 决策树算法效果评估和一般的分类算法一样,采用混淆矩阵进行计算准确率、召回率、精确率等指标。混淆矩阵参考:《 05 模型训练和测试 》 也可以采用叶子节点的纯度值综合来评估算法的效果,值越小,效果越好。思考:在决策树中的每一个节点都能够表示一个系统,都能够计算其信息熵(系统稳定程度)。 如果将这些信息熵单纯的求和结果会不太理想。比如有100个节点,前99个节点中有很多数据,但是第100个节点只有1条数据。按理说,这第100个节点对于整个系统的不稳定性起了非常小的作用。如果还有一个节点,这个节点里有大量的数据,且结果都为分类0,那么可以认为这个节点的划分比较成功,在计算整个决策树总损失的算法中,该节点要占用一个较大的比例。 所以: 不能将所有叶子节点的信息熵单纯的求和,还得乘上一个权重值,权重值=当前叶子节点的样本个数总的样本个数。