决策树
来源:互联网 发布:深圳程序员工资2016 编辑:程序博客网 时间:2024/06/10 08:52
决策树
- 概念
- 递归生成
构建步骤
决策树是一种分类器,包含根节点、内部节点(属性测试)和叶节点(决策结果) ,相当于多叉树。目的是产生泛化能力强(处理未见实例的能力),遵循“分而治之”的思想。
递归生成。导致递归返回的三种情形:- 当前节点的样本属于同一类别,无需划分;
- 当前属性集为空,或是所有样本在所有属性集上取值相同
- 当前节点包含的样本集合为空
构建的基本步骤: - 开始所有记录看做一个节点
- 遍历每个变量的每一种划分方式,找到最好的划分属性
- 划分为N1和N2
- N1和N2继续划分直到递归返回
ID3
- ID3(分类任务)
ID3的节点划分所衡量的指标是:信息增益
信息熵: E(D)=∑vk=0(−pk)(log2pk)
特征a的信息增益:Gain(D,a)=∑vv=1|Dv|E(Dv)|D|
一般而言,信息增益越大,则意味着使用属性α来进行划分所获得的“纯度提升”越大,所以选择信息增益最大的属性作为划分属性。
C4.5
- C4.5(分类任务)
C4.5采用信息增益率来选择最优划分特征属性。
Gain_aio(D,a)=Gain(D,a)IV(a)
IV(a)=|Dv||D|log2|Dv||D|
IV(a)称为属性α的“固有值”。属性α的可能值数目越大(v越大),则IV(a)的值通常会越大。
CART
- CART(预测任务)
CART树是一颗二叉树,内部节点特征取值为‘是’(左)、‘否’(右)。使用“基尼系数”来选择划分属性。
Gini(D)=∑vk=1pk(1−pk)=1−∑vk=1p2k
Gini(D,a)=∑vv=1|Dv|Gini(Dv)|D|
Gini(D)越小,则数据集D的纯度越高。基尼系数最小的属性作为最优划分属性。
剪枝
- 前剪枝
前剪枝:决策树生成过程中,对每个节点再划分前进行预估,若当前节点的划分不能够提升泛化能力,则停止划分并将此节点标记为叶节点。
(在进行划分时,对于要剪枝的节点需注意:其标记为训练样本中最多的类别)
1. 对根节点进行剪枝预估,选择训练集中类别最多的进行标记 2. 对节点2进行剪枝预估 3. 对节点3进行剪枝预估 4. 对节点4进行剪枝预估,因为4已经是一个叶节点,所以不再进行剪枝
优缺点:很多分支未展开,降低过拟合的风险减少开销;有欠拟合风险
- 后剪枝
后剪枝:先从训练集生成一颗完整的决策树,然后自底向上对非叶子节点进行考察,采用的方法是从原数据集中留出“验证集”(用来确定网络结构或者模型复杂程度的参数)。
1.考虑节点6
2.考虑节点5
3.对节点2进行预估
4.对节点3,1进行预估,均未能在验证集上提高精度,所以不剪枝。
(第三步生成的决策树为最终的决策树)
阅读全文
1 0
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- 决策树
- nginx实现负载均衡
- TensorFlow实现MLP(多层感知机)
- 1004 Anagrams by Stack
- JaveScript之关于时间的函数
- CNN文本分类
- 决策树
- Length of Last Word
- C++广度优先搜索算法之走出迷宫
- The server does not support version 3.0 of the J2EE Web module specification解决方案
- JavaScript(1)
- 树莓派3b no wireless interfaces found 的解决办法 360wifi和树莓派结合
- 解决java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
- 知识图谱技术分享会----有关知识图谱构建的部分关键技术简介及思考
- 整除7,9,11的数的性质