ESL第九章 加性模型、树和相关方法 backfitting/加性逻辑回归、成本复杂度剪枝/基尼系数/各种问题扩展/ROC、PRIM、MARS/反射对/R方、层次混合专家、缺失数据/【完全】随机缺失

目录

  • 9.1 广义加性模型
      • 9.1.1 拟合可加模型
      • 9.1.2 例子:加性逻辑回归
      • 9.1.3 总结
  • 9.2 基于树的方法
      • 9.2.1 背景
      • 9.2.2 回归树
      • 9.2.3 分类树
      • 9.2.4 其他问题
      • 9.2.5 垃圾邮件例子
  • 9.3 耐心规则归纳法PRIM: Bump Hunting
      • 9.3.1 垃圾邮件例子
  • 9.4 多变量自适应回归样条MARS
      • 9.4.1 垃圾邮件例子
      • 9.4.2 模拟数据例子
      • 9.4.3 其他问题
  • 9.5 层次混合专家
  • 9.6 缺失数据
  • 9.7 计算考虑

9.1 广义加性模型

  • P296 和第五章基的扩张不同的是,这里采用散点图光滑器scatterplot smoother(三次光滑样条、核光滑器等)进行,并提供同时估计所有 p p p个函数的方法
  • P296 链接函数link function,通过链接函数让条件均值和可加函数相关联。书上列举了一些链接函数
  • P297 广义线性模型,对于不同的特征,可能有不同的处理方式,例如可能糅合非参非线性函数和参数线性函数、也可能以某些类别变量为条件的、两个特征组合的非线性函数,等等,非常灵活

9.1.1 拟合可加模型

  • P297 用三次光滑样条的损失来优化,可以得到每一个特征的 f f f都是以feature为结点的分段三次样条,和第五章结论一致
  • P298 上述问题有唯一解的条件
  • P298 "backfitting"算法:一个个特征迭代轮流优化. backfitting是逐块Gauss-Seidel算法,见习题9.2(第2问没做)
  • P299 对于逻辑回归和其他广义加性模型,用backfitting过程轮流优化最大似然函数
  • P335 习题9.1 光滑矩阵和局部线性回归会保持拟合的线性部分(先用线性回归拟合,得到 y ^ \hat y y^,然后 S y ^ = y ^ \bm S \hat y = \hat y Sy^=y^,没做)

9.1.2 例子:加性逻辑回归

  • P300 加性逻辑回归的local scoring算法,IRLS+backfitting
  • P301 垃圾邮件例子中对长尾分布的数据进行对数变换
  • P304 二分类问题当两种错误的惩罚不同时,对训练完的决策阶段的阈值采用 L 01 / ( L 01 + L 10 ) L_{01}/(L_{01}+L_{10}) L01/(L01+L10). 进一步,可以在训练的时候就引入不同惩罚权重
  • P304 训练完广义加性模型之后,应该检查一下加入交叉项后是否显著性提高拟合.这可以通过插入一些或全部的显著特征来“手动”完成,或通过MARS过程自动完成

9.1.3 总结

  • P304 加性模型扩展线性模型,更灵活,同时保持了大部分的可解释性,backfitting过程简易,允许对于每个输入特征选择合适的拟合方法
  • P304 加性模型对于特征太多的大数据挖掘难用. 有不少改进,包括BRUTO结合backfitting和输入选择、COSSO引入lasso类惩罚等. 前向逐步方法forward stagewise approach如boosting对于大型问题更有效

9.2 基于树的方法

9.2.1 背景

9.2.2 回归树

  • P307 直接用最小二乘找划分特征和阈值,阈值很好找。所以把每个特征都扫描一遍,就完事了
    在这里插入图片描述

