use*_*396 3 python machine-learning scikit-learn grid-search
是否可以在 gridsearchcv 中使用 log_loss 指标?
我见过很少有人提到的帖子neg_log_loss?与 一样吗log_loss?如果没有可以直接在gridsearchcv中使用log_loss吗?
如文档中所述,评分可能采用不同的输入:字符串、可调用、列表/元组、字典或无。如果您使用字符串,您可以在此处找到可能条目的列表。
在那里,作为代表对数损失的字符串,您可以找到“neg_log_loss”,即负对数损失,它只是对数损失乘以-1。这是处理最大化问题(这正是 GridSearchCV 所期望的,因为它需要分数参数,而不是损失参数)的简单方法,而不是最小化问题(您想要最小对数损失,这相当于最大损失参数)负对数损失)。
相反,如果您想直接将对数损失函数传递给 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_)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5055 次 |
| 最近记录: |