文章目录

  • I . 决策树 分类规则抽取
  • II . 决策树 过拟合 与 剪枝
  • III . 决策树 剪枝 先剪 与 后剪 对比
  • IV . 连续属性 离散化处理 ( 二分法 | 最优划分点 )
  • V . 根据 增益率 选择划分属性
  • VI . 根据 增益率 选择划分属性 计算案例
  • VII . 决策树 作用 及 优势

I . 决策树 分类规则抽取


1 . 决策树规则表示形式 : 决策树 中蕴含的 规则可以使用 IF-THEN 形式表示 ;

2 . 决策树规则数量 : 从决策树根节点 , 到叶子节点 , 每条路径都对应一条规则 , 规则数量就是叶子节点的数量 ;

3 . 中间内部节点表示 : 使用 AND 将多个属性判定组个在一起 , 相当于 逻辑与 运算 ;

4 . 叶子节点表示 : 叶子节点构成 THEN 部分 , 表达其分类结果 ;

5 . IF-THEN 示例 : 下图的决策树 , 有 5 个叶子节点 , 可以抽取出 5 条规则 , 下面列举这 5 条路径 :

① 下图中的红色路径 : 该条路径表示 , 如果年龄在 30 岁以下 , 是学生 , 就会购买商品 ;

IF age = "<=30" AND isStudent = "yes" THEN isBuy = "yes"

② 下图中的蓝色路径 : 该条路径表示 , 如果年龄在 30 岁以下 , 不是学生 , 就不会购买商品 ;

IF age = "<=30" AND isStudent = "no" THEN isBuy = "no"

③ 下图中的紫色路径 : 该条路径表示 , 31 ~ 39 岁的 , 会购买商品 ;

IF age = ">= 31 && <= 39>" isBuy = "yes"

④ 下图中的绿色路径 : 该条路径表示 , 在 40 岁以上 , 信用好的 , 会购买商品 ;

IF age = ">=40" AND credit= "good" THEN isBuy = "yes"

⑤ 下图中的黑色路径 : 该条路径表示 , 在 40 岁以上 , 信用一般的 , 不会购买商品 ;

IF age = ">=40" AND credit= "normal" THEN isBuy = "no"

II . 决策树 过拟合 与 剪枝


1 . 决策树过拟合问题 :

① 完全服从 : 生成的决策树 , 完全服从与训练集 ;

② 分支太多 : 这种过拟合的决策树 , 出现很多类型的分支 , 有些分支出现次数很少 , 甚至在实际使用中从来不用 , 分支不具有代表性 ;

③ 消极结果 : 过拟合会导致模型准确度很低 ;

2 . 解决过拟合问题 : 剪枝方法 ; 通过进行剪纸 , 将部分分支路径删除 ;

① 先剪 : 在建立 决策树 模型时 , 训练模型过程中 , 如果该数据样本分支很少 , 就不创建这个分支 ;

② 后剪 : 先将 完整的 决策树模型 创建出来 , 然后将样本少的路径直接剪除 ;

III . 决策树 剪枝 先剪 与 后剪 对比


1 . 时间消耗分析 :

① 先剪 : 训练模型时剪枝 , 训练时间会减少 , 相对于没有剪枝的情况 , 测试的时间也会的减少 ;

② 后剪 : 在模型创建后剪枝 , 要生成完整的树 , 训练时间会增加 , 训练完之后剪枝 , 相对于没有剪枝的情况 , 测试的时间会减少 ;

2 . 拟合风险 : 这里分为 过拟合 ( 拟合过度 ) 和 欠拟合 ( 拟合度不够 ) ;

① 先剪 : 不会过拟合 , 但是 有可能欠拟合 ;

② 后剪 : 不会过拟合 , 欠拟合风险不变 ;

3 . 最佳实践 : 推荐使用 后剪 剪枝策略 ;

IV . 连续属性 离散化处理 ( 二分法 | 最优划分点 )


1 . 连续值属性 :

① 连续属性离散化 : 决策树要基于一个离散的值进行分类 , 连续的值 , 无法根据属性值划分数据集 , 需要将连续属性值离散化 , 再使用决策树分析 ;

② 示例 : 如学生成绩 , 0 ~ 100 分 , 60 分以上划分为 及格 , 60 分以下划分为 不及格 ;

2 . 二分法处理连续属性值 :

① 连续属性 DDD : 数据集中的 DDD 属性 , 其取值是连续的数值 ;

② 属性值排序 : 将 DDD 属性的 nnn 个不同的连续取值从小到大排序 {a1,a2,⋯,an}\{ a_1 , a_2, \cdots , a_n \}{a1​,a2​,⋯,an​} ;

③ 划分点 ttt : 划分点 ttt 是 DDD 属性的一个取值 , 将 DDD 属性的值分为 子集 Dt−D_t^-Dt−​ 和 Dt+D_t^+Dt+​ ;

