我试图使用XGBoost R软件包构建0-1分类器。我的问题是如何做出预测?例如,在随机森林中,对每种选择的树木“投票”,最终预测是基于多数的。关于XGBoost,回归案例很简单,因为整个模型的预测等于弱学习者(增强的树)的庇护之和,但是分类呢?

XGBoost分类器的工作原理与随机森林中的作用相同(我不这么认为,因为它可以返回预测概率,而不是班级会员资格)。

有帮助吗?

解决方案

梯度提升算法创建了一组决策树。

所使用的预测过程 这里 使用以下步骤:

  • 对于每棵树,创建一个临时的“预测变量”,将树应用于新数据集。
  • 使用公式汇总所有这些树。取决于模型:
    • Bernoulli:1/(1 + exp( - (intercept + sum(临时pred))))))))
    • Poisson,Gamma:EXP(拦截 +总和(临时pred))
    • adaboost:1 /(1 + exp(-2*)

临时的“预测变量”是一种概率,无意义。

您拥有的树越多,您的预测就越平滑。

R过程可能已经优化,但足以理解该概念。

在梯度提升的H2O实现中,输出是标志0/1。我觉得 F1分数 默认情况下使用将概率转换为标志。我将进行一些搜索/测试以确认。

在同一实现中,二进制结果的默认输出之一是混淆矩阵,这是评估您的模型的好方法(并打开一大堆新的询问)。

截距是“树木进行调整的初始预测值”。基本上,只是初始调整。

此外: H2O.GBM文档

许可以下: CC-BY-SA归因
scroll top