分类模型——决策树
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
பைடு நூலகம்决策树模型
相比贝叶斯算法,决策树的优势在于构造过程中不需要任何的参数设置,因此决策树更偏重于探测式的知识发现。
决策树的思想贯穿着我们的生活方方面面,人们在生活中的每一个选择都是输的一个分支节点,只不过生活是一根走不到尽头的决策树,而一般的问题的决策结论是正确或者错误。
举个例子说明决策树,比如给寝室的哥们介绍对象时需要跟人家讲明女孩子的如下情况:
E.在众多属性对于训练集的信息熵之中取最小的,这样信息增益最大,信息增益最大代表着信息的纯度越高,这样的分类越有效。
F.然后完成了一次属性的分裂,之后的递归。
C4.5算法:
ID3算法存在一个问题,就是偏向于多值属性,例如,如果存在唯一标识属性ID,则ID3会选择它作为分裂属性,这样虽然使得划分充分纯净,但这种划分对分类几乎毫无用处。ID3的后继算法C4.5使用增益率(gain ratio)的信息增益扩充,试图克服这个偏倚。
A.家是哪里的。
B.人脾气如何
C.人长相如何
D.人个头如何
OK,先举这几个,以上4个条件便是一个实例。然后男孩的决定策略便是决策树,比如说寝室的哥们的要求是:家北京的,脾气温柔的,长相一般,个头一般。那么这个决策树变构造成了。
以上便是一个决策树,实例的每一个特征在决策树中都会找到一个肯定或者否定的结论,至于每一个节点的权重还需要以后在学习中获得,可以根据不同的权重将节点排序,或者每个节点带一个权重。
具体的计算过程如下:
A.将训练集S分为1 ......N个最终类别,对于病毒检测为2个类别,是病毒,不是病毒
B.计算S的总信息熵INFO(S),改值等于最终类别的各自信息量和几率质量函数的乘积,即每一个类别所占训练集的比例乘以该比例的对数值取负,然后加和。
C.确定用来进行分类的属性向量V1,V2....Vn
2、属性是离散值且要求生成二叉决策树。此时使用属性划分的一个子集进行测试,按照“属于此子集”和“不属于此子集”分成两个分支。
3、属性是连续值。此时确定一个值作为分裂点split_point,按照>split_point和<=split_point生成两个分支。
构造决策树的关键性内容是进行属性选择度量,属性选择度量是一种选择分裂准则,是将给定的类标记的训练集合的数据划分D“最好”地分成个体类的启发式方法,它决定了拓扑结构及分裂点split_point的选择。
C4.5算法首先定义了“分裂信息”,其定义可以表示成:
其中各符号意义与ID3算法相同,然后,增益率被定义为:
C4.5选择具有最大增益率的属性作为分裂属性,其具体应用与ID3类似,不再赘述。
D.计算每一个属性向量对应的该属性向量对训练集的信息熵INFO(S)Vi,比如对应的属性Vi将训练集分为了M类,那么改值等于在该属性划分下的某一类值出现的概率乘以对应的该值所在的集的信息熵。改值所在的集的信息熵再套公式发现等于最终分类在Vi属性划分下的某一个类里的概率值乘以该概率值的对数值取负。表述的有些复杂,最好看公式。
构造决策树的关键步骤是分裂属性。所谓分裂属性就是在某个节点处按照某一特征属性的不同划分构造不同的分支,其目标是让各个分裂子集尽可能地“纯”。尽可能“纯”就是尽量让一个分裂子集中待分类项属于同一类别。分裂属性分为三种不同的情况:
1、属性是离散值且不要求生成二叉决策树。此时用属性的每一个划分作为一个分支。
常用的有ID3算法和C4.5算法
从信息论知识中我们直到,期望信息越小,信息增益越大,从而纯度越高。所以ID3算法的核心思想就是以信息增益度量属性选择,选择分裂后信息增益最大的属性进行分裂。下面先定义几个要用到的概念。
设D为用类别对训练元组进行的划分,则D的熵(entropy)表示为:
其中pi表示第i个类别在整个训练元组中出现的概率,可以用属于此类别元素的数量除以训练元组元素总数量作为估计。熵的实际意义表示是D中元组的类标号所需要的平均信息量。
现在我们假设将训练元组D按属性A进行划分,则A对D划分的期望信息为:
而信息增益即为两者的差值:
对于计算机病毒的检测分类可以利用ID3算法,首先计算整个训练集的信息熵,然后计算训练集按照不同的属性进行划分的期望信息,当期望信息最小的时候的信息增益最大,也就是说决策树的节点是以该属性进行分裂的,然后依次类推即可构造病毒分类的决策树。
相比贝叶斯算法,决策树的优势在于构造过程中不需要任何的参数设置,因此决策树更偏重于探测式的知识发现。
决策树的思想贯穿着我们的生活方方面面,人们在生活中的每一个选择都是输的一个分支节点,只不过生活是一根走不到尽头的决策树,而一般的问题的决策结论是正确或者错误。
举个例子说明决策树,比如给寝室的哥们介绍对象时需要跟人家讲明女孩子的如下情况:
E.在众多属性对于训练集的信息熵之中取最小的,这样信息增益最大,信息增益最大代表着信息的纯度越高,这样的分类越有效。
F.然后完成了一次属性的分裂,之后的递归。
C4.5算法:
ID3算法存在一个问题,就是偏向于多值属性,例如,如果存在唯一标识属性ID,则ID3会选择它作为分裂属性,这样虽然使得划分充分纯净,但这种划分对分类几乎毫无用处。ID3的后继算法C4.5使用增益率(gain ratio)的信息增益扩充,试图克服这个偏倚。
A.家是哪里的。
B.人脾气如何
C.人长相如何
D.人个头如何
OK,先举这几个,以上4个条件便是一个实例。然后男孩的决定策略便是决策树,比如说寝室的哥们的要求是:家北京的,脾气温柔的,长相一般,个头一般。那么这个决策树变构造成了。
以上便是一个决策树,实例的每一个特征在决策树中都会找到一个肯定或者否定的结论,至于每一个节点的权重还需要以后在学习中获得,可以根据不同的权重将节点排序,或者每个节点带一个权重。
具体的计算过程如下:
A.将训练集S分为1 ......N个最终类别,对于病毒检测为2个类别,是病毒,不是病毒
B.计算S的总信息熵INFO(S),改值等于最终类别的各自信息量和几率质量函数的乘积,即每一个类别所占训练集的比例乘以该比例的对数值取负,然后加和。
C.确定用来进行分类的属性向量V1,V2....Vn
2、属性是离散值且要求生成二叉决策树。此时使用属性划分的一个子集进行测试,按照“属于此子集”和“不属于此子集”分成两个分支。
3、属性是连续值。此时确定一个值作为分裂点split_point,按照>split_point和<=split_point生成两个分支。
构造决策树的关键性内容是进行属性选择度量,属性选择度量是一种选择分裂准则,是将给定的类标记的训练集合的数据划分D“最好”地分成个体类的启发式方法,它决定了拓扑结构及分裂点split_point的选择。
C4.5算法首先定义了“分裂信息”,其定义可以表示成:
其中各符号意义与ID3算法相同,然后,增益率被定义为:
C4.5选择具有最大增益率的属性作为分裂属性,其具体应用与ID3类似,不再赘述。
D.计算每一个属性向量对应的该属性向量对训练集的信息熵INFO(S)Vi,比如对应的属性Vi将训练集分为了M类,那么改值等于在该属性划分下的某一类值出现的概率乘以对应的该值所在的集的信息熵。改值所在的集的信息熵再套公式发现等于最终分类在Vi属性划分下的某一个类里的概率值乘以该概率值的对数值取负。表述的有些复杂,最好看公式。
构造决策树的关键步骤是分裂属性。所谓分裂属性就是在某个节点处按照某一特征属性的不同划分构造不同的分支,其目标是让各个分裂子集尽可能地“纯”。尽可能“纯”就是尽量让一个分裂子集中待分类项属于同一类别。分裂属性分为三种不同的情况:
1、属性是离散值且不要求生成二叉决策树。此时用属性的每一个划分作为一个分支。
常用的有ID3算法和C4.5算法
从信息论知识中我们直到,期望信息越小,信息增益越大,从而纯度越高。所以ID3算法的核心思想就是以信息增益度量属性选择,选择分裂后信息增益最大的属性进行分裂。下面先定义几个要用到的概念。
设D为用类别对训练元组进行的划分,则D的熵(entropy)表示为:
其中pi表示第i个类别在整个训练元组中出现的概率,可以用属于此类别元素的数量除以训练元组元素总数量作为估计。熵的实际意义表示是D中元组的类标号所需要的平均信息量。
现在我们假设将训练元组D按属性A进行划分,则A对D划分的期望信息为:
而信息增益即为两者的差值:
对于计算机病毒的检测分类可以利用ID3算法,首先计算整个训练集的信息熵,然后计算训练集按照不同的属性进行划分的期望信息,当期望信息最小的时候的信息增益最大,也就是说决策树的节点是以该属性进行分裂的,然后依次类推即可构造病毒分类的决策树。