决策树
决策树可以理解为对于条件的一系列判定,由于每一个条件都有是否两种情况,将所有情况按照树状组织起来就叫做决策树。决策树可以对于数据集上的数据做分类。如下图
节点中代表当前的数据各自的占比,根节点代表play的数据有9个,not play的数据有5个。此时按照outlook的三种情况对整个数据集做划分,可以得到在sunny下的play=2,notplay=3,以此类推。这样就能够根据数据集和相关的特征,构建决策树。
决策树构造
- 决策树的构造主要是如何选择节点的问题。换句话说,只要给定一系列的判定条件,那么决策树无需构造,直接就能看出来。问题是在给定的数据集上,比如每个数据项有13个特征,怎样使用更少的特征,更小的空间去将决策树构造出来,让决策树的叶节点尽量为单一的一种类型。因此需要引入一个概念:
-
熵:
信息领域的熵的概念代表了信息的信息量的度量。在给定的信息下,分析信息获得的结果越准确,就要求给定的信息越准确。换句话说,可以理解为对于给定的信息,其发生的概率越大,信息量就越大,比较显然的理解,A发生的概率是1和A发生的概率是0.7,前者给出的信息量就大于后者。因此提出信息熵的概念:
-
那么根据上述描述,我们在选取决策树的节点的时候一种思想就是优先选取提供信息量大的节点。衡量标准为
其中info(D|A)代表当确定A的时候D所提供的信息量。举例来说,对于下面的数据集:
因此对于特征age,其提供的信息量为:
-
同样的方法计算其他变量的信息获取量,即可得知第一个节点应该选取哪个。
当选定第一个节点之后,数据集根据第一个节点的信息被分割为几个部分,如下:
那么对于上面的三个子数据集,依次进行对应的操作,最后即可获得对应的决策树
-
决策树的优缺点
- 决策树构建简单,实现非常通俗易懂,并且具有很好的逻辑性。
- 在小规模的数据集上往往比较有效,对于大的数据集往往无法实现很精确的决策树,因此结果未必很好
- 只是用于分类问题,对于连续变量的处理往往不够理想。