提升方法
文章记录的内容是参加DataWhale的组队学习统计学习方法(第二版)习题解答过程中的笔记与查缺补漏!
参考解答地址: 提升方法。
1. 某公司招聘职员考查身体、业务能力、发展潜力这3项。身体分为合格1、不合格0两级,业务能力和发展潜力分为上1、中2、下3三级。分类为合格1 、不合格-1两类。已知10个人的数据,如下表所示。假设弱分类器为决策树桩。试用AdaBoost算法学习一个强分类器。
应聘人员情况数据表
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
---|---|---|---|---|---|---|---|---|---|---|
身体 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
业务 | 1 | 3 | 2 | 1 | 2 | 1 | 1 | 1 | 3 | 2 |
潜力 | 3 | 1 | 2 | 3 | 3 | 2 | 2 | 1 | 1 | 1 |
分类 | -1 | -1 | -1 | -1 | -1 | -1 | 1 | 1 | -1 | -1 |
解答:
解答思路:
- 列出AdaBoost算法;
- 采用sklearn的AdaBoostClassifier分类器,构建并训练得到强分类器;
- 自编程实现AdaBoost算法,并训练得到强分类器。
回顾一下 AdaBoost 算法,根据书中第156页算法8.1:
输入:训练数据集T={(x1,y1),(x2,y2),⋯,(xN,yN)},其中xi∈X⊆Rn,yi∈Y={−1,+1};弱学习算法;
输出:最终分类器G(x)。
(1)初始化训练数据的权值分布D1=(w11,⋯,w1i,⋯,w1N),w1i=1N,i=1,2,⋯,N(2)对m=1,2,⋯,M
(a)使用具有权值分布Dm的训练数据集学习,得到基本分类器Gm(x):X→{−1,+1}(b)计算Gm(x)在训练数据集上的分类误差率
em=N∑i=1P(Gm(xi)≠yi)=N∑i=1wmiI(Gm(xi)≠yi)(c)计算Gm(x)的系数
αm=12log1−emem这里的对数是自然对数。
(d)更新训练数据集的权值分布Dm+1=(wm+1,1,⋯,wm+1,i,⋯,wm+1,N)wm+1,i=wmiZmexp(−αmyiGm(xi)),i=1,2,⋯,N这里,Zm是规范化因子
Zm=N∑i=1wmiexp(−αmyiGm(xi))它使Dm+1成为一个概率分布。
(3)构建基本分类器的线性组合f(x)=M∑m=1αmGm(x)得到最终分类器
G(x)=sign(f(x))=sign(M∑m=1αmGm(x))
观察 Gm(x) 的系数 αm=12log1−emem,注意到 1−emem 是一个几率,回顾一下几率:
一个事件的几率(odds)是指该事件发生的概率与该事件不发生的概率的比值。如果事件发生的概率是 p,则该事件的几率是 p1−p,该事件的对数几率或 logit 函数是:logit(p)=p1−p
则 1−emem 表示 Gm(x) 正确分类这个事件(1−em)的几率,显然,Gm 的误差越小,其权重越大,而且当 em≤0 时,αm≤0,注意所有 αm 之和并不为1。再考察一下 wm+1,i:
对比数据集中 wmi=wmj 的样本,若 xi 被正确分类,xj 被错误分类,则 wm+1,jwm+1,i=e2αm=1−emem,即 wm+1,j=1−emem×wm+1,i。如果 em<12,则错误分类的样本的权重会扩大,而正确分类的样本的权重则会缩小。其实对于归一化因子 Zm 可以写为:
其中 A,B 分别为正确和错误分类的样本集合,从这个式子中也可以看出,错误分类的样本的权重被扩大了(当 em<12 )。当 em>12 时,则相反。
具体的过程参考这里。
2. 比较支持向量机、 AdaBoost 、Logistic回归模型的学习策略与算法
解答思路:
- 列出支持向量机的学习策略与学习算法
- 列出AdaBoost的学习策略与学习算法
- 列出Logistic回归模型的学习策略与学习算法
- 比较三者的学习策略与算法
本节内容来自这里。
支持向量机的学习策略与算法
根据书中第131页7.2.4节(合页损失函数)
对于线性支持向量机学习来说,其模型为分离超平面w∗⋅x+b∗=0及决策函数f(x)=sign(w∗⋅x+b∗),其学习策略为软间隔最大化,学习算法为凸二次规划。
线性支持向量机学习还有另外一种解释,就是最小化一下目标函数:N∑i=1[1−yi(w⋅xi+b)]++λ‖w‖2目标函数的第1项是经验损失或经验风险,函数
L(y(w⋅b+x))=[1−yi(w⋅xi+b)]+被称为合页损失函数,第2项是系数为λ的w的L2范数,是正则化项。
根据书中第142~143页7.4节(序列最小最优化算法)
SMO算法是一种启发式算法,其基本思路是:如果所有变量的解都满足此最优化问题的KKT条件,那么这个最优化问题的解就得到了。因为KKT条件是该最优化问题的充分必要条件。
整个SMO算法包括两个部分:求解两个变量二次规划的解析方法和选择变量的启发式方法。
综上所述:
- 支持向量机的学习策略:软间隔最大化、最小化由合页损失函数和正则化项组成的目标函数
- 支持向量机的学习算法:凸二次规划、SMO算法(序列最小最优化算法)
AdaBoost的学习策略与算法
根据书中第162页8.3节(AdbBoost算法的解释)
AdaBoost算法还有另一个解释,即可认为AdaBoost算法是模型为加法模型、损失函数为指数函数、学习算法为前向分步算法时的二类分类学习方法。
给定训练数据及损失函数L(y,f(x))的条件下,学习加法模型f(x)成为经验风险极小化即损失函数极小化问题:min定理8.3 AdaBoost算法是前向分步加法算法的特例。这时,模型是由基本分类器组成的加法模型,损失函数是指数函数。
综上所述:
- AdaBoost的学习策略:极小化通过加法模型组成的指数损失函数
- AdaBoost的学习算法:学习加法模型的前向分步算法
Logistic回归模型的学习策略与算法
根据书中第93页6.1.3节(模型参数估计)
Logistic回归模型学习时,对于给定的训练数据集T=\{(x_1,y_1), (x_2,y_2), \cdots, (x_N,y_N)\},其中x_i \in R^n,y_i \in \{0, 1\},可以应用极大似然估计法估计模型参数,从而得到Logistic回归模型。
根据书中第103页6.3节(模型学习的最优化算法)
Logistic回归模型、最大熵模型学习归结为以似然函数为目标函数的最优化问题,通常通过迭代算法求解。常用的方法有改进的迭代尺度法、梯度下降法、牛顿法或拟牛顿法。
综上所述:
- Logistic回归模型的学习策略:极大似然估计法
- Logistic回归模型的学习算法:改进的迭代尺度法、梯度下降法、牛顿法或拟牛顿法
比较支持向量机、 AdaBoost 、Logistic回归模型的学习策略与算法
学习策略 | 算法 | |
---|---|---|
支持向量机 | 软间隔最大化、最小化由合页损失函数和正则化项组成的目标函数 | 凸二次规划、SMO算法(序列最小最优化算法) |
AdaBoost | 极小化通过加法模型组成的指数损失函数 | 学习加法模型的前向分步算法 |
Logistic回归 | 极大似然估计法 | 改进的迭代尺度法、梯度下降法、牛顿法或拟牛顿法 |
【推荐】AI 的力量,开发者的翅膀:欢迎使用 AI 原生开发工具 TRAE
【推荐】2025 HarmonyOS 鸿蒙创新赛正式启动,百万大奖等你挑战
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· C#性能优化:为何 x * Math.Sqrt(x) 远胜 Math.Pow(x, 1.5)
· 本可避免的P1事故:Nginx变更导致网关请求均响应400
· 还在手写JSON调教大模型?.NET 9有新玩法
· 复杂业务系统线上问题排查过程
· 通过抓包,深入揭秘MCP协议底层通信
· AI 的力量,开发者的翅膀:欢迎使用字节旗下的 AI 原生开发工具 TRAE
· C#性能优化:为何 x * Math.Sqrt(x) 远胜 Math.Pow(x, 1.5)
· 千万级的大表如何新增字段?
· 「闲聊文」准大三的我,思前想后还是不搞java了
· 《HelloGitHub》第 112 期