1决策树概述
决策树是一个分类算法
决策树既能做分类也能做回归
根据年龄性别划分是否喜欢打篮球
age根节点
is male 下面还有分支还没有结束-非叶子节点
最后蓝色圈最后一个-叶子节点
分支就是叉
决策树的构建
2熵原理解读
如果有两个队列
A=[1,2,3,1,1,4,5]
B=[1,1,1,1,1,1,2]
A的不纯度比较大,A的熵比较大
B纯度比较高,熵值比较低
下图是一个log函数,如果p(a)=0.1 log(pa)就是比较大负值,
上面列A中各参数概率都比较低log(p)就会得到很大负值,负号就是一个很大的正值,A集合熵值比较大。
如果内部种类比较多熵值比较大
gini系数和熵值计算方式相似,p越大,gini系数比较小比较纯
3决策树构造
关于当天天气状况考虑是否要打球
1.第一步构造决策树
关于熵值,在play中9次打球,5次不打球,因此熵为上图计算公式0.940,对四个属性都进行尝试
如果outlook根节点,下图是熵值计算方式。
4信息增益
3原始数据把outlook当根节点0.940下降到0.693,熵值下降,纯度上升,分类好了
信息增益越大越好
谁当第二个节点,这个问题就像递归问题,在进行一次之前的划分计算。
5信息增益率
如果之前分类中将id也作为分类的方法,就是1,2,3、、、14。他每个节点只有一个参数,那么熵值就为0。信息增益就是最大的。那么如何解决这个问题呢。这里存在分类数很多,但每个分类样本很少。这时要信息增益率
信息增益/自身信息增益
比如id为1-14,自身信息增益如下
叶子结点h(t)当前叶子结点的熵值或基尼系数值,希望叶子接单纯度比较大,希望评价函数越小越好,比如有个叶子[1,1,1,2],那么4就是权重值,权重值乘熵值,希望评价函数越小越好
计算左右子树熵值,要竟可能小
6决策树剪枝
决策树构建后要高度最矮的决策树 ,防止过拟合。这时要剪枝的操作。
预剪枝变建树变剪枝,比如设定深度3,到3后就不会再继续分裂。,min-sample比如设定小于50就要停止
后剪枝,构建完了再进行裁剪,指定如上图式子。叶子CT是评价函数,叶子节点越多觉得也是不好的。a越大表示叶子节点个数比较关键,如下图计算最上一个红圈,得到的值为0.03+0.03+0.444*3可以得到损失值,后续要加节点数和a积。
7随机森林
随机森林构造出了一片树,最终结果是众数或平均值。随机是不使用全部样本,随机按一定比例又放回选择样本。
第二重随机性,样本已经随机选课,特征也可以随机选,取随机特征个数