首页 > 编程知识 正文

python计算决策树误差,python决策树算法教学

时间:2023-05-06 20:02:40 阅读:216410 作者:358

题目5.1

题目描述: 根据表(5.1)所给的训练数据集, 利用信息增益比 (C4.5算法)生成决策树

解答:

信息增益率的公式是:

首先回顾一下表(5.1)的结构:

表(5.1)

根据书上已经计算提供的数据, 我们有:

, ,

, ,

, ,

, ,

所以根据信息增益比的原则, 我们选择特征"有自己的房子"为切分点.

在左结点里, 所有"有自己的房子==是"的实例数据的类别均为"是", 所以左结点为叶结点, 结点类别为"是".

在右结点里, 我们首先整理出子数据集

:

右结点 数据子集

所以在右结点选择特征"有工作", 以此切分后, 左右结点的实例数据子集都是单一类别的.

由此, 我们完成了根据信息增益比的C4.5决策树构造, 见下图.

C4.5算法 最终决策树 题目5.2

题目叙述: 己知如表 5.2 所示的训练数据,试用平方误差损失准则生成一棵二叉回归树

解答:

回归树的平方损失准则是: 选择一个切分点, 将训练数据集分为小于等于

和 大于 两个子集, 求这个2个子集的 平方损失之和作为衡量这个切分点好坏的衡量标准.

我们用python代码帮助我们便捷快速地选择最优切分点:

import

运行如上代码, 不断地对数据进行二叉切分后, 最终得到如下图的二叉回归决策树, 由于没有设置最小阈值, 所以我们是对每个点分到了叶结点.

最小平方损失: 回归树 题目5.3

题目叙述: 证明CART剪枝算法中, 当

确定时, 存在唯一的最小子树 使得损失函数 最小化

解答:

采用反证法:

存在性易证, 在特征有限、数据集有限的情况下, 由于能生成的决策树数量有限, 每一棵都对应某一个

损失函数. 此之中一定存在一个最小的损失函数 .

唯一性: 对于决策树生成算法生成原始数

,假设存在2棵不同的最小子树 和 使得损失函数 最小化.

由于两棵子树不相同, 所以它们的剪枝方法

, 由于根据CART剪枝算法, 其中剪枝的每一步都使得损失函数 变低. 所以令 , 由 剪枝法生成的决策树为 . 那么就会有 以及 . 所以与假设 和 是使损失函数最小化的最小字数矛盾.

由此, 得证.

题目5.4

题目叙述: 证明CART剪枝算法中求出的子树序列

分别是区间 的最优子树 , 这里 ,

解答:

首先我们需要回顾一下CART剪枝算法中, 我们对

中每一内部结点 都计算了:

. 剪枝的过程即是在 中减去 第 小的 作为 , 同时将 设为 .

我们想要证明

是区间 的最优子树.

首先

, 但是在剪枝序列 中这些结点已经被修剪掉了.

而排序在后的结点

, 都有 , 所以当惩罚系数 时, 若对 进行剪枝将会造成损失函数 增长.

由此, 得证

是 序列中的最优子树.

欢迎大家指出不足或错误, 进行提问和讨论.

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。