R 消除LightGBM中eval、obj(目标)和度量的歧义

R 消除LightGBM中eval、obj(目标)和度量的歧义,r,lightgbm,R,Lightgbm,我是在参考R库lightgbm时问这个问题的,但我认为它同样适用于Python和Multiverso版本 有3个参数,您可以在其中为您的模型选择感兴趣的统计信息-度量,评估,和obj。我试图用通俗易懂的语言清楚地区分这三个角色的不同 文件说: obj目标函数,可以是字符或自定义目标函数。示例包括回归、回归、huber、二进制、, lambdarank,多类,多类 求值求值函数,可以是字符列表或自定义求值函数 metric没有R文档,除了上面写着“see paraters.md”的一应俱全的文档,

我是在参考R库
lightgbm
时问这个问题的,但我认为它同样适用于Python和Multiverso版本

有3个参数,您可以在其中为您的模型选择感兴趣的统计信息-
度量
评估
,和
obj
。我试图用通俗易懂的语言清楚地区分这三个角色的不同

文件说:

obj目标函数,可以是字符或自定义目标函数。示例包括回归、回归、huber、二进制、, lambdarank,多类,多类

求值求值函数,可以是字符列表或自定义求值函数

metric没有R文档,除了上面写着“see paraters.md”的一应俱全的文档,该文档也没有真正解释它,但它列出了以下选项:

度量,默认值={l2表示回归},{binary\u logloss表示二进制 分类},{ndcg for lambdarank},类型=多枚举, 选项=l1、l2、ndcg、auc、二进制逻辑损耗、二进制错误。。。 l1,绝对损失,别名=平均绝对误差,mae l2,平方损失,别名=均方误差,mse l2_根,平方根损失,别名=均方根误差,rmse 休伯,休伯损失 公平的,公平的损失 泊松回归 ndcg,ndcg 地图,地图 auc,auc 二进制日志丢失,日志丢失 二进制错误。对于一个样本,0表示正确分类,1表示错误分类。 多重对数损失,多重分类的对数损失 多重错误。多类分类的错误率 支持多个度量值,按分隔,度量值_freq,默认值=1,类型=int 度量输出的频率为_training _metric,默认值为false,类型为bool 如果需要输出训练ndcg_at的度量结果,则将其设置为true,默认值为1,2,3,4,5,类型为multi int,别名为ndcg_eval_at,eval_at NDCG评估位置,由

我最好的猜测是

  • obj
    是算法的目标函数,即它试图最大化或最小化的对象,例如,“回归”表示它正在最小化平方残差
  • eval
    我猜这只是一个或多个额外的统计数据,您希望看到这些统计数据是根据您的算法进行计算的
  • metric
    我不知道这与
    obj
    eval
  • 正如你所说

    obj是算法的目标函数,即它所尝试的 最大化或最小化,例如,“回归”指的是最小化 平方残差

    公制和eval基本相同。它们只是在使用的地方有所不同。与交叉验证方法一起使用(因为它可用于评估提前停止等的模型?)。在正常列车情况下使用

    混淆源于对几个gbm变体(xgboost、lightgbm和sklearn的gbm+可能是一个R包)的影响,所有这些变体的参数名称略有不同。例如,python中的xgb.cv()使用
    eval
    ,但对于R,它使用
    metric
    。然后在python的lgbm.cv()中使用R
    eval


    在xgboost和lightgbm之间切换时,我感到非常困惑。有一个绝对令人惊奇的方法可以帮助您理解每个参数。

    对于xgboost分类,obj/loss函数是否相同?