发布时间:2023-04-11 15:30
(1)数据如何分割
分裂属性的数据类型分为离散型和连续性两种情况,对于离散型的数据,按照属性值进行分裂,每个属性值对应一个分裂节点;对于连续性属性,一般性的做法是对数据按照该属性进行排序,再将数据分成若干区间,如[0,10]、[10,20]、[20,30]…,一个区间对应一个节点,若数据的属性值落入某一区间则该数据就属于其对应的节点。
(2)如何选择分裂的属性
用信息增益表示分裂前后根的数据复杂度和分裂节点数据复杂度的变化值,计算公式表示为:
其中Gain表示节点的复杂度,Gain越高,说明复杂度越高。信息增益说白了就是分裂前的数据复杂度减去孩子节点的数据复杂度的和,信息增益越大,分裂后的复杂度减小得越多,分类的效果越明显。
节点的复杂度可以用以下两种不同的计算方式:
a)熵
熵描述了数据的混乱程度,熵越大,混乱程度越高,也就是纯度越低;反之,熵越小,混乱程度越低,纯度越高。 熵的计算公式如下所示:
其中Pi表示类i的数量占比。以二分类问题为例,如果两类的数量相同,此时分类节点的纯度最低,熵等于1;如果节点的数据属于同一类时,此时节点的纯度最高,熵 等于0。
b)基尼值
基尼值计算公式如下:
其中Pi表示类i的数量占比。其同样以上述熵的二分类例子为例,当两类数量相等时,基尼值等 于0.5 ;当节点数据属于同一类时,基尼值等于0 。基尼值越大,数据越不纯。
使用信息增益作为选择分裂的条件有一个不可避免的缺点:倾向选择分支比较多的属性进行分裂。为了解决这个问题,引入了信息增益率这个概念。信息增益率是在信息增益的基础上除以分裂节点数据量的信息增益,其计算公式如下:
表示分裂子节点数据量的信息增益
其中m表示子节点的数量,表示第ni个子节点的数据量,N表示父节点数据量,说白了, 其实是分裂节点的熵,如果节点的数据链越接近,该值越大;如果子节点越大,该值越大,信息增益率而就会越小,能够降低节点分裂时选择子节点多的分裂属性的倾向性。信息增益率越高,说明分裂的效果越好。
(3)什么时候停止分裂
(4)决策树的构建方法
根据决策树的输出结果,决策树可以分为分类树和回归树,分类树输出的结果为具体的类别,而回归树输出的结果为一个确定的数值。
决策树的构建算法主要有ID3、C4.5、CART三种,其中ID3和C4.5是分类树,CART是分类回归树,其中ID3是决策树最基本的构建算法,而C4.5和CART是在ID3的基础上进行优化的算法。
原理及代码实现:https://shuwoom.com/?p=1452
原理分析:https://blog.csdn.net/choven_meng/article/details/82878018