算法思想
决策树是一个树形结构, 其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。
使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。
决策树模型核心为:
- 由节点和有向边组成
- 节点有内部节点和叶子节点两种类型
- 内部节点表特征,叶子节点表类别
实例判断方法
实例的类别判断:只要你告诉我各个特征的具体值,决策树的判定过程就相当于树中从根结点到某一个叶子结点的遍历。每一步如何遍历是由数据各个特征的具体特征属性决定。
分裂属性
所谓分裂属性就是在某个节点处按照某一特征属性的不同划分构造不同的分支,其目标是让各个分裂子集尽可能地“纯”。尽可能“纯”就是尽量让一个分裂子集中待分类项属于同一类别。
而判断“纯”的方法不同引出了我们的ID3算法,C4.5算法以及CART算法,这些后面会详细介绍!
划分数据集
构建一颗决策树的核心,在于节点上的判断问题(决策),以及树的形状划分。周志华的书里对于如何选择最优划分属性,有很精辟的描述:
一般而言,随着划分过程不断进行,我们希望决策树的分支节点所包含的样本尽可能属于同一类别,即节点“纯度”(purity)越来越高。
所以数据集的划分,是根据样本集合“纯度”来决定的。我们必须先知道怎么来衡量样本集合“纯度”。这也是所谓决策树的学习算法:
- ID3学习算法:以信息增益为准则来划分属性
- C4.5学习算法:是ID3的改进
- 用信息增益率来选择属性(ID3用信息增益)
- 在树构造过程中进行剪枝
- 能处理非离散数据和不完整数据