[TOC] 更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:http://www.javashuo.com/article/p-vozphyqp-cm.htmlhtml
决策树(decision tree)是一种基本的分类与回归方法,同时因为自身是弱分类器特别适合集成学习,例如随机森林、XgBoost。python
本文将经过ID3算法带你们入门决策树,以后会另写文章谈谈C4.5算法和CART分类回归树。算法
假设银行须要构造一个征信系统用来发放贷款,若是你是构建该系统的人,你会如何构建该系统呢?数据结构
我说说我将如何构建一个银行的征信系统,首先,我会判断征信人的年收入有没有50万,若是有我直接断定他能够贷款,若是没有我会再作其余的判断;其次,判断征信人有没有房产,若是有房产也就是说他有了能够抵押的不动产,既能够断定他能够贷款,若是没有,则不能贷款……机器学习
上述整个过程其实就是决策树实现的一个过程,接下来将从理论层面抽象的讲解三种形式的决策树。学习
如上一节的征信系统构建同样,决策树ID3算法的思想其实很简单,当你在使用$if\ldots\ldots$敲代码的时候其实就是在使用决策树的思想,可是你有没有想过把哪一个判断条件放在$if$上回更好,是先判断年收入仍是先判断有没有房产呢?其实在1970年的时候就有一位叫昆兰的大牛使用信息论上熵的概念来思考过这个问题,并在此基础上使用信息增益这个概念构建了决策树决策的过程。网站
具体的方法是:从根节点开始,计算全部可能特征的信息增益,选择信息增益最大的特征做为根节点的特征,由该特征的不一样特征值做为不一样的子节点;再对子节点递归调用上述方法,构建决策树;直到全部特征的信息增益都很小或者没有特征能够选择为止,最后获得一颗完整的决策树$T$。人工智能
上述方法构建的决策树则会如上图所示相似于算法中的二叉树,可是须要注意的是ID3算法的决策树是多叉树,而且决策树的各个节点使用信息增益选择特征,而后递归构建决策树。htm
在《熵与信息增益》一文中提到:熵$H(X)$度量了随机变量$X$的不肯定性;条件熵$H(Y|X)$度量了知道$X$之后$Y$剩下的不肯定性;$H(X)-H(X|Y)$度量了$Y$在知道$X$以后不肯定性的减小程度,这个度量记做$g(Y,X)$,而且在决策树ID3算法中称为信息增益。blog
今后处能够看出,信息增益越大的特征,$Y$在知道$X$以后不肯定性的减小程度会越大,所以更适合用来分类。
假设现有一个训练集$D$,特征集$A$,阈值$\epsilon$。
ID3算法决策树。
决策树ID3算法是最原始的决策树算法,因为它较好的解释型在当时也是火了一段时间。可是他的缺点也是特别明显的,树深度大了则容易过拟合,而且没法处理回归问题,没法处理连续值的问题等等一系列问题。
决策树ID3算法因为它自身的缺陷目前已较少使用,也由于这些缺点有了咱们下一篇要介绍的算法——决策树C4.5算法。