xgboost求导的问题

邹老师您好,
关于xgboost的推导过程,里面用到了一阶导gi,二阶导hi,如果是这样的话 ,整个过程gi,hi都是不会变的。这样来说的话,后面的树应该都是一样的吧,因为树的切分的那个obj里面只包含gi,hi,和正则项。我这样理解对吗?
 

邹博 - 计算机科学博士,深谙机器学习算法原理

赞同来自: fish

一阶导、二阶导,都是针对当前划分的导数值,它是根据不同的树划分结果,有不同的值,并不是一直不变的。 比如咱们XGBoost中的第一个参考代码,给出了自定义一阶导、二阶导的代码:
1475129590466.png
  这里可以看出,不同的划分值(y)是有不同的导数的。

lash

赞同来自:

老师,xgboost的损失函数一定要事先给定才能算具体的gi,hi对吗,这个给定是必须给出函数表达式的。那在python库中,如果使用默认的,即我不给定的话,库使用的还是logistic函数吗(sigmoid)?

要回复问题请先登录注册