汕头网站关键排名,南山区宝安区福田区,类似于建设通的网站,台州网站制作系统分析怎么写在 XGBoost 中#xff0c;模型截距#xff08;也称为基本分数#xff09;是一个值#xff0c;表示在考虑任何特征之前模型的起始预测。它本质上是处理回归任务时训练数据的平均目标值#xff0c;或者是分类任务的赔率对数。
在 XGBoost 中#xff0c;每个叶子节点都会输…在 XGBoost 中模型截距也称为基本分数是一个值表示在考虑任何特征之前模型的起始预测。它本质上是处理回归任务时训练数据的平均目标值或者是分类任务的赔率对数。
在 XGBoost 中每个叶子节点都会输出一个分数而模型的最终预测是将所有叶子节点的分数相加得到的。这些分数在树的训练过程中被学习得到但当没有任何输入特征时模型需要一个基准值这就是截距的作用。
从2.0.0版本开始XGBoost支持在训练时根据目标值自动估计模型截距名为base_score。该行为可以通过将base_score设置为常数来控制。以下代码段禁用了自动估计
import xgboost as xgbreg xgb.XGBRegressor()
reg.set_params(base_score0.5)此外这里的0.5代表应用逆链接函数后的值。
除了base_score之外用户还可以通过数据字段base_margin提供全局偏置这个字段是一个向量或矩阵取决于任务的类型。对于多输出和多分类任务base_margin是一个大小为(n_samples, n_targets)或(n_samples, n_classes)的矩阵。
import xgboost as xgb
from sklearn.datasets import make_regressionX, y make_regression()reg xgb.XGBRegressor()
reg.fit(X, y)# Request for raw prediction
m reg.predict(X, output_marginTrue)reg_1 xgb.XGBRegressor()
# Feed the prediction into the next model
reg_1.fit(X, y, base_marginm)
reg_1.predict(X, base_marginm)它为每个样本指定了偏置并可以用于将XGBoost模型堆叠在其他模型之上有关从预测中提升的示例请参见Demo。当指定了base_margin时它会自动覆盖base_score参数。如果正在堆叠XGBoost模型那么使用应该是相对直接的前面的模型提供原始预测而新模型使用预测作为偏置。对于更自定义的输入用户需要额外注意链接函数。设F为模型g为链接函数由于当样本特定的base_margin可用时base_score会被覆盖 g ( E [ y i ] ) F ( x i ) g(E[y_i]) F(x_i) g(E[yi])F(xi)
当提供基线偏置base marginb时它会加到模型的原始输出F上。 g ( E [ y i ] ) F ( x i ) b i g(E[y_i]) F(x_i) b_i g(E[yi])F(xi)bi
并且最终模型的输出是 g − 1 ( F ( x i ) b i ) g^{-1}(F(x_i) b_i) g−1(F(xi)bi)
以使用伽马偏差目标函数reg:gamma为例该函数具有对数链接函数因此 ln ( E [ y i ] ) F ( x i ) b i E [ y i ] exp ( F ( x i ) b i ) \begin{split}\ln{(E[y_i])} F(x_i) b_i \\ E[y_i] \exp{(F(x_i) b_i)}\end{split} ln(E[yi])F(xi)biE[yi]exp(F(xi)bi)
因此如果正在输入来自具有相应目标函数的模型如GLM的输出请确保这些输出尚未通过逆链接函数激活函数进行转换。
在估计之后可以通过save_config()访问base_score截距。与base_margin不同返回的值代表应用逆链接函数后的值。以逻辑回归和逻辑链接函数为例给定base_score为0.5 g ( i n t e r c e p t ) l o g i t ( 0.5 ) 0 g(intercept) logit(0.5) 0 g(intercept)logit(0.5)0会被加到模型的原始输出上 E [ y i ] g − 1 ( F ( x i ) g ( i n t e r c e p t ) ) E[y_i] g^{-1}{(F(x_i) g(intercept))} E[yi]g−1(F(xi)g(intercept))
而0.5等同于 b a s e _ s c o r e g − 1 ( 0 ) 0.5 base\_score g^{-1}(0) 0.5 base_scoreg−1(0)0.5 。如果忽略模型并只考虑截距这将更加直观截距是在模型拟合之前估计的 E [ y ] g − 1 ( g ( i n t e r c e p t ) ) E [ y ] i n t e r c e p t \begin{split}E[y] g^{-1}{(g(intercept))} \\ E[y] intercept\end{split} E[y]g−1(g(intercept))E[y]intercept
对于一些目标函数如平均绝对误差MAE存在接近的解而对于其他目标函数则是使用一步牛顿方法进行估计。
参考
https://xgboost.readthedocs.io/en/latest/python/examples/boost_from_prediction.html#sphx-glr-python-examples-boost-from-prediction-pyhttps://xgboost.readthedocs.io/en/latest/tutorials/intercept.html
【LetMeFly】2682.找出转圈游戏输家
力扣题目链接:https://leetcode.cn/problems/find-the-losers-of-the-circular-game/
n 个朋友在玩游戏。这些朋友坐成一个圈,按 顺时针方向 从 1 到 n 编号。从第 i 个朋友的位置开始顺时针移动 1 步会到达第 (i …