我在参考 R 库时问这个问题,lightgbm
但我认为它同样适用于 Python 和 Multiverso 版本。
有 3 个参数,您可以在其中为模型选择感兴趣的统计数据 - metric
、eval
和obj
。我试图用通俗易懂的语言清楚地区分这三者的不同角色。
文档说:
obj 目标函数,可以是字符或自定义目标函数。示例包括回归、regression_l1、huber、binary、lambdarank、multiclass、multiclass
eval 评估函数,可以是(列表)字符或自定义评估函数
metric没有 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损失二进制错误。对于一个样本,0 表示正确分类,1 表示错误分类。multi_logloss,多类分类 multi_error 的日志损失。多类分类的错误率 支持多指标,由 , metric_freq 分隔,default=1,type=int 指标输出频率 is_training_metric,
我最好的猜测是
obj
是算法的目标函数,即它试图最大化或最小化什么,例如“回归”意味着它最小化平方残差eval
我猜这只是您希望在适合您的算法时计算出的一个或多个附加统计信息。metric
我不知道这与obj
和的使用方式有何不同eval