【问题标题】:How to use log_loss scorer in gridsearchcv?如何在 gridsearchcv 中使用 log_loss 记分器?
【发布时间】:2019-09-17 10:05:50
【问题描述】:

是否可以在 gridsearchcv 中使用 log_loss 指标?

我见过很少有人提到neg_log_loss的帖子?和log_loss一样吗?如果不是可以直接在gridsearchcv中使用log_loss吗?

【问题讨论】:

    标签: python machine-learning scikit-learn grid-search


    【解决方案1】:

    documentation 中所述,评分可能采用不同的输入:字符串、可调用、列表/元组、字典或无。如果您使用字符串,您可以找到可能的条目列表here

    在那里,作为对数损失的代表字符串,您会找到“neg_log_loss”,即负对数损失,它只是对数损失乘以-1。这是处理最大化问题的一种简单方法(这是 GridSearchCV 所期望的,因为它需要一个分数参数,而不是一个损失参数),而不是一个最小化问题(你想要最小的日志损失,这相当于最大负对数损失)。

    如果您想直接将 log loss 函数传递给 GridSearchCV,您只需使用 make_scorer 从 Scikit-learn log_loss 函数创建一个记分器:

    from sklearn import svm, datasets
    from sklearn.model_selection import GridSearchCV
    from sklearn.metrics import log_loss, make_scorer
    
    iris = datasets.load_iris()
    parameters = {'kernel':('linear', 'rbf'), 'C':[1, 10]}
    svc = svm.SVC(gamma="scale", probability=True)
    LogLoss = make_scorer(log_loss, greater_is_better=False, needs_proba=True)
    clf = GridSearchCV(svc, parameters, cv=5, scoring=LogLoss)
    clf.fit(iris.data, iris.target)
    
    print(clf.best_score_, clf.best_estimator_)
    

    【讨论】:

      猜你喜欢
      • 2017-09-08
      • 2019-06-13
      • 2015-04-22
      • 1970-01-01
      • 2022-12-29
      • 2021-07-10
      • 2019-04-07
      • 2020-07-06
      • 1970-01-01
      相关资源
      最近更新 更多