美文网首页
xgboost参数调优

xgboost参数调优

作者: 有机会一起种地OT | 来源:发表于2021-12-29 18:44 被阅读0次

    一. 确定最佳决策树数量
    选择较高的学习速率(learning rate)。一般情况下,学习速率的值为0.1。但是,对于不同的问题,理想的学习速率有时候会在0.05到0.3之间波动。选择对应于此学习速率的理想决策树数量。XGBoost有一个很有用的函数“cv”,这个函数可以在每一次迭代中使用交叉验证,并返回理想的决策树数量。

    先给定boosting主要参数一个初始值,后续再进行调优。
    1、max_depth = 5 :这个参数的取值最好在3-10之间。我选的起始值为5,但是你也可以选择其它的值。起始值在4-6之间都是不错的选择。
    2、min_child_weight = 1:在这里选了一个比较小的值,因为这是一个极不平衡的分类问题。因此,某些叶子节点下的值会比较小。
    3、gamma = 0: 起始值也可以选其它比较小的值,在0.1到0.2之间就可以。这个参数后继也是要调整的。
    4、subsample,colsample_bytree = 0.8: 这个是最常见的初始值了。典型值的范围在0.5-0.9之间。
    5、scale_pos_weight = 1: 这个值是因为类别十分不平衡。

    二. 主要参数调优
    对于给定的学习速率和决策树数量,进行决策树特定参数调优(max_depth, min_child_weight, gamma, subsample, colsample_bytree)。
    这里通常使用GridSearch。可先寻找max_depth、min_child_weight,确定后,再对gamma、subsample等调优。

    三. xgboost的正则化参数的调优。(lambda, alpha)。这些参数可以降低模型的复杂度,从而提高模型的表现。

    四. 降低学习速率,确定理想参数。

    参数

    xgboost 中,objective 是模型学习任务参数(learning task parameters)中的目标参数,它指定训练任务的目标。

    objective 参数详解

    objective 参数默认值为 reg:squarederror

    • reg:squarederror:以均方差(即 MSE)损失函数为最小化的回归问题任务。
    • reg:squaredlogerror:以均方根对数误差为最小化的回归问题任务。
    • reg:logistic:逻辑回归的二分类,评估默认使用均方根误差(rmse)。
    • reg:pseudohubererror:以 Pseudo-Huber 损失函数的回归问题。
    • reg:gamma:使用对数链接(log-link)进行伽马回归。输出是伽马分布的平均值。例如,对于建模保险索赔严重性或对可能是伽马分布的任何结果,它可能很有用。
    • reg:tweedie:使用对数链接(log-link)进行 Tweedie 回归。常用于建模保险的总损失,或用于可能是 Tweedie-distributed 的任何结果。
    • binary:logistic:逻辑回归的二分类,输出的也是分类的概率,和 reg:logistic 一样,不同的是默认采用错误率评估指标。
    • binary:logitraw:逻辑回归的二分类,但在进行逻辑回归转换之前直接输出分类得分。
    • binary:hinge:基于 Hinge 损失函数的二分类,预测输出不是 0 就是 1,而不是分类的概率值。
    • count:poisson:基于泊松回归的计数任务,输出泊松分布的平均值。
      • max_delta_step:可以设置该值,默认为 0.7。
    • survival:cox:基于 Cox 风险比例回归模型的生存分析任务,如癌症患者生存概率等。
    • survival:aft:基于加速失效模型(aft)的生存分析任务。
    • aft_loss_distribution:概率密度函数,基于 survival:aft 和 aft-nloglik 作为评价指标。
    • multi:softmax:使用 softmax 多分类器的多分类任务,返回预测的类别,同时也要设置分类的个数。
    • multi:softprob:和 softmax 一样,但是输出的一个形式为 ndata * nclass 的向量,可以进一步将矩阵 reshape 成 ndata * nclass 的指标,输出的是每个类别的概率值。
    • rank:pairwise:使用 LambdaMART 进行文档对方法排名(pairwise),并使成对损失最小化。
    • rank:ndcg:使用 LambdaMART 进行文档列表方法排名(listwise),并使标准化折让累积收益(NDCG)最大化。
    • rank:map:使用 LambdaMART 进行文档列表方法排名(listwise),并使平均准确率(MAP)最大化。

    https://zhuanlan.zhihu.com/p/29649128

    相关文章

      网友评论

          本文标题:xgboost参数调优

          本文链接:https://www.haomeiwen.com/subject/naevqrtx.html