代码之家  ›  专栏  ›  技术社区  ›  Bs He

xgboost的损失函数及评价指标

  •  2
  • Bs He  · 技术社区  · 6 年前

    我现在对 XGBoost . 以下是我的困惑:

    1. 我们有 objective ,这是需要最小化的损失函数; eval_metric :用于表示学习结果的度量。这两个是完全不相关的(如果我们不考虑这样的分类 logloss mlogloss 可用作 价值度量 )这是对的吗?如果我是,那么对于分类问题,你如何使用 rmse 作为性能指标?
    2. 有两种选择 客观的 举个例子, reg:logistic binary:logistic . 对于0/1分类,通常应将二元logistic损失或交叉熵作为损失函数,对吗?那么这两个选项中哪一个是损失函数,另一个的值是多少?比如说 二进制:logistic 表示交叉熵损失函数,那么 后勤:后勤 怎么办?
    3. 有什么区别 multi:softmax multi:softprob ?它们是否使用相同的损耗函数,只是输出格式不同?如果是的话,那对 后勤:后勤 二进制:logistic 还有,对吧?

    第二题补遗

    例如,0/1分类问题的损失函数应该是 L = sum(y_i*log(P_i)+(1-y_i)*log(P_i)) . 所以如果我需要选择 二进制:logistic 这里,或 后勤:后勤 让xgboost分类器使用 L 损失函数。如果是 二进制:logistic ,那么什么损失函数 后勤:后勤 使用?

    2 回复  |  直到 6 年前
        1
  •  0
  •   Joshua Cook    6 年前
    1. 是的,损失函数和评估指标有两个不同的用途。模型使用损失函数来学习输入和输出之间的关系。评估指标用于评估学习关系的好坏。以下是模型评估讨论的链接: https://scikit-learn.org/stable/modules/model_evaluation.html
    2. 我不知道你到底在问什么。你能澄清这个问题吗?
        2
  •  0
  •   Eran Moshe    6 年前

    “binary:logistic”用法 -(y*log(y_pred) + (y-1)*(log(1-y_pred))

    “REG:物流”用途 (y - y_pred)^2

    为了得到误差的总估计,我们将所有误差相加并除以样本数。


    你可以从基础知识中找到这个。当看线性回归和逻辑回归。

    线性回归的用途 (Y-Y预测)^2 作为成本函数

    逻辑回归应用 -(y*对数(y-pred)+(y-1)*(对数(1-y-pred)) 作为成本函数


    评估指标完全不同。他们设计来评估你的模型。您可能会被他们搞糊涂,因为使用一些与损失函数相同的评估指标是合乎逻辑的,比如 MSE 回归问题。然而,在二进制问题中,并不总是明智地看待 logloss . 我的经验使我(在分类问题上)普遍认为 AUC ROC .

    编辑


    根据XGBoost文档:

    REG:线性:线性回归

    注册:logistic:logistic回归

    二进制:logistic:二进制分类的logistic回归,输出 可能性

    所以我猜:

    雷格:线性的:就像我们说的, (Y-Y预测)^2

    注册:物流是 -(y*对数(y-pred)+(y-1)*(对数(1-y-pred)) 用0.5个阈值舍入预测

    二进制:逻辑很简单 -(y*对数(y-pred)+(y-1)*(对数(1-y-pred)) (返回概率)

    你可以测试一下,看看是否像我编辑的那样。如果是,我将更新答案,否则,我将删除它:<