Como usar o Kappa de Cohen como métrica de avaliação no GridSearchCV no Scikit Learn?

9

Tenho desequilíbrio de classe na proporção 1:15, ou seja, taxa de eventos muito baixa. Então, para selecionar os parâmetros de ajuste do GBM no scikit learn, quero usar Kappa em vez da pontuação F1. Meu entendimento é que Kappa é uma métrica melhor que a pontuação da F1 para o desequilíbrio de classe.

Mas não consegui encontrar o kappa como uma avaliação_métrica no scikit learn here sklearn.metrics .

Questões

  1. Existe alguma solução alternativa para incluir o kappa no gridsearchcv?
  2. Existe alguma outra métrica melhor que eu possa usar em vez do kappa no scikit learn?
GeorgeOfTheRF
fonte
11
Garfo sklearn e adicionar suporte a si mesmo; não é tão difícil!
Emre
K. Você está dizendo para modificar o arquivo de origem sklearn, acho que o arquivo griddearchcv.py? Quaisquer instruções serão ótimas.
GeorgeOfTheRF
Veja a definição de sklearn.metrics.f1_score
Emre

Respostas:

12

O Kappa de Cohen foi introduzido no scikit-learn 0.17.

Você pode agrupá- lo no make_scorer para uso no 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)
Tulio Casagrande
fonte
Obrigado. O que o make_scorer () faz?
GeorgeOfTheRF
make_scorer()converte métricas em chamadas que podem ser usadas para avaliação do modelo. O scoringargumento espera uma função scorer(estimator, X, y). Portanto, falhará, se você tentar passar scoring=cohen_kappa_scorediretamente, pois a assinatura é diferente cohen_kappa_score(y1, y2, labels=None),. O make_scorertambém aceita argumentos adicionais, como labelsfrom cohen_kappa_score.
Tulio Casagrande
2

Além do link na resposta existente, há também um laboratório Scikit-Learn, onde métodos e algoritmos estão sendo experimentados.

Caso você não tenha problemas com o trabalho com código de ponta, essa biblioteca seria uma boa referência.

Kappa de Cohen é também uma das métricas na biblioteca , que leva em true labels, predicted labels, weightse allowing one off?como os parâmetros de entrada. Obviamente, a métrica varia de [-1, 1].

Você também pode dar uma olhada no código de implementação , caso queira contribuir.

Nota: O Kappa de Cohen também é implementado no Scikit-Learn .

Sim, são alternativas para a métrica Cohen Kappa.

Dawny33
fonte