决策树是一种常见的机器学习,可以从给定的数据之中创建一个模型,模型创建后可以对新的样本进行判定和识别。
决策树的生成如下:
假设有训练集。
属性集。
我们基于此构造一个决策树(最基本的),大致思路如下:
生成node节点。然后开始根据属性进行判断,如果训练集的所有样本都属于属性集
的一个属性
,则node就作为
类的叶节点。如果属性集
为空或者剩下训练集
的所有属性取值相同,那么将node设为叶节点,其类别设为
中分类最多的一类的类别。如果当前训练集
为空,将分支节点node设为叶子结点,类别为训练集
中样本最多的类的类别。
简单来说,就是先创建节点node。然后分为以下三种情况进行分析。
1.所有训练集同属于一个类别,不用划分。
2.当前属性集为空,或者所有样本在所有属性上取值相同,无法继续划分。
3.当期的训练集为空。
我们比较1和2的情况来看,1是所有训练集都属于同一类别,2是在部分训练集属性集上的取值相同并有可能在别的属性上不同(我们没有考虑的属性)。对于不同情况的node划分也不同。2是将node选做在属性集上分类类别最多的一类,3则是没有了属性集选项了,node的类别是其父节点之中所含类别最多的类别。
创建决策树不难,利用递归并设定好返回条件即可,但如何创建一颗具有良好泛化能力并高效率的决策树是难点,也是下一步主要的工作之一。