决策树

来源:互联网 发布:电力系统序网络 编辑:程序博客网 时间:2024/06/06 05:00

一、基于二分类问题,决策树是对“当前样本是否是正类”的“决策”或“判定”

二、目的:产生“泛化能力强”的决策树

三、基本流程:“分而治之”

3.1输入:训练集D((绿色,好瓜),(黄色,坏瓜),...),属性集A(黄色,绿色)

3.2过程:TreeGenerate(D,A)函数,一个递归过程

3.3无法继续向下分类的情形:

case1:当前结点包含的样本都属于同一分类,无需划分(当前样本里全是好瓜)——将当前结点设置为叶节点,类别根据该结点所含样本最多的类别设置

case2:当前属性集为空,或样本在当前属性集上的值都一样(在当前属性下都是好瓜)——将当前结点设置为叶节点,类别根据该结点所含样本最多的类别设置

case3:当前样本集为空(训练集没数据)——将当前结点设置为叶节点,类别根据父节点所含样本最多的类别设置

这三种情况下,递归返回

3.4具体递归过程:

0:生成结点node

1:从A中选择最有划分属性a;

2:for a的每一个值a.v do

为node生成一个分支;令Dv表示D中在a上取值为a.v的样本子集;

if Dv 为空 then

将分支结点标记为叶结点,其类别标记为D中样本最多的类;return

else

以TreeGenerate (Dv,A\{a}) 为分支结点

end if

end for

原创粉丝点击