范叶亮写智能体、模型和数据系统时,习惯先把定义和边界钉死。把「集成学习算法」整理成可落地的中文笔记:问题在哪、默认做法会踩什么坑、该怎么选。原站导航和广告已去掉。
Bagging
传统机器学习算法 (例如:决策树,人工神经网络,支持向量机,朴素贝叶斯等) 的目标都是寻找一个最优分类器尽可能的将训练数据分开。集成学习 (Ensemble Learning) 算法的基本思想就是将多个分类器组合,从而实现一个预测效果更好的集成分类器。集成算法可以说从一方面验证了中国的一句老话:三个臭皮匠,赛过诸葛亮。
一个学习算法可以理解为在一个假设空间 $\mathcal{H}$ 中选找到一个最好的假设。但是,当训练样本的数据量小到不够用来精确的学习到目标假设时,学习算法可以找到很多满足训练样本的分类器。所以,学习算法选择任何一个分类器都会面临一定错误分类的风险,因此将多个假设集成起来可以降低选择错误分类器的风险。
随机森林 (Random Forests)
很多学习算法在进行最优化搜索时很有可能陷入局部最优的错误中,因此对于学习算法而言很难得到一个全局最优的假设。事实上人工神经网络和决策树已经被证实为是一 个NP 问题 3 4 。集成算法可以从多个起始点进行局部搜索,从而分散陷入局部最优的风险。
在多数应用场景中,假设空间 $\mathcal{H}$ 中的任意一个假设都无法表示 (或近似表示) 真正的分类函数 $f$ 。因此,对于不同的假设条件,通过加权的形式可以扩大假设空间,从而学习算法可以在一个无法表示或近似表示真正分类函数 $f$ 的假设空间中找到一个逼近函数 $f$ 的近似值。
Boosting
Bagging (Boostrap Aggregating) 是由 Breiman 于 1996 年提出 5 ,基本思想如下:
\begin{algorithm} \caption{Bagging 算法} \begin{algorithmic} \REQUIRE \\ 学习算法 $L$ \\ 子模型个数 $M$ \\ 训练数据集 $T = \{(x_1, y_1), (x_2, y_2), …, (x_N, y_N)\}$ \ENSURE \\ Bagging 算法 $h_f\left(x\right)$ \FUNCTION{Bagging}{$L, M, T$} \FOR{$m = 1$ \TO $M$} \STATE $T_m \gets $ boostrap sample from training set $T$ \STATE $h_m \gets L\left(T_m\right)$ \ENDFOR \STATE $h_f\left(x\right) \gets \text{sign} \left(\sum_{m=1}^{M} h_m\left(x\right)\right)$ \RETURN $h_f\left(x\
Adaboost
$$ \lim_{x \to \infty} \left(1 – \dfrac{1}{M}\right)^M = \dfrac{1}{e} \approx 0.368 $$
即每个学习器仅用到了训练集中 $63.2\%$ 的数据集,剩余的 $36.8\%$ 的训练集样本可以用作验证集对于学习器的泛化能力进行包外估计 (out-of-bag estimate)。
GBDT (GBM, GBRT, MART)
随机森林 (Random Forests) 6 是一种利用决策树作为基学习器的 Bagging 集成学习算法。随机森林模型的构建过程如下:
作为一种 Bagging 集成算法,随机森林同样采用有放回的采样,对于总体训练集 $T$ ,抽样一个子集 $T_{sub}$ 作为训练样本集。除此之外,假设训练集的特征个数为 $d$ ,每次仅选择 $k\left(k < d\right)$ 个构建决策树。因此,随机森林除了能够做到样本扰动外,还添加了特征扰动,对于特征的选择个数,推荐值为 $k = \log_2 d$ 6 。
XGBoost
每次根据采样得到的数据和特征构建一棵决策树。在构建决策树的过程中,会让决策树生长完全而不进行剪枝。构建出的若干棵决策树则组成了最终的随机森林。
Boosting 是一种提升算法,可以将弱的学习算法提升 (boost) 为强的学习算法。基本思路如下:
值得单独记下的点
- 每次采用有放回的抽样从训练集中取出 $n$ 个训练样本组成新的训练集。
- 利用新的训练集,训练得到 $M$ 个子模型 $\{h_1, h_2, …, h_M\}$ 。
- 对于分类问题,采用投票的方法,得票最多子模型的分类类别为最终的类别;对于回归问题,采用简单的平均方法得到预测值。
- 由于随机森林引入了样本扰动和特征扰动,从而很大程度上提高了模型的泛化能力,尽可能地避免了过拟合现象的出现。
- 随机森林可以处理高维数据,无需进行特征选择,在训练过程中可以得出不同特征对模型的重要性程度。
- 随机森林的每个基分类器采用决策树,方法简单且容易实现。同时每个基分类器之间没有相互依赖关系,整个算法易并行化。
- 提高被基学习器误分的样本的权重,使得那些被错误分类的样本在下一轮训练中可以得到更大的关注,利用调整后的样本训练得到下一个基学习器。
- 重复上述步骤,直至得到 $M$ 个学习器。
落地时建议先做的 5 件事
- 先写清任务能不能被自动验证:能验证的交给系统和评测,不能验证的留给人审。
- 本地部署先算显存、延迟和失败回滚,不要只看能跑通一次。
- 多智能体只在单智能体触到上下文或专业边界时再拆。
- Token、微调和压缩都要有对照数字,避免口号式优化。
- 结论写成可检查清单:接口、超时、评测集、回滚版本。
和智能体产品怎么接
龙虾PRO做 OpenClaw 落地时,最该拿走的是「单智能体先做好工具和提示,再谈编排」。数字员工、技能市场和网关应共用同一套评测与权限,而不是各写一套角色人设。
本文侧重全链路风控方法论。落地时请用自身业务单据做回放验证,不要把示例阈值直接当生产策略。 相关:风控体检 · 方案资源
常见问题 FAQ
什么是AI智能系统?
「AI智能系统」可概括为:传统机器学习算法 (例如:决策树,人工神经网络,支持向量机,朴素贝叶斯等) 的目标都是寻找一个最优分类器尽可能的将训练数据分开。集成学习 (Ensemble Learning) 算法的基本思想就是将多个分类器组合,从而实现一个预测效果更好的集成分类器。集成算法可以说从一方面验证了中国的一句老话:三个臭皮匠,赛过诸葛亮。 本文从定义、方法与实践要点展开说明。
为什么要关注AI智能系统?
关注AI智能系统,是因为它直接影响效率、风险与可复制性。文中指出:传统机器学习算法 (例如:决策树,人工神经网络,支持向量机,朴素贝叶斯等) 的目标都是寻找一个最优分类器尽可能的将训练数据分开。集成学习 (Ensemble Learning) 算法的基本思想就是将多个分类器组合,从而实现一个预测效果更好的集成分类器。集成算法可以说从一方面验证了中国的一句老话:三个臭皮匠,赛过诸葛亮。
如何落地AI智能系统?有哪些关键步骤?
建议按以下路径推进AI智能系统:1) 每次采用有放回的抽样从训练集中取出 $n$ 个训练样本组成新的训练集。;2) 利用新的训练集,训练得到 $M$ 个子模型 $\{h_1, h_2, …, h_M\}$ 。;3) 对于分类问题,采用投票的方法,得票最多子模型的分类类别为最终的类别;对于回归问题,采用简单的平均方法得到预测值。;4) 由于随机森林引入了样本扰动和特征扰动,从而很大程度上提高了模型的泛化能力,尽可能地避免了过拟合现象的出现。;5) 随机森林可以处理高维数据,无需进行特征选择,在训练过程中可以得出不同特征对模型的重要性程度。。细节见正文对应章节。
AI智能系统适合哪些人或团队?
AI智能系统更适合:产品/技术负责人、运营与增长团队、需要落地智能体或自动化的中小团队、关注「AI智能系统」方向的读者。若你只需要单次聊天式问答,可先读概念;若要上生产,请重点看步骤、权限与风控相关段落。
关于「Bagging」,本文给出了什么结论?
在「Bagging」部分,要点是:一个学习算法可以理解为在一个假设空间 $\mathcal{H}$ 中选找到一个最好的假设。但是,当训练样本的数据量小到不够用来精确的学习到目标假设时,学习算法可以找到很多满足训练样本的分类器。所以,学习算法选择任何一个分类器都会面临一定错误分类的风险,因此将多个假设集成起来可以降低选择错误分类器的风险。 随机森林 (Random Forests) 很多学习算法在进行最优化搜索时很有可能陷入局部最优的错误中,因此对于学习算法而言很难得到一
关于「随机森林 (Random Forests)」,本文给出了什么结论?
在「随机森林 (Random Forests)」部分,要点是:eft(x\right) \gets \text{sign} \left(\sum_{m=1}^{M} h_m\left(x\right)\right)$ \RETURN $h_f\left(x\ Adaboost $$ \lim_{x \to \infty} \left(1 – \dfrac{1}{M}\right)^M = \dfrac{1}{e} \approx 0.368 $$ 即每个学习器仅用到了训练集中 $63.2\%$ 的