姓名:Jyx
描述:人工智能学习笔记
决策树
决策树(Desi)是一种有监督的学习模型,决策过程可以表达成一棵二叉树。类似于我们平时对物体进行分类的决策过程,每次根据一个属性对样本进行分类,知道达到终止条件,最后再根据一定的规则对树的叶子指定所属类。
最普通的决策树是将空间分成一个个超矩形,称为普通二进制分类树(Ordinary binary Classification Tree, OBCT),其它有分成超求体或者超多面体。
下图表达了一个典型的OBCT
对于决策树,设计时必须考虑如下问题
- 候选问题集, 该集合中的所有问题的答案必须能够把训练集分成不相交的两个完整的子集
- 分支准则,用于从候选问题集中选出最佳的候选问题进行分类
- 停止准则,用于在某一刻停止分支
- 分类准则,为每一个停止分支指定一个类
对于OBCT,
- 问题集
OBCT的问题一般为 xk≤αx_k \leq \alphaxk≤α,每个阈值α\alphaα为训练集提供了一组可能的拆分,对特定的训练集,其可能的拆分为样本的个数- 分支准则
分支准则一般描述为产生比父节点“更纯”的子集,或者说每个子节点中的样本都更好属于某一特定类
纯度的度量一般有以下几个方法:
- 信息熵
I(t)=−∑i=1MP(wi∣t)log2P(wi∣t),where P(wi∣t)表示在节点t下wi类发生的概率∇I(t)=I(t)−NtYNtI(ty)−NtNNtI(tN) I(\bf{t}) = -\sum_{i = 1}^MP(w_i|t)\log_2{P(w_i|\bf{t})}, where\ P(w_i|t)表示在节点t下w_i类发生的概率 \\ \nabla I(\bf{t}) = I(t) - \frac{N_{tY}}{Nt}I(t_y)-\frac{N_{tN}}{Nt}I(t_N) I(t)=−i=1∑MP(wi∣t)log2P(wi∣t),where P(wi∣t)表示在节点t下wi类发生的概率∇I(t)=I(t)−NtNtYI(ty)−NtNtNI(tN)
当每一个终止节点都特定的属于某一类时,I(t)I(t)I(t)取得最小值0(limx→0xlogx=0,1log1=0\lim \limits _{x \to 0}{x\log{x} = 0, 1\log{1} = 0}x→0limxlogx=0,1log1=0)。
- gini 不纯度, 这是sklearn CART的默认评价指标
KaTeX parse error: No such environment: align* at position 10: \begin{̲a̲l̲i̲g̲n̲*̲}̲ I_G(t) &= \…
同样当每一个终止节点都特定的属于某一类时,IG(t)I_G(t)IG(t)取得最小值0
- 错分率
所有在该分支中被错分的样本所占的比例
- 停止准则
以下都是可与选择,有时候会综合多种停止方法
3.1 ∇I(t)\nabla I(\bf{t})∇I(t)小于某个阈值TTT
3.2 终止分支的不纯度足够小
3.3 分支的数量达到指定的阈值
3.4 树的深度达到指定的阈值
- 分类准则
一般取取该分支内P(wi∣t)P(w_i|t)P(wi∣t)最大的wiw_iwi
回归树
回归树相当于分段函数,每段内取均值,利用候选集合内的数据方差作为不纯度的评价标准
决策树的缺点:
决策树的缺点:
1. 容易过拟合
2. 方差高。对噪声敏感,训练样本很微小的变化,都可能能引起决策树大的
解决方案:
随机森林通过bagging,
bagging :bagging进行放回采样,重复多次训练,平均多个模型来降低决策树方差,即随机森林
boosting : 集成多个学习模型,来提高准确度