使用XGBoost的分类 - 预测
-
16-10-2019 - |
题
我试图使用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文档