④ Dt−D_t^-Dt−​ 子集 : 该子集中的属性值 , 小于等于 ttt ;

⑤ Dt+D_t^+Dt+​ 子集 : 该子集中的属性值 , 大于 ttt ;

3 . 最优划分点 :

① 候选划分点 : DDD 属性有 nnn 个取值 , 可以有 n−1n-1n−1 个候选划分点 ;

② 某两个属性值之间的划分点确定 : {a1,a2,⋯,an}\{ a_1 , a_2, \cdots , a_n \}{a1​,a2​,⋯,an​} 取值集合中 , 将两个数值之间的中点 , 作为划分点 ;

③ 最优化分点确定 : 需要选择最优的划分点 , 以达到最终决策树分类的目的 ;

V . 根据 增益率 选择划分属性


1 . 信息增益弊端 : 如果数据集中 , 某个属性有很多值 , 其信息增益比较大 , 很容易将分支多的属性放在树根 ;

示例说明 : 如 人的性别 , 其取值只有 男 和 女 两种 , 其只有两项 , 人的年龄 有 130 种取值范围 , 其计算出来信息增益比较大 ;

2 . 增益率引入 : ID3 使用信息增益确定树根属性 , C4.5 使用增益率确定树根属性 ;

3 . 增益率 ( Gain Ratio ) 计算公式 :

① AAA 表示属性类型 ;

② DDD 表示样本的总个数 ;

③ vvv 表示当前的 AAA 属性不同取值个数 , 取值集合为 {a1,a2,⋯,av}\{a_1, a_2 , \cdots , a_v\}{a1​,a2​,⋯,av​}

④ DjD_jDj​ 表示样本取值 aja_jaj​ 的样本个数 ;

SplitInfoA(D)=−∑j=1vDjDlog2DjDSplitInfo_A(D) = - \sum_{j=1}^{v} \frac{D_j}{D} log_2 \frac{D_j}{D}SplitInfoA​(D)=−j=1∑v​DDj​​log2​DDj​​

增益率公式 :

GainRatio(A)=Gain(A)/SplitInfo(A)GainRatio ( A ) = Gain(A) / SplitInfo(A)GainRatio(A)=Gain(A)/SplitInfo(A)

VI . 根据 增益率 选择划分属性 计算案例


1 . 计算案例 :

参考之前的 信息增益计算案例 : 信息增益计算 案例

2 . 信息增益计算结果 : 依次计算 各个属性的 信息增益 :

① 年龄 属性的信息增益 : Gain(年龄)=0.246Gain ( 年龄 ) = 0.246Gain(年龄)=0.246

② 收入 属性的信息增益 : Gain(收入)=0.029Gain ( 收入 ) = 0.029Gain(收入)=0.029

③ 是否是学生 属性的信息增益 : Gain(是否是学生)=0.151Gain ( 是否是学生 ) = 0.151Gain(是否是学生)=0.151

④ 信用等级 属性的信息增益 : Gain(信用等级)=0.048Gain ( 信用等级 ) = 0.048Gain(信用等级)=0.048

⑤ 树根 属性选择: 年龄属性的 信息增益 最大 , 选择年龄属性作为树根 ;

3 . 这里计算收入 属性的增益率 : 14 个样本中, 4 个高收入 , 6 个中等收入 , 4 个低收入 ;

SplitInfoA(D)=−∑j=1vDjDlog2DjD==−414log2414−614log2614−414log2414=0.926\begin{array}{lcl} SplitInfo_A(D) &=& - \sum_{j=1}^{v} \frac{D_j}{D} log_2 \frac{D_j}{D} \\\\ &=& = - \frac{4}{14} log_2 \frac{4}{14} - \frac{6}{14} log_2 \frac{6}{14} - \frac{4}{14} log_2 \frac{4}{14} \\\\ &=& 0.926 \end{array}SplitInfoA​(D)​===​−∑j=1v​DDj​​log2​DDj​​=−144​log2​144​−146​log2​146​−144​log2​144​0.926​

GainRatio(A)=Gain(A)/SplitInfo(A)=0.0290.926=0.031GainRatio ( A ) = Gain(A) / SplitInfo(A) = \frac{0.029}{0.926} = 0.031GainRatio(A)=Gain(A)/SplitInfo(A)=0.9260.029​=0.031

4 . 树根选择 : 同样增益率最大的属性 , 会被设置为 划分属性 ;

VII . 决策树 作用 及 优势


1 . 大数据分类 : 在大数据分类中 , 要求快速的对几百万的样本 , 涉及几十上百的属性进行分类 ;

2 . 决策树 算法优势 :

① 可伸缩性 : 随着数据量增大 , 复杂度线性增长 , 不是指数级增长 ;

② 学习速度快 : 学习速度比其它分类方法快 ;

③ 规则转化 : 可以抽取转化分类规则 ;

