决策树算法属于监督学习,即原数据必须包含预测变量和目标变量。决策树分为分类决策树(目标变量为分类型数值)和回归决策树(目标变量为连续型变量)。分类决策树叶节点所含样本中,其输出变量的众数就是分类结果;回归树的叶节点所含样本中,其输出变量的平均值就是预测结果。
与其它分类预测算法不同的是,决策树基于逻辑比较(即布尔比较)。可以简单描述为:If(条件1)Then(结果1);If(条件2)Then(结果2)。这样,每一个叶节点都对应于一条布尔比较的推理规则,对新数据的预测就正是依靠这些复杂的推理规则。在实际应用中,一个数据产生的推理规则是极为庞大和复杂的,因此对推理规则的精简是需要关注的。
数据集如下图所示,它表示的是天气情况与去不去打高尔夫之间的关系。
Day | Outlook | Temperature | Humidity | Windy | Play Golf? |
---|---|---|---|---|---|
1 | Sunny | 85 | 85 | False | No |
2 | Sunny | 80 | 90 | True | No |
3 | Overcast | 83 | 78 | False | Yes |
4 | Rainy | 70 | 96 | False | Yes |
5 | Rainy | 68 | 80 | False | Yes |
6 | Rainy | 65 | 70 | True | No |
7 | Overcast | 64 | 65 | True | Yes |
8 | Sunny | 72 | 95 | False | No |
9 | Sunny | 69 | 70 | False | Yes |
10 | Rainy | 75 | 80 | False | Yes |
11 | Sunny | 75 | 70 | True | Yes |
12 | Overcast | 72 | 90 | True | Yes |
13 | Overcast | 81 | 75 | False | Yes |
14 | Rainy | 71 | 80 | True | No |
所得到的决策树如下图所示:
决策树(decisiontree)是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。