gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 23:56:52 26 4
gpt4 key购买 nike

我在引用 R 库 lightgbm但我认为它同样适用于 Python 和 Multiverso 版本。

有 3 个参数,您可以在其中为模型选择感兴趣的统计数据 - metric , eval , 和 obj .我试图用通俗的语言清楚地区分这三个的不同角色。

文档说:

obj objective function, can be character or custom objective function. Examples include regression, regression_l1, huber, binary, lambdarank, multiclass, multiclass

eval evaluation function, can be (list of) character or custom eval function



公制 没有 R 文档,除了 catch all 说“see paraters.md”,这也没有真正解释它,但列出了以下选项:

metric, default={l2 for regression}, {binary_logloss for binary classification},{ndcg for lambdarank}, type=multi-enum, options=l1,l2,ndcg,auc,binary_logloss,binary_error... l1, absolute loss, alias=mean_absolute_error, mae l2, square loss, alias=mean_squared_error, mse l2_root, root square loss, alias=root_mean_squared_error, rmse huber, Huber loss fair, Fair loss poisson, Poisson regression ndcg, NDCG map, MAP auc, AUC binary_logloss, log loss binary_error. For one sample 0 for correct classification, 1 for error classification. multi_logloss, log loss for mulit-class classification multi_error. error rate for mulit-class classification Support multi metrics, separate by , metric_freq, default=1, type=int frequency for metric output is_training_metric, default=false, type=bool set this to true if need to output metric result of training ndcg_at, default=1,2,3,4,5, type=multi-int, alias=ndcg_eval_at,eval_at NDCG evaluation position, separate by ,



我最好的猜测是
  • obj是算法的目标函数,即它试图最大化或最小化的函数,例如“回归”意味着它最小化残差平方
  • eval我猜这只是您希望在算法适合时计算的一个或多个附加统计信息。
  • metric我不知道它的用法与 obj 有何不同和 eval
  • 最佳答案

    正如你所说,

    obj is the objective function of the algorithm, i.e. what it's trying to maximize or minimize, e.g. "regression" means it's minimizing squared residuals.



    Metric 和 eval 本质上是相同的。它们只是在使用的地方真正不同。 Eval与交叉验证方法一起使用(因为它可以用于评估模型的早期停止等?)。 Metric用于正常的列车情况。

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

    我一直很困惑在 xgboost 和 lightgbm 之间切换。有一个绝对惊人的 resource by Laurae这有助于您了解每个参数。

    关于r - 消除 LightGBM 中的 eval、obj(目标)和度量的歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44314042/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com