梯度提升如何计算概率估计?

机器算法验证 机器学习 分类 集成学习 助推
2022-02-08 22:29:48

我一直试图通过阅读各种博客、网站来理解梯度提升,并试图通过查看例如 XGBoost 源代码来找到我的答案。但是,对于梯度提升算法如何产生概率估计,我似乎找不到一个可以理解的解释。那么,他们如何计算概率呢?

1个回答

TL;DR:样本的对数几率是其终端叶子的权重之和。样本属于第 1 类的概率是总和的逆 logit 变换。


与逻辑回归类似,逻辑函数计算在 logit 尺度上呈线性的概率:

z=XwP(y=1|X)=11+exp(z)

与逻辑回归不同,“特征”X被构造为使用提升过程的决策树集合的终端节点每一行X收集每个样本的终端叶子;该行是T-热二元向量,对于T树的数量。(每个 XGBoost 树都是根据特定算法生成的,但这与这里无关。)

n中的列X,每个终端节点一列。终端节点的总数没有表达式,因为节点的数量可能因树而异(根据我的经验,通常是这样)。

树中的每一片叶子都有一个相关的“权重”。该重量记录在w. 要符合X, 有n中的元素w. 权重本身来自梯度提升过程;请参阅:在 XGboost 中,是为每个样本估计的权重,然后取平均值