有人可以比较和对比这两个概念在外行的术语对我来说?的定义听起来相似,但我知道有两个之间有更多的差异。
我有:
集成模型:将多个 ML 模型组合在一起以获得更好的模型。
提升:通过将单个弱模型与其他多个弱模型相结合来改进它,以生成一个集体强模型。
合奏是几个模型的加权组合,返回一个结果。权重可以被认为是您对每个模型相对于其他模型的信心的度量。
我认为 boosting 意味着一种迭代方法:将先前模型中的残差输入到后续模型中以进一步减少它们。我认为错误是迭代过程的新输入步骤,该迭代过程使错误更接近零。
详细说明 @ duffymo;
Ensemble 简单地表示“集合”,所以它只是不同模型(或相同)的集合-想想随机森林。它是(不同的)决策树的集合,然后我们将它们的输出平均以创建 1 个“元”模型。
我想说 boosting 是一个集成,但是以特定的方式创建。不同的 boosting 算法做得不同,但它们的共同点是,它们使用上一个模型的错误,在下一步创建更好的模型。创建提升算法的一种方法是:
拟合一些基线模型,m_0
(回归可能是y_train
的平均值)
使用模型M = m_0
计算y_train
的误差 / 残差e
拟合模型(可能是线性回归)m_1
以预测e
创建一个新模型M = m_0+m_1
重复(2)-(4)多次,这样你的模型是M=m_0+m_1+m_2...
为什么这个工作?
由于误差e
被定义为e = y_train-m_0(x)
(其中m_0(x)
是使用m_0
的预测),因此我们可以训练模型m_1
来预测e
,即我们可以通过m_1(x)
来近似e
m_1(x)=y_train-m_0(x)
,这意味着y_train = m_1(x)+m_0(x)
(我们在步骤(4)中的模型)。该模型不是完美的,因此我们可以通过添加一个适合前一个M
的残差的新模型来一次又一次地迭代它。
一些算法,如 XGBoost 将添加一个“学习率”,alpha
每个模型,使M = m_0 + alpha*m_1+alpha*m_2...
但这是另一个故事
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(16条)