如何在 Scikit Learn 的 GridSearchCV 中使用 Cohen 的 Kappa 作为评估指标?

数据挖掘 机器学习 分类 Python 预测建模 scikit-学习
2021-10-04 08:23:57

我的班级比例为 1:15,即事件发生率非常低。所以要在 scikit learn 中选择 GBM 的调整参数,我想使用 Kappa 而不是 F1 分数。我的理解是 Kappa 是一个比 F1 分数更好的衡量等级不平衡的指标。

但是我在 scikit learn here sklearn.metrics中找不到 kappa 作为评估 指标

问题

  1. 在 gridsearchcv 中包含 kappa 是否有任何解决方法?
  2. 在 scikit learn 中,我可以使用其他更好的指标来代替 kappa 吗?
2个回答

Cohen 的 kappa是在 scikit-learn 0.17 中引入的。

您可以将其包装在make_scorer中以在 GridSearchCV 中使用。

from sklearn.metrics import cohen_kappa_score, make_scorer
from sklearn.grid_search import GridSearchCV
from sklearn.svm import LinearSVC

kappa_scorer = make_scorer(cohen_kappa_score)
grid = GridSearchCV(LinearSVC(), param_grid={'C': [1, 10]}, scoring=kappa_scorer)

除了现有答案中的链接外,还有一个 Scikit-Learn 实验室,正在试验方法和算法。

如果您可以使用最前沿的代码,这个库将是一个很好的参考。

Cohen 的 Kappa也是库中的度量之一它以true labels作为输入参数。显然,该指标的范围为.predicted labelsweightsallowing one off?[-1, 1]

您还可以查看实现代码,以防万一您愿意贡献。

注意:Cohen 的 Kappa 也在Scikit-Learn 中实现

是的, Cohen Kappa 指标 替代方案。