引言
决策树(Decision Tree)是一种基本的分类和回归方法。它的扩展方法有GBDT和GBRT 等。决策树模型的学习过程主要有特征选择、决策树生成和剪枝。主要算法有ID3、C4.5和CART等。
一、决策树模型
决策树首先是一个树形结构,它包括两种类型的节点:内部节点和叶节点。内部节点是属性,叶节点是具体的分类。当决策树根据一些学习方法建立好之后,就可以进行实例的预测了,首先从根节点开始,对应决策树的属性进行实例的划分,直至叶节点,那么这个实例的类就被分出来了。一个简单的决策树模型如下图所示:
其实,可以将决策树看成是IF-THEN 规则的集合。决策树还表示给定特征条件下类的条件概率分布。
二、决策树的学习
给定一个数据集合D,每一个实例都有特征和类标签。要生成一颗决策树,使得它能对数据集合D有很好的拟合,同时还要求对未知数据可以进行预测。决策树的学习同样是最小化损失函数。损失函数是正则化的极大似然估计。
决策树的构造如下:
1. 开始构造根节点,将所有数据都放入根节点
2. 选择一个最有特征,按照这一特征将训练数据分割成子集,使得各个子集在当前条件下有一个是最好的分类,如果这些子集都能被正确分类,那么构造叶节点,否则,重复步骤2。直到所有的训练数据都被正确分类,或者没有合适的特征。
这就生成了一棵决策树。上述方法构造的决策树对训练数据集有着很好的拟合,但是对于未知数据的预测却不一定有很好的分类能力,即上述过程可能导致过拟合的问题。解决这一问题的方法是对决策树进行剪枝。另外,如果特征过多,在决策树开始建立之前就可以对特征进行选择。
下边的内容会围绕决策树学习的一些算法展开讨论。