机器学习九大算法---决策树
来源:互联网 发布:新疆农业大学网络课程 编辑:程序博客网 时间:2024/06/05 03:04
转自:http://blog.csdn.net/bigbigship/article/details/50991370
基本流程
决策树(decision tree)是一类常见的机器学习方法。决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。 数据挖掘中决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来作预测。
决策树的建立
输入: 训练集
属性集:
伪代码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
输出 : 以node为根的一颗决策数
决策数的生成是一个递归的过程,在决策树基本算法中有三种情况会导致递归返回:
- 当前节点包含的样本种类属于同一类别,无需划分
- 当前样本属性集为空,或者所有样本在所有属性上的取值相同,无法划分
- 当前节点包含的样本集合为空,不能划分
划分选择
决策树算法的关键在于如歌选择最优划分属性,随着划分的不断进行,我们希望决策树的分支节点所包含的样本尽可能的属于同一类别。
信息熵
熵的概念最早起源于物理学,用于度量一个热力学系统的无序程度。在信息论里面,熵是对不确定性的测量。但是在信息世界,熵越高,则能传输越多的信息,熵越低,则意味着传输的信息越少。
信息熵(information entropy)是度量样本集合纯度最常用的一种指标,假定当前样本集合
信息增益与ID3算法
假定离散属性
信息增益:
这也是ID3(Iterative Dichotomiser 3)算法的原理。
决策树ID3算法请参考:传送门
信息增益率与C4.5算法
C4.5决策树算法不直接使用信息增益,而是使用信息增益率来选择最优划分属性。
其中
决策树C4.5算法:传送门
基尼指数与分类回归树
CART树(Classification and Regression Tree)使用基尼指数来选择属性的划分,通过基尼值来度量数据集的纯度
基尼值:
基尼指数:
于是我们在候选属性集合
CRAT算法:传送门
过拟合处理
在决策树学习中,为了尽可能正确分类训练样本,结点划分过程将不断重复,有时会造成决策树分支过多,导致过拟合,因此可以通过主动去掉一些分支来降低过拟合的风险。
剪枝的基本策略有:预剪枝和后剪枝
预剪枝
预剪枝是在决策树生成的过程中,对每个结点在划分前先进行预估,若当前结点的划分不能使决策树泛化性能提升,则停止划分并将当前结点标记为叶节点。
后剪枝
后剪枝是先从训练集中生成一颗完整的决策树,然后自底向上的对非叶子结点进行考察,若将改结点对应的子树替换为叶子结点能提高泛化能力,则进行替换。
连续值缺失值处理
连续值处理
由于连续属性的可能取值不再有限,因此不能直接根据连续属性的可能取值进行划分。我们可以使用离散化技术对其进行处理。
二分法:
给定样本集
将其排序
eg:
缺失值处理
现实任务中常常会遇到不完整的样本,也就是样本中的某些属性值缺失的情况,最简单的方法是直接去除缺失的数据,但是这是对数据信息的极大浪费,我们可以考虑下利用有缺失属性值的样本来进行学习。
需解决的问题:
- 在属性值缺失的情况下进行划分属性的选择
- 给定划分属性,若样本在该属性上的值缺失,如何进行划分
给定训练集
对于问题一,根据
设
推广到信息增益公式上:
其中
对于问题二,样本
- 机器学习九大算法---决策树
- 机器学习十大算法之决策树
- 机器学习算法---决策树
- 机器学习算法-决策树
- 机器学习算法-决策树
- 机器学习--决策树算法
- 机器学习-算法--决策树
- 机器学习-决策树算法
- 机器学习:决策树算法
- 机器学习算法-决策树
- 机器学习算法---决策树
- 机器学习---决策树算法
- 机器学习算法---决策树
- 机器学习十大算法之决策树---ID3算法
- 机器学习九大算法---随机森林
- 机器学习九大算法---回归
- 机器学习九大算法---隐马尔科夫模型
- 机器学习中的决策树算法
- svn错误:更新源码出现校验和不匹配问题
- Linux常用操作命令
- Spark本地安装与配置
- 大数据分析与生态系统论坛:金融、电网、容器、数据库、图计算等共谱大数据生态
- Android插件化学习
- 机器学习九大算法---决策树
- 基于golang rocksdb实现的高性能队列
- iTerm2 指南
- [Android6.0]App中调用init.rc中的服务,从而运行shell脚本
- 笔记
- Ubuntu 16.04安装微信
- 设计模式(十八)------23种设计模式(10):命令模式
- 【bootstrap】入门
- 工作日常1