④ 数据库结合 : 可以使用 SQL 查询数据库中的数据 ;

⑤ 准确性高 : 使用决策树分类 , 准确性有保障 ;

【数据挖掘】决策树 分类 ( 抽取分类规则 | 过拟合 | 剪枝 | 先剪 | 后剪 | 连续数值离散化 | 最优化分点 | 增益率选择划分属性 )相关推荐

  1. 【机器学习-西瓜书】四、决策树:信息熵;信息增益;增益率;ID3;C4.5

    推荐阅读:纯度:信息熵:信息增益 关键词: 纯度:信息熵:信息增益:增益率:ID3:C4.5:基尼指数:预剪枝:后剪枝 4.1基本流程 关键词:决策树(decision tree) 决策树是一种分类方 ...

  2. 数据挖掘 —— 有监督学习(分类)

    数据挖掘 -- 有监督学习(分类) 1. KNN分类算法 2. 决策树分类算法 3. SVM算法简介 4. 分类--集成算法 4.1 随机森林参数介绍 4.2 Adaboost算法参数介绍 5 总结 ...

  3. 【数据挖掘】分类任务简介 ( 分类概念 | 分类和预测 | 分类过程 | 训练集 | 测试集 | 数据预处理 | 有监督学习 )

    文章目录 I . 分类概念 II . 分类 ( 离散值 ) 和 预测 ( 连续值 ) III . 分类过程 IV . 分类过程中使用的数据集 ( 训练集 | 测试集 | 新数据 ) V . 数据预处理 ...

  4. 【数据挖掘笔记八】分类:基本概念

    8.分类:基本概念 分类是一种重要的数据分析形式,它提取刻画重要数据类的模型,这种模型称为分类器,预测分类的(离散的.无序的)类标号. 8.1 基本概念 分类和回归(数值预测)是预测问题的两种主要类型 ...

  5. gini系数 决策树_SKlearn中分类决策树的重要参数详解

    classsklearn.tree.DecisionTreeClassifier(criterion='gini', splitter='best', max_depth=None, min_samp ...

  6. 决策树(1. 分类树)

    文章目录 前言 一.重要参数 1.1 criterion 建立一棵树的步骤 1.2 random_state & splitter 1.2.1 建立树的第五步(建立模型)添加参数 1.3 剪枝 ...

  7. 【数据挖掘笔记九】分类:高级方法

    9.分类:高级方法 9.1 贝叶斯信念网络 贝叶斯信念网络是一种概率的图模型,不假定类条件独立性,说明联合条件概率分布,允许在变量的子集间定义类条件独立性,提供一种因果关系的图形模型,可以在其上进行学 ...

  8. 基于决策树的多分类_R中基于决策树的糖尿病分类—一个零博客

    基于决策树的多分类 Article Outline 文章大纲 What is a decision tree?什么是决策树? Why use them?为什么要使用它们? Data Backgroun ...

  9. 决策树-线性二分类+非线性二分类

    线性二分类 import matplotlib.pyplot as plt import numpy as np from sklearn.metrics import classification_ ...

最新文章

  1. 哪些云计算企业能活下来
  2. SpringBoot 项目war包部署 配置外置tomcat方法
  3. mybatis动态更新xml文件后热部署,不重启应用的方法
  4. Java生成真正格式的Excel文件
  5. 一个简单的获取时间的程序
  6. 定时上传文件至ftp服务器,CuteFTP FTP文件的定时上传图文教程
  7. 塔式太阳能热发电技术在我国发展现状与前景分析
  8. ec12编码器电路图_光电编码器的电路原理图详解
  9. 什么是生物特征识别?有哪些生物特征?
  10. python猜大小程序_「每日一练」巧用python实现猜大小的游戏
  11. 生活污水处理设备让污水无处躲藏
  12. spring基础概述
  13. android 打开和关闭输入法
  14. c语言中 #include < > 和include “ “的区别
  15. 灰度值 与 RGB值 及其转换
  16. 团体程序设计天梯赛-练习集 L1-034 点赞
  17. 罗素说过:“我是不会为自己的信念去死的,因为我不能肯定自己的信念是对的。”
  18. 云平台支持哪些java应用服务器_腾讯云部署javaWeb项目之一应用服务器
  19. 图解《个人信息保护法》
  20. 反垃圾邮件产品测试评价方法

热门文章

  1. CCNA课堂练习一:路由器链路备份功能
  2. xnawindowsph又见“X”Phone ePhone手机V90新鲜评测
  3. mysql的高级特性
  4. iTOP-4412开发板驱动lcd显卡以及linux开机log的修改方法
  5. css hover图片hover效果兼容ie8
  6. OSI模型和TCP/IP模型
  7. Dell服务器相关操作
  8. 使用GruntJS构建Web程序 (1)
  9. 不同存储区域的数组分析
  10. ASP.NET操作Word文档(转)