决策树:
理解:
根节点包含样本全集。
其他每个节点对应一个测试属性。
叶子节点对应决策结果。
决策树的构建方法:
(1)生成节点
(2)判断D中样本是否全部属于同一类别C,若属于则将节点标记为
该类叶子节点,然后返回。
(3)判断属性A集合是否为空或则D样本在A属性上的取值相同,如果是
则将当前节点标记为叶子节点,其类型为D中最多的样本类。
(4)从属性中选出最优集,并对最优集中的每个值进行for循环:
生成一个节点分支。
如果样本D在当前属性最优集上的样本子集为空,那么将分支节点标记为叶子节点,
其类型为D中数量最多的类型。
否则,将样本D在当前属性最优集上的样本子集作为参数1,属性A中除当前最优集外的属性
作为参数2,作为函数递归。
总结:决策树是基于结构通过对属性的层层选则来对样本进行划分判断,其关键在于下一个节点属性
该如何选则,这就需要通过方法来选择最优的属性划分。
最优划分属性的选择:
(1)信息增益划分方法
根据信息增益来进行划分,信息增益越大则使用a属性进行划分的纯度就越大。
信息熵(Ent(D)):
理解:
Ent(D)值越小,样本集合D的纯度越高
计算方法:信息增益等于在一个样本集合中,每类样本所占的比例乘以这个比率的log2,
再对结果求反。
信息增益:
计算方法:
每个属性的信息增益等于该样本的信息熵减去该类属性每一种取值的信息熵乘以
该种属性为这种的比列之和。
总结:信息增益准则对可取值数目较多的属性有所偏好,故而存在这种不利的影响。
(2)4.5决策树划分方法
先从候选划分属性中找出信息增益水平高于平均值的属性,再从中选择增益率最高的。
增益率:每种属性的增益率等于该种属性的信息增益除以该属性的IV(a)。
IV(a):a属性的取不值时在样本中的占比乘以该占比求log2的和,再对取反。
(3)基尼指数Gini(D)的划分方法
理解:基尼指数反应了从数据集D中随机抽取的两个样本其类别标记的不一致的概率。基尼指数
越小则数据集D的纯度越高。
数据集D的计算方法:Gini(D)=1减去每类样本所占比例的平方的求和结果。
属性a的计算方法:Gini(D,a)=根据该属性有的种类求和(属性为a的样本所组成的数据集Dv的基尼指数乘以Dv在总的数据集上所占的
比列)
选择计算后基尼指数最小的属性作为最优划分属性。
剪枝处理:
理解:由于决策树在学习过程中存在决策分支过多学得太好,而导致的将自身训练数据的性质当成一般性质的
过拟合现象,需要去掉一些分支来降低此种情况的风险。
预剪枝和后剪枝:
预剪枝:就是在节点划分之前先判断该节点的划分是否能带来决策树泛化性能的提升。
优点:降低了过拟合的风险,显著减少了决策树的训练时间开销和测试时间开销。
缺点:存在决策树欠拟合的风险。
后剪枝:是在整个决策树形成之后对每个非叶子节点进行考擦,若将该节点划分为叶子节点能提高
整个决策树的泛化性能的话,则将该节点替换成相应的叶子节点。
判断泛化性能提升的方法:留出法
即预留一部分数据用作“验证集”,以进行性能评估。
剪枝处理方法:
预剪枝:
在利用信息增益准则对第一个属性进行选取之后,根据训练集中的比列将它假设为好瓜或则坏瓜,然后计算被
被划分正确的比例;再根据其类别在训练集中所占的比例来将其该属性的不同种类划分为好瓜还是坏瓜,
然后用验证集来再次计算划分的比例,每个比例与之前计算出的比例相比,若大于则允许划分,若小于或则等于
则停止划分。
后剪枝:
从下往上从左到右对决策树进行考察,将最下边的一个非叶子节点假设为根节点,然后根据它包含的训练样本的
比例将其设置为好瓜或则坏瓜,然后通过验证集验证他的精度,若有提高则同意剪枝,若没有提高则不同意剪枝。
连续值与缺失值:
连续值:由于连续属性的可取数目是不在有限的,所以不能直接对连续属性的可取值进行划分,但可通过二分法对连续值
进行处理。
连续值处理方法:首先将连续值从小到大排列,然后两两组合求地其中位值,然后将这些求得的中位值构成一个新的集合,
若原集合中有n个数,则新集合中有n-1个;将新的集合由小到大排列,挨个考察其按哪个位置划分时所
求得的信息增益最大,则求得信息增益最大的点就是划分点,求得的最大信息增益则为该属性的信息增益
,则原数据集小于等于该划分点的数据为一份,大于的为另一份。
缺失值:在现实任务中,存在某些属性的数据的部分缺失
(1)在属性缺失的情况下对属性进行划分
(2)给定划分属性,若有属性上的样本缺失该的划分方法
解决方法:
在计算信息增益的时候引入三个值:ρ(没有缺失该属性的样本个数除以该属性总的样本个数的值);Pk`(表示无缺失值子集的k类样本
在该属性无缺失值的样本中所占的比值);rv`(表示该属性无缺失值的可取属性的种类在该属性无缺失值的样本中所占的比值);
然后在计算信息熵时,将前面的计算方法中Pk换成Pk`,将相应的地方换成rv`,最后乘以ρ。
多变量决策树:
由于现实任务中真实分类边界比较复杂,必须使用很多段划分才能获得较好的近似值,使用多变量决策树可以实现斜划分边界。
未完待续。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。