机器学习十讲(四)

模型误差的来源

  • 训练集D={xi,yi}ni=1D={xi,yi}i=1n由函数ff产生

  • 假设空间HH中理论上最好的函数为fˆf^

  • 用训练集DD得到的函数为f=argmaxfHL(w)f∗=arg⁡maxf∈HL(w)

  • 逼近误差:模型空间与ff的距离

  • 估计误差:训练到的函数与模型空间最好的函数的距离

  • 假设单个分类器误差pp分类器之间独立,TT个分类器采用投票进行预测,得到集成模型HH

  • 集成分类器误差为

 

e(H)=kT2ckTpTk(1p)ke(H)=∑k≤T2cTkpT−k(1−p)k

 

  • T=5,p=0.1T=5,p=0.1,e(H)0.01e(H)≤0.01,用五个90%的模型组合起来就能上升到99.9%(相互独立)

  • 核心问题:如何选择节点属性和属性分割点?

  • 不纯度:表示落在当前节点的样本类别分布的均衡程度

  • 节点分裂后,节点不纯度应该更低(类分布更不均衡)

  • 选择特征及对应分割点,使得分裂前后的不纯度下降最大

随机森林:独立思考的重要性

  • 最典型的BaggingBagging算法:“随机”是其核心,“森林”意在说明它是通过组合多棵决策树来构建模型
  • 主要特点:
    • 对样本进行有效放回抽样
    • 对特征进行随机抽样
  • 应用场景广泛:例如市场营销、股票市场分析、金融欺诈检测、基因组数据分析和疾病风险预测
  • 算法流程
    • 输入:训练集DD,特征维度dd,随机选取的特征数mm,决策树算法hh,树的数量TT
    • fort=1,...,Tfort=1,...,T
      • 从训练集DD中有放回地抽样nn个样本,记为子集DtDt
      • dd个特征中随机选取mm个特征
      • 使用决策树算法,使用DtDt中选择的mm个特征训练一棵决策树ht(x)ht(x)
    • 输出:分类:H(x)=majority_vote({ht(x)}Tt=1)H(x)=majority_vote({ht(x)}t=1T);回归:H(x)=1TTt=1ht(x)H(x)=1T∑t=1Tht(x)
  • 假设单棵决策树的方差为σ2(x)σ2(x),任意两颗决策树之间的相关性为ρ(x)ρ(x),随机森林一共由TT棵决策树组成,则集成的随机森林模型的方差var(x)var(x)为

 

var(x)=ρ(x)σ2(x)+1ρ(x)Tσ2(x)var(x)=ρ(x)σ2(x)+1−ρ(x)Tσ2(x)

 

  • AdaBoostAdaBoost基本思想:通过改变样本权重串行地训练多个基分类器

  • 每个基分类器带权重样本集下进行训练

  • 根据其在训练样本中的加权误差来确定基分类器模型的权重

  • 后一个分类器更加关注前一个分类器分错的样本

  • 算法流程

    • 初始化样本权重w0=(1n,...,1n)w0=(1n,...,1n)
    • fort=1,...Tfort=1,...T
      • 根据当前样本权重,训练基分类器htht
      • 计算htht的加权误差εt=ni=1wtiI(yiht(xi))ni=1wtiεt=∑i=1nwitI(yi≠ht(xi))∑i=1nwit
      • 计算htht的权重αt=12ln(1εtεt)αt=12ln(1−εtεt)
      • 更新样本权重wt+1wt+1eαtyiht(xi)Ztwt+1←wt+1⋅e−αtyiht(xi)Zt
    • 返回集成模型H(x)=Tt=1αtht(X)H(x)=∑t=1Tαtht(X)
  • 理论上随着弱分类器数目TT的增大,泛化误差上界也会增大。经验性结果表明,即是TT很大也不容易过度拟合。

posted @ 2021-01-29 08:02  小赵不吃溜溜梅  阅读(87)  评论(0编辑  收藏  举报