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
- Existe alguma solução alternativa para incluir o kappa no gridsearchcv?
- Existe alguma outra métrica melhor que eu possa usar em vez do kappa no scikit learn?
machine-learning
classification
python
predictive-modeling
scikit-learn
GeorgeOfTheRF
fonte
fonte
Respostas:
O Kappa de Cohen foi introduzido no scikit-learn 0.17.
Você pode agrupá- lo no make_scorer para uso no GridSearchCV.
fonte
make_scorer()
converte métricas em chamadas que podem ser usadas para avaliação do modelo. Oscoring
argumento espera uma funçãoscorer(estimator, X, y)
. Portanto, falhará, se você tentar passarscoring=cohen_kappa_score
diretamente, pois a assinatura é diferentecohen_kappa_score(y1, y2, labels=None)
,. Omake_scorer
também aceita argumentos adicionais, comolabels
fromcohen_kappa_score
.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
,weights
eallowing 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, lá são alternativas para a métrica Cohen Kappa.
fonte