在这里插入图片描述
以下是wiki(仔细推导一下,会发现两者类似,就相差左右节点样本个数 ∣ R 1 ∣ , ∣ R 2 ∣ |R_1|, |R_2| R1,R2
在这里插入图片描述

  • P308 一种控制复杂度的方法是只有最小二下降到超过阈值,才会划分,但是这太目光短浅
  • P308 成本复杂度剪枝cost-compexity pruning:用叶结点个数衡量复杂度。在xgboost中,除了叶节点个数,叶结点预测值组成的向量二范数也是复杂度惩罚之一(当然,这可能是出于boosting的考虑)
  • P308 如何选择正则惩罚系数 α \alpha α最弱连接剪枝weakest link pruning方法:逐步合并最小二乘增长最小的中间结点(看书上公式),直到根。得到子树序列,可以证明,这条序列,一定包含用成本复杂度剪枝的结果 T α T_\alpha Tα. 对 α \alpha α的估计可以采用5折或10折交叉验证

9.2.3 分类树

  • P308 划分准则中,信息熵和Gini系数可微分,分类错误率不可微分,算是前两个的一个好性质。此外,这两者比分类错误率要好,因为前两者对结点的概率更敏感,这一说明也可参考PRML14章. 所以,当生成一棵树时,应使用基尼指数或者交叉熵.为了引导成本复杂度剪枝,三种衡量指标的任意一个都可以使用,但一般地是采用误分类误差率.
  • P310 基尼系数在依概率随机分类而不是硬分类时,表示期望训练误差,此外,如果进行one-hot编码,则某个位置取值方差为 p ^ ( 1 − p ^ ) \hat p(1-\hat p) p^(1p^),所有类相加得到基尼系数

9.2.4 其他问题

  • P310 无序类别变量:类别特征,如果有 q q q个无序取值,那么想真正的划分,存在 2 q − 1 − 1 2^{q-1}-1 2q11种可能. 但如果输出是0-1二类,则可以简化。依据1类中类别数量比例排序,然后把它当作有序. 可以证明,该方法给出了交叉熵和基尼系数下的最优分割. 该方法也在连续输出配上均方误差下成立. 特征的无序取值通过输出均值升序排列。多类输出则没有这样的简化. 此外,划分算法(决策树?)趋向选择有多个取值的无序特征;选择数量也指数级,如果无序特征数过多,会导致严重的过拟合
  • P310 损失矩阵loss matrix:分类问题中为了考虑到不同类不同的误分损失,引入损失矩阵. 为了与之呼应,Gini系数修改成 ∑ k ≠ k ′ L k k ′ p ^ m k p ^ m k ′ \sum_{k\neq k'} L_{kk'} \hat p_{mk} \hat p_{mk'} k=kLkkp^mkp^mk,也即随机分类的期望损失. 该修改方式对多分类有效,对二分类无效. 对二分类,更好的方式是对第 k k k类观测带上权重 L k k ′ L_{kk'} Lkk,但多分类没法用啊,除非 L k k ′ L_{kk'} Lkk k ′ k' k无关,则可以用。观测权重可以看作是改变了类别先验(不理解),叶结点的预测为 k ( m ) = arg ⁡ min ⁡ k ∑ l L l k p ^ m l k(m)=\arg\min_k \sum_l L_{lk}\hat p_{ml} k(m)=argminklLlkp^ml
  • P311 特征缺失值:决策树中两种更好方式。(1)对于类别特征,可以造missing当作一个取值. (2)构造代理变量surrogate variables,在分割时,仅仅考虑该变量未缺失的观测,选择好特征和分割点后,构造代理变量和分割点的列表,表中第一代理是对数据划分的最优模仿,第二是次优的,以此类推。代理分割探索特征之间的相关性来试图减轻丢失数据的影响.缺失特征和其他特征的相关度越高,信息丢失越小
  • P311 多叉树:一般不是一个好策略,问题在于分得太快,以至于下一层没有充分多数据(这有点牵强啊,多叉树是不是目光会更长远一些)
  • P312 其他建树过程:ID3,C4.5,C5.0
  • P312 线性组合分割:斜划分、权重光滑性与层次混合专家模型的导出
  • P312 树的不稳定性树的一个主要问题是高方差,数据集小的扰动可能造成非常不同的划分,从而解释性不稳定。原因是建树的层次性导致的. Bagging可以降低方差
  • P312 缺乏光滑:对于回归问题尤其受影响,MARS可以看作是CART的改进,缓解这一问题
  • P313 捕获加性结构的困难:树难以建模加性结构。书上给的例子是 Y = c 1 I ( X 1 < t 1 ) + c 2 I ( X 2 < t 2 ) + ϵ Y=c_1 I(X_1 < t_1) + c_2 I(X_2 < t_2) + \epsilon Y=c1I(X1<t1)+c2I(X2<t2)+ϵ,如果无关特征数量很多,则需要划分很多偶然的划分来重建这个结构。原因仍然是“二叉”树造成(我估计是贪心、目光短浅的意思?)。MARS为了捕获加性结构,放弃树

9.2.5 垃圾邮件例子

  • P314 敏感度sensitivity:真实为患病中预测为患病的概率;特异度specificity:真实为未患病中预测为未患病的概率。医学分类中常用(敏感度似乎就是召回率,特异度有点像是0类召回率)
  • P317 P-R曲线和ROC曲线不同! ROC曲线纵轴为敏感度,横轴为特异度(西瓜书为1-特异度,并叫作假正例率)
  • P317 AUC也叫做c统计量c-statistics。有趣的是,可以证明,对于两个群体预测得分差异的中位数,AUC等于Mann-Whitney U统计量,或者Wilcoxon秩和检验
  • P317 判断新进特征是否对预测显著时,AUC不好用。新特征可能对模型偏差deviance改变很大,但AUC不怎么增长

9.3 耐心规则归纳法PRIM: Bump Hunting

  • P318 耐心规则归纳法patient rule induction method(PRIM)算法没接触过,细节翻书。和决策树不同的是,选择具有高平均预测值的box区域,也即选择目标函数最大值,称为bump hunting. 不是采用二叉树,是层次化的不断收缩,而后如果能让均值提升,再增长,称为pasting。找到最好的box后,把这些点剔除,然后再重复上述过程
  • P320 PRIM相比CART,优势在于耐心patience,决策树切分数据过快,数据过早耗尽。所以PRIM能帮助自上而下的贪心算法找到更好的解。书上稍理论地分析了两者切分速度对比

9.3.1 垃圾邮件例子

9.4 多变量自适应回归样条MARS

  • P321 多变量自适应回归样条Multivariate Adaptive Regression Splines(MARS) 是回归的自适应过程,非常适合高维问题算法没接触过,细节翻书。可以从两个角度来理解,可以看成是逐步线性回归的推广,也可以看成是为了提高CART在回归中的效果而进行的改进
  • P322 反射对reflected pair,例如 ( x − 0.5 ) + (x-0.5)_+ (x0.5)+ ( 0.5 − x ) + (0.5 - x)_+ (0.5x)+,对每个特征的每个特征值 x i j x_{ij} xij都构造反射对
  • P322 用这 2 N p 2Np 2Np个反射对函数,或其两个或多个交叉项,当作基,进行逐步线性回归。成对引入基
  • P322 基是不断往里乘进去的!
    在这里插入图片描述
  • P324 最后得到一个大模型,基本上是过拟合的,所以还会再反向删除。删到剩多少项,可以用交叉验证决定。为了节省计算,MARS采用了广义交叉验证GCV。回顾第7章P244。其中自由度包括模型项数和选择最优节点位置的参数个数,理论证明和实际拟合结果表明分段线性回归中每选择一个结点,应该额外增加2个有效参数,当模型仅仅是加性时,为2个. 更精细的公式翻书
  • P325 为什么如此设计基函数,原因:(1)基连乘只有一小部分区域有值,容易建立回归曲面;(2)降低计算复杂度(这一块细节没看懂)(3)高阶项只有在低阶项在模型中时,才会层次化建立。降低高阶项复杂度。虽然这么搜索不一定正确,但是一个合理的假设
  • P326 构造模型时,约束每个特征只能出现一次,预防输入变量的高阶幂形成,导致特征空间的急剧变化。因为幂可以用分段线性函数近似。此外,MARS在交叉项的阶数上可以设置上界,例如交叉项乘积项不允许超过2

9.4.1 垃圾邮件例子

9.4.2 模拟数据例子

  • P327 R平方

9.4.3 其他问题

  • P328 MARS用于分类:把二分类当回归做;多分类则当多回归做,采用共同的基函数,但存在4.2节P105说的掩盖问题。更好做法是12.5节的optimal scoring。此外,可以用一种被称为PolyMARS的MARS混合,处理分类,采用了多个logistic框架,用二次近似找下一对基
  • P328 MARS和CART关系:通过两步修改,(1)分段线性基函数改成阶跃函数;(2)模型中的项与候选项相乘时,替换成交叉项,并不允许与其他项交叉。此时MARS能变得和CART一样。从第二点能看出,CART一个结点可能不会被分割多次,从而导出了二叉树结构;但另一方面,这也使得CART很难建模加性模型。MARS放弃树结构来捕获加性影响
  • P329 混合输入:对于类别变量,MARS考虑分成两块的所有分割(这复杂度不是爆炸。。)

9.5 层次混合专家

  • P329 层次混合专家The hierarchical mixtures of experts(HME):树的软划分版本。叶结点叫做专家experts,非叶节点叫做门控网络gating network
  • P330 对于二分类,如果门控网络系数趋于 + ∞ +\infty +,在考虑上截距项,这就变成了硬分类决策树
  • P331 参数优化还是要用EM,这里隐变量为选哪个分支,应该还是要算隐变量的后验概率
  • P332 HME有一个问题是如何找树结构,这是一个挑战。一种方式是用一定深度的CART产生的结构
  • P332 和HME很像的一个方法是潜类别模型latent class model,一般只有一层,结点或者潜在类别解释成表现出相似响应变量行为的个体的群体(细节不知道)

9.6 缺失数据

  • P332 随机缺失missing at random(MAR)完全随机缺失missing completely at random(MCAR)。这两个概念精确描述数据缺失的机制是否与观测值有关,进而分析缺失数据的机制是否使观测数据失真distorted the observed data. MCAR是比MAR强的假设。大部分填补方法依赖MCAR
  • P332 判断特征是否是MCAR,需要看数据收集的过程信息
  • P333 处理缺失值三个方法:(1)扔掉样本;(2)看具体模型具体处理,如CART中的代理分割surrogate splits,MARS和PRIM也用了相似方式,而在广义加性模型backfitting中,对某特征部分残差进行光滑拟合时,则忽略缺失样本,并把对应拟合值设为0,因为截距项已经把均值调成0了,从而0就是平均拟合值,这和第一种方法类似(3)训练前先填,补均值或者拿其他特征预测。拿其他特征做模型预测时,模型要灵活、自适应,并自身还要能处理缺失值,CART是填补的好选择
  • P333 填补会引入不确定性,可以通过多重填补,产生多个数据集,多次拟合。评估不确定性的方差。如果用CART填补,则多重填补可以通过在叶结点采样得到

9.7 计算考虑

  • P334 分析复杂度,广义加性模型和树能看个大概,MARS和HME不懂没细看。。

参考文献:
[1] Trevor Hastie, Robert Tibshirani, Jerome Friedman. The Elements of Statistical Learning, Second Edition
[2] ESL CN

你可能感兴趣的:(#,读书笔记,ESL,机器学习,数学,算法,决策树,数学,机器学习)