03 | 分类回归树与随机森林


一、连续值和缺省值的处理

1.1 连续值

处理数据中的连续值,如下图的含糖率:

image-20200213074217427

基本思路:连续属性离散化

常见做法:二分法

  • n个属性形成n-1个候选区域
    • 1-17个🍉,含糖率有17个值
    • 划分为16个区域
    • 每个区域的中点作为划分点
  • 把候选区域当作离散值处理,寻找最佳划分
    • 根据最佳属性选择方法选取最优属性

1.2 缺省值

属性缺失的现象:

  • 只使用属性没有缺失的样本会造成浪费
  • 使用它会产生两个问题:
    • 如何进行划分属性的选择(缺失属性怎么算?)
    • 给定划分属性,若样本在该属性上值缺失,如何划分(缺失的属性怎么划分)

基本思路:样本赋权(解决问题一),权重划分(解决问题二)

1.2.1 样本赋权

仅通过无缺失值的样例判断划分样本属性的优劣

![image-20200213075432835](/Users/xuepipi/Library/Application Support/typora-user-images/image-20200213075432835.png)

  • 以属性色泽为例,该属性无缺失值的样本例子集\(\widetilde{D}\)包含14个样本,信息熵为

\[Ent(\widetilde{D})=-\sum_{k=1}^{2} \widetilde{p_k} log_2 \widetilde{p_k} \]

  • \(\widetilde{D^1},\widetilde{D^2},\widetilde{D^3}\)分别表示在色泽上取值为"青绿"、“乌黑”、“浅白”的样本子集,求得\(Ent(\widetilde{D^1})、Ent(\widetilde{D^2})、Ent(\widetilde{D^3})\)划分信息熵

  • \(\widetilde{D}\) 计算信息熵增益

\[Gain(\widetilde{D},color)=Ent(\widetilde{D})-\sum_{v=1}^3 \widetilde{r_v}Ent(\widetilde{D^{v}}) \]

  • \(D\)计算信息熵增益,\(\rho\)为无缺失样例的占比

\[Gain(D,color)=\rho Gain(\widetilde{D},color) \]

1.2.2 权重划分

根据上述方式可计算所有属性的信息熵增益

image-20200213082531555

解说员:

  • 有属性的就进,别控制
  • 没属性的分权进如下一个分支,以纹理属性为例,有该属性样本的权重是1,现在变成了\(\frac{5}{7},\frac{5}{15},\frac{3}{15}\)
  • 具体上述这些数字是样本中各纹理类型的概率控制

1.3 从树到规则

一颗决策树对应一个规则

每个从根结点到叶节点的分支路径对应一个规则

优点:

  • 改善可理解性
  • 提高泛化能力
image-20200213083404440

二、回归树模型

2.1 回归树模型

回归树模型的含义:

  • 对空间划分,跟分类一个样儿
  • 对每一个空间取平均值

2.2 回归树的构建方法

假设一个回归问题,预估结果\(y\epsilon R\),特征向量\(X=[x_1,x_2,...,x_p]\epsilon R\),回归树构建的步骤如下:

  • 把特征区域X切分成J个没有重叠区域的\(R_1,...,R_J\)

  • 区域\(R_j\)的每个样本我们都给一样的预测结果

    \[\widetilde{y}_{R_j} = \frac{1}{n}\sum_{j\epsilon R_j}y_j \]

\[RSS=\sum_{j=1}^J \sum_{i\epsilon R_j}(y_i-\widetilde{y}_{R_j})^2 \]

  • 该函数最小化探索的过程计算量非常大,因此采用探索式的递归二分来解决这个问题

2.2.1 递归二分法

  • 自顶向下贪婪式的递归方案
    • 自顶向下:从所有样本开始,不断从当前位置把样本切分到两个区间里
    • 贪婪:每一次划分只考虑当前最优,不回头考虑之前的划分
  • 选择切分的维度(特征)\(x_j\)以及切分点s使得划分后的RSS结果最小

\[R_1(j,s)=\{x|x_j<s\} \]

\[R_2(j,s)=\{x|x_j>=s\} \]

\[RSS = \sum_{x_i\in R_1(j,s)}(y_i-\widetilde{y}_{R_1})^2+\sum_{x_i\in R_2(j,s)}(y_i-\widetilde{y}_{R_2})^2 \]

问题:如何选择回归树的切分维度和切分点?

解说员:可能切分维度和切分点按之前章节所说

  • 切分点:
    • 连续值的处理(猜测)
    • 构建模型求最值:设切分点为\(x\),求得对应的RSS,然后再求最值(接着猜测)
  • 属性:令RSS最小的属性(猜测)

2.2.2 回归树剪枝

回归树的充分增长可能有过拟合的风险

解决方法:添加正则化项

考虑剪枝后得到的子树\(\{T_{\alpha}\}\),其中\(\alpha\)是正则化项的系数,当固定一个\(\alpha\)时,最佳的\(T_{\alpha}\)就是使得下式值最小的子树。

\[\sum_{m=1}^{|T|}\sum_{x_i\in R_m}(y_i-\widetilde{y}_{R_m})+\alpha|T| \]

  • \(|T|\)是回归树子节点的个数————不想让树那么复杂
  • \(\alpha\)可通过交叉验证去选择

三、随机森林

3.1 Bagging

3.1.1 Bootstraping

  • 依靠自己的资源,有放回的抽样方法
  • 估计统计量方差——进行区间估计

具体步骤:

  • 采用重采样技术从原始原始样本抽取一定量的样本,允许重复抽样
  • 根据抽出的样本计算给定的统计量\(T\)
  • 重复N次,得到N个\(T\)
  • 计算N个统计量的样本方差,得到统计量方差

说明:

  • 在小样本时效果较好
  • 通过对方差的估计可构建置信区间,运用范围得到进一步提升

3.1.2 Bagging

使用Bootstraping的思想

image-20200213160832959

Bagging降低过拟合风险,提高泛化能力

令输入样本集为\(D=\{(x_1,y_1),(x_2,y_2),...,(x_m,y_m)\}\),步骤:

  • 对于\(t=1,2,3,...,T\):对训练集进行第t次采样,共采m次,得到包含m个样本采样集\(D_m^{(t)}\)

  • 用采样集\(D_m^{(t)}\)训练第t个基学习器\(G^{(t)}(x)\)

  • 利用学习器决策

    • 分类:T个学习器投出最多票数的类别作为最终类别
    • 回归:T个学习器得到的结果进行算数平均得到模型的输出

3.2 随机森林

RF核心思想是Bagging,本质是:Bagging+CART

令输入样本集为\(D=\{(x_1,y_1),(x_2,y_2),...,(x_m,y_m)\}\),步骤:

  • 对于\(t=1,2,3,...,T\):对训练集进行第t次采样,共采m次,得到包含m个样本采样集\(D_m^{(t)}\)

  • 用采样集\(D_m^{(t)}\)训练第m个决策树模型\(G_m^{(t)}(x)\)在训练决策树模型的节点时,在所有特征中选取一部分样本特征,在这些随机选择的部分样本特征中选择一个最优的特征来做决策树的左右子树划分

  • 利用T个学习器(决策树)决策

    • 分类:T个学习器投出最多票数的类别作为最终类别
    • 回归:T个学习器得到的结果进行算数平均得到模型的输出


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM