一、决策树
1、决策树
1.决策树是一种树形结构,其中每个内部节点表示在一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。
2.决策树的学习是以实例为基础的归纳学习
3.决策树学习采用的是自顶向下的递归方法,其基本方法是以信息熵为度量构造亦可熵值下降最快的树,到叶子节点处的熵值为零,此时每个叶节点的实例都属于同一类。
2、决策树学习算法的特点
1.决策树学习算法的最大优点是,它可以自学习,在学习的过程中,不需要使用者了解过多背景知识,只需要对训练实例进行较好的标注,就能够进行学习。
2.显示,属于有监督学习。
3.从一类无序(无规则)的事物(概念)中推理出决策树表示的分类规则。
3、决策树学习的生成算法
建立决策树的关键,即在当前状态下选择哪个属性作为分类依据。根据不同的目标函数,建立决策树主要有以下三种算法:
1.ID3 Iterative Dichotomiser
2.C4.5
3.CART :Classification And Regression Tree
二、信息增益
1、概念
1.当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵和条件熵和经验条件熵。
2.信息增益表示得道特征A的信息而使得类X的信息的不确定性减少的程度。
2、定义
特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即:
g(D,A)=H(D) - H(D|A)
显然,这就是训练数据集D和特征A的互信息。
3、基本记号
1.设训练数据集为D,|D|表示样本个数。
2.
3.
4.
4、信息增益的计算方法 (ID3)
1.计算数据集D的经验熵
2.计算经验条件熵
3.遍历所有特征,对于特征A:
(1)计算特征A的信息增益:g(D,A)=H(D) - H(D|A)
(2) 选择信息熵最大的特征作为当前的分裂特征
5、其他目标
1.信息增益率:gr(D,A)=g(D,A)/ H(A) (C4.5) 可以解决特征特别多,导致熵值下降最快 (如编号特征) 的问题
2.Gini系数:
可以看成是熵的近似
三、三种决策树的算法学习
1.ID3:
使用信息增益/互信息g(D,A)进行特征选择
取值多的属性,更容易使数据更纯,其信息增益越大
训练得到的是一颗庞大且深度浅的树:不合理
2.C4.5:信息增益率
gr(D,A)=g(D,A)/ H(A)
3.CART:基尼gini系数
一个属性的信息增益(率)/gini系数越大,表明属性对样本的熵减少的能力更强,这个属性使得数据由不确定性变成确定性的能力越强
四、决策树的评价
1.假定样本的总类别为K个。
2.对于决策树的某叶结点,假定该叶结点含有样本数目为n,其中第k类的样本点数目为nk,k=1,2,…K。
若某类样本nj=n而其他都为0,则称该结点为纯结点,Hp=0 最小
若各类样本数目都为n/K,则称该结点为均结点 Hu=lnK 最大
3.对所有的叶结点的熵求和,该值越小说明对样本的分类约精确
各叶节点包含的样本数目不同,可以使用样本数加权求熵和
4.评价函数
由于该评价函数越小越好,所有可以称之为‘损失函数’
五、决策树的过拟合
决策树对训练属于有很好的分类能力,但对未知的测试数据未必有好的分类能力,泛化能力弱,即可能发生过拟合现象.解决方法:
1.剪枝
三种决策树的剪枝过程算法相同,区别仅是对于当前数的评价标准不同。(信息增益、信息增益率、基尼系数)
剪枝总体思路:
1.由完全树T0开始,剪枝部分节点得到T1,再次剪枝部分结点得到T2…直到仅剩树根的树Tk。2.在验证数据集上对这K个数分别评价,选择损失函数最小的树Ta
剪枝系数的确定:
1.假定当前对以r为根的子树剪枝:剪枝后,只保留r本身而删掉所有的叶子。2.考察以r为根的子树:剪枝后代损失函数:C_a®=C®+a 剪枝前的损失函数:C_a®=C®+a|R_leaf|
令二者相等 得到
a即为剪枝系数
剪枝算法:
对于给定的决策树T0:
1.计算内部所有结点的剪枝系数。
2.查找最小剪枝系数的结点,剪枝得决策树Tk。
3.重复以上步骤,直到决策树Tk只剩一个结点。
4.得到决策树序列T0T1T2…Tk。
5.使用验证样本集选择最优子树。
使用验证样本集选择最优子树的标准,可以使用评价函数:
六、随机森林与Bagging策略
1.Bagging的策略
1.bootstrap aggregation
2.从样本集中重采样(有重复的)选出n个样本
3.在所有属性上,对这n个样本建立分类器(ID3,C4.5,CART,SVM,Logistic回归等)
4.重复以上两步m次,即获得了m个分类器
5.将数据放在这m个分类器上,最后根据这m个分类器的投票结果,决定数据属于哪一类。
2.随机森林
随机森林在Bagging基础上做了修改
1.从样本集中用Bagging采用选出n个样本。
2.从所有属性中随机选择K个属性,选择最佳分割属性作为结点建立CART决策树。
3.重复以上两步,即建立了m棵CART决策树
4.这m个CART形成随机森林,通过投票表决结果,决定数据属于哪一类
3.随机森林与Bagging和决策树的关系
1.当然也可以用决策树作为基本分类器。
2.但也可以使用SVM,Logistic回归等其他分类器,习惯上,这些分类器组成的‘总分类器’仍然叫做随机森林
七、样本不均衡的常用处理方法
假定样本数目A类比B类多,且验证不平衡。
1.A类欠采样(效果较好)
Undersampling
1.随机欠采样
2.A类分割成若干子类,分别于B类进入ML模型
3.基于聚类的A类分割
2.B类过采样
Oversampling
避免欠采样造成的信息丢失
3.B类数据合成
Synthetic Data Generation
随机插值得到新样本(SMOTE)
4.代价敏感学习
Cose Sensitive Learning
降低A类权值,提高B类权值
八、总结
1.决策树/随机森林的代码清晰,逻辑简单,在胜任分类问题的同时,往往也可以作为对数据分布探索的首要尝试算法。
2.随机森林的集成思想也可以用在其他分类器的设计中。