AI机器学习新手上路-决策树
来源:互联网 发布:cocos2d js protobuf 编辑:程序博客网 时间:2024/05/16 00:44
决策树
通俗讲解:训练出一棵被条件圈定的树。
就像一个人不听的在问“是···吗?” 回答是或者否,则转到下一个问题或者得出结论,直到完成决策。
举个栗子:银行一个20w贷款的放贷依据假定有三:婚姻状况(未婚、已婚),工资水平(1w以下,1-3w,3w以上),身体状况(好,一般,差)。决策树就像在问贷款者:你是否结婚了?工资多少?。。。
而决策树所问的第一个问题,不难理解,应该是最重要最能影响这个决策、最具有类别特征的问题,因为回答者的回答将可能直接决定分类的类别。那么问题来了:怎么在众多类别特征中决定“问问题”的顺序,问完问题以后怎么决定接下来的安排?
我们需要先了解一个概念信息熵
信息熵的定义是:如果一个事件有n种可能,每一种可能发生的概率是pi,则其信息熵为
H(X)=−∑p∗log1p
你可以验证一下:如果某件事发生的概率是1,则其信息熵为0,意思就是说了跟没说一样;如果这件事发生的概率无穷小,比如“中国队拿了世界杯冠军”,那么它的信息熵趋于无穷,你听到这个消息的时候心里就会有无数个“震惊”。
举例说明:生成决策树判断银行是否放贷(ID3算法)
step1:计算整个分类系统-放贷的信息熵
根据历史数据,放贷有两种可能:放的概率为2/3;不放的概率为1/3,根据信息熵公式:
step2:计算假定按照每一个特征划分后的信息熵
按照工资状况划分后:
划分后,各部分的信息熵
划分后的条件熵为
最终得到特征属性带来的信息增益为
信息增益,通俗的讲就是该特征为整件事带来的信息增量,比如中国队打进世界杯了,信息熵很大;但是前提条件如果加上了c罗和梅西加入中国国籍带队参赛,那么打进世界杯的就不那么令人意外了,加上该条件后的信息熵前后对比,就凸显出该特征带来的信息增益。
以此计算出其他两个特征带来的信息增益,得到特性【工资水平】带来的信息增益最大,选择其作为决策树的首个分支条件。后面的步骤就是重复上述。
通过信息增益量化一次拆分的结果好坏,下一步就是构造决策树,主要步骤如下:
- 遍历每个决策条件,对结果集进行拆分
- 计算该决策条件下,所有可能的拆分情况的信息增益,信息增益最大的拆分为本次最优拆分
- 递归执行1、2两步,直至信息增益=0或者很小
在决策树的每一个非叶子结点划分之前,先计算每一个属性所带来的信息增益,选择最大信息增益的属性来划分,因为信息增益越大,区分样本的能力就越强,越具有代表性,很显然这是一种自顶向下的贪心策略。以上就是ID3算法的核心思想。
决策树的剪枝:
实际的训练集训练出来的数据会存在过拟合现象,本着奥卡姆剃刀原理的原则,那么就需要进行剪枝处理处理。
剪枝的做法可以有
1. 预剪枝:一边决策一边剪枝,判断最大信息增益都小于阈值的时候直接变为叶子节点
2. 后剪枝:决策后进行剪枝,判断合并后信息的增加量是否小于阈值。后剪枝是目前最普遍的做法。
决策树在生成过程中运用信息熵在贪婪算法思想下建立(局部生成);
决策树在剪枝过程中则运用错误(率)来指导剪枝(全局剪枝)。
参考资料:
http://www.jianshu.com/p/6eecdeee5012
- AI机器学习新手上路-决策树
- AI机器学习新手上路-朴素贝叶斯算法
- 机器学习之-决策树算法【人工智能工程师--AI转型必修课】
- 新手上路--C语言学习
- 机器学习算法---决策树
- 机器学习2决策树
- 机器学习-决策树
- 机器学习---决策树
- 机器学习实战---决策树
- 机器学习之决策树
- 机器学习-决策树
- 机器学习实战-决策树
- 面试:机器学习--决策树
- 机器学习实战---决策树
- 机器学习实战 决策树
- 【机器学习】决策树
- 机器学习 之 决策树
- [机器学习实战]-决策树
- A
- 计算机码制--深入理解 原码、反码、补码
- 【LintCode-463】整数排序(Java实现-冒泡排序/选择排序/插入排序)
- leetcode 226. Invert Binary Tree(C语言,二叉树,递归)54
- Java面试宝典-2017
- AI机器学习新手上路-决策树
- 可扩展的对话框
- DHCP服务器典型配置举例(路由应用)
- J
- 漫步最优化三十八——非二次函数最小化
- [2017.11.04]作业09(c)
- <学习html>第五天笔记-表格table(创建表格、表格属性、表头标签、表格结构、表格标题标签、合并单元格)
- POJ2115 C Looooops(扩展欧几里得)
- 向量,矩阵,张量求导