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