机器学习十讲(四)
模型误差的来源
-
训练集D={xi,yi}ni=1D={xi,yi}i=1n由函数ff产生
-
假设空间HH中理论上最好的函数为fˆf^
-
用训练集DD得到的函数为f∗=argmaxf∈HL(w)f∗=argmaxf∈HL(w)
-
逼近误差:模型空间与ff的距离
-
估计误差:训练到的函数与模型空间最好的函数的距离
-
假设单个分类器误差pp分类器之间独立,TT个分类器采用投票进行预测,得到集成模型HH
-
集成分类器误差为
e(H)=∑k≤T2ckTpT−k(1−p)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)=1T∑Tt=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(yi≠ht(xi))∑ni=1wtiεt=∑i=1nwitI(yi≠ht(xi))∑i=1nwit
- 计算htht的权重αt=12ln(1−εtεt)αt=12ln(1−εtεt)
- 更新样本权重wt+1←wt+1⋅e−αtyiht(xi)Ztwt+1←wt+1⋅e−αtyiht(xi)Zt
- 返回集成模型H(x)=∑Tt=1αtht(X)H(x)=∑t=1Tαtht(X)
-
理论上随着弱分类器数目TT的增大,泛化误差上界也会增大。经验性结果表明,即是TT很大也不容易过度拟合。