文章目录- I . 决策树 分类规则抽取
- II . 决策树 过拟合 与 剪枝
- III . 决策树 剪枝 先剪 与 后剪 对比
- IV . 连续属性 离散化处理 ( 二分法 | 最优划分点 )
- V . 根据 增益率 选择划分属性
- VI . 根据 增益率 选择划分属性 计算案例
- VII . 决策树 作用 及 优势
I . 决策树 分类规则抽取
1 . 决策树规则表示形式 : 决策树 中蕴含的 规则可以使用 IF-THEN 形式表示 ;
2 . 决策树规则数量 : 从决策树根节点 , 到叶子节点 , 每条路径都对应一条规则 , 规则数量就是叶子节点的数量 ;
3 . 中间内部节点表示 : 使用 AND 将多个属性判定组个在一起 , 相当于 逻辑与 运算 ;
4 . 叶子节点表示 : 叶子节点构成 THEN 部分 , 表达其分类结果 ;
5 . IF-THEN 示例 : 下图的决策树 , 有 5 个叶子节点 , 可以抽取出 5 条规则 , 下面列举这 5 条路径 :
① 下图中的红色路径 : 该条路径表示 , 如果年龄在 30 岁以下 , 是学生 , 就会购买商品 ;
代码语言:javascript复制IF age = "<=30" AND isStudent = "yes" THEN isBuy = "yes"
② 下图中的蓝色路径 : 该条路径表示 , 如果年龄在 30 岁以下 , 不是学生 , 就不会购买商品 ;
代码语言:javascript复制IF age = "<=30" AND isStudent = "no" THEN isBuy = "no"
③ 下图中的紫色路径 : 该条路径表示 , 31 ~ 39 岁的 , 会购买商品 ;
代码语言:javascript复制IF age = ">= 31 && <= 39>" isBuy = "yes"
④ 下图中的绿色路径 : 该条路径表示 , 在 40 岁以上 , 信用好的 , 会购买商品 ;
代码语言:javascript复制IF age = ">=40" AND credit= "good" THEN isBuy = "yes"
⑤ 下图中的黑色路径 : 该条路径表示 , 在 40 岁以上 , 信用一般的 , 不会购买商品 ;
代码语言:javascript复制IF age = ">=40" AND credit= "normal" THEN isBuy = "no"
II . 决策树 过拟合 与 剪枝
1 . 决策树过拟合问题 :
① 完全服从 : 生成的决策树 , 完全服从与训练集 ;
② 分支太多 : 这种过拟合的决策树 , 出现很多类型的分支 , 有些分支出现次数很少 , 甚至在实际使用中从来不用 , 分支不具有代表性 ;
③ 消极结果 : 过拟合会导致模型准确度很低 ;
2 . 解决过拟合问题 : 剪枝方法 ; 通过进行剪纸 , 将部分分支路径删除 ;
① 先剪 : 在建立 决策树 模型时 , 训练模型过程中 , 如果该数据样本分支很少 , 就不创建这个分支 ;
② 后剪 : 先将 完整的 决策树模型 创建出来 , 然后将样本少的路径直接剪除 ;
III . 决策树 剪枝 先剪 与 后剪 对比
1 . 时间消耗分析 :
① 先剪 : 训练模型时剪枝 , 训练时间会减少 , 相对于没有剪枝的情况 , 测试的时间也会的减少 ;
② 后剪 : 在模型创建后剪枝 , 要生成完整的树 , 训练时间会增加 , 训练完之后剪枝 , 相对于没有剪枝的情况 , 测试的时间会减少 ;
2 . 拟合风险 : 这里分为 过拟合 ( 拟合过度 ) 和 欠拟合 ( 拟合度不够 ) ;
① 先剪 : 不会过拟合 , 但是 有可能欠拟合 ;
② 后剪 : 不会过拟合 , 欠拟合风险不变 ;
3 . 最佳实践 : 推荐使用 后剪 剪枝策略 ;
IV . 连续属性 离散化处理 ( 二分法 | 最优划分点 )
1 . 连续值属性 :
① 连续属性离散化 : 决策树要基于一个离散的值进行分类 , 连续的值 , 无法根据属性值划分数据集 , 需要将连续属性值离散化 , 再使用决策树分析 ;
② 示例 : 如学生成绩 , 0 ~ 100 分 , 60 分以上划分为 及格 , 60 分以下划分为 不及格 ;
2 . 二分法处理连续属性值 :
① 连续属性
: 数据集中的
属性 , 其取值是连续的数值 ;
② 属性值排序 : 将
属性的
个不同的连续取值从小到大排序
;
③ 划分点
: 划分点
是
属性的一个取值 , 将
属性的值分为 子集
和
;
④
子集 : 该子集中的属性值 , 小于等于
;
⑤
子集 : 该子集中的属性值 , 大于
;
3 . 最优划分点 :
① 候选划分点 :
属性有
个取值 , 可以有
个候选划分点 ;
② 某两个属性值之间的划分点确定 :
取值集合中 , 将两个数值之间的中点 , 作为划分点 ;
③ 最优化分点确定 : 需要选择最优的划分点 , 以达到最终决策树分类的目的 ;
V . 根据 增益率 选择划分属性
1 . 信息增益弊端 : 如果数据集中 , 某个属性有很多值 , 其信息增益比较大 , 很容易将分支多的属性放在树根 ;
示例说明 : 如 人的性别 , 其取值只有 男 和 女 两种 , 其只有两项 , 人的年龄 有 130 种取值范围 , 其计算出来信息增益比较大 ;
2 . 增益率引入 : ID3 使用信息增益确定树根属性 , C4.5 使用增益率确定树根属性 ;
3 . 增益率 ( Gain Ratio ) 计算公式 :
①
表示属性类型 ;
②
表示样本的总个数 ;
③
表示当前的
属性不同取值个数 , 取值集合为
④
表示样本取值
的样本个数 ;
增益率公式 :
VI . 根据 增益率 选择划分属性 计算案例
1 . 计算案例 :
参考之前的 信息增益计算案例 : 信息增益计算 案例
2 . 信息增益计算结果 : 依次计算 各个属性的 信息增益 :
① 年龄 属性的信息增益 :
② 收入 属性的信息增益 :
③ 是否是学生 属性的信息增益 :
④ 信用等级 属性的信息增益 :
⑤ 树根 属性选择: 年龄属性的 信息增益 最大 , 选择年龄属性作为树根 ;
3 . 这里计算收入 属性的增益率 : 14 个样本中, 4 个高收入 , 6 个中等收入 , 4 个低收入 ;
4 . 树根选择 : 同样增益率最大的属性 , 会被设置为 划分属性 ;
VII . 决策树 作用 及 优势
1 . 大数据分类 : 在大数据分类中 , 要求快速的对几百万的样本 , 涉及几十上百的属性进行分类 ;
2 . 决策树 算法优势 :
① 可伸缩性 : 随着数据量增大 , 复杂度线性增长 , 不是指数级增长 ;
② 学习速度快 : 学习速度比其它分类方法快 ;
③ 规则转化 : 可以抽取转化分类规则 ;
④ 数据库结合 : 可以使用 SQL 查询数据库中的数据 ;
⑤ 准确性高 : 使用决策树分类 , 准确性有保障 ;