如何在GridSearchCV中使用log_loss评分器?

在GridSearchCV中可以使用log_loss度量吗?

我看到一些帖子中提到neg_log_loss,它和log_loss相同吗?如果不相同,是否可以直接在GridSearchCV中使用log_loss?


回答:

文档中所述,评分可以接受不同的输入:字符串、可调用对象、列表/元组、字典或None。如果使用字符串,可以在这里找到可能的输入列表这里

在字符串中,log loss的代表是”neg_log_loss”,即负的log loss,它只是log loss乘以-1。这是一种简单处理最大化问题的方法(这是GridSearchCV所期望的,因为它需要一个评分参数,而不是损失参数),而不是最小化问题(你想要最小的log loss,这等同于最大的负log loss)。

如果你想直接将log loss函数传递给GridSearchCV,你只需使用Scikit-learn的log_loss函数,通过make_scorer创建一个评分器:

from sklearn import svm, datasetsfrom sklearn.model_selection import GridSearchCVfrom sklearn.metrics import log_loss, make_scoreriris = 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_)

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注