Wie verwende ich Cohens Kappa als Bewertungsmetrik in GridSearchCV in Scikit Learn?

9

Ich habe ein Klassenungleichgewicht im Verhältnis 1:15, dh eine sehr niedrige Ereignisrate. Um die Abstimmungsparameter von GBM in Scikit Learn auszuwählen, möchte ich Kappa anstelle der F1-Punktzahl verwenden. Mein Verständnis ist, dass Kappa eine bessere Metrik als die F1-Punktzahl für das Klassenungleichgewicht ist.

Aber ich konnte Kappa als Evaluierungsmetrik in Scikit Learn hier nicht finden . Sklearn.metrics .

Fragen

  1. Gibt es eine Problemumgehung für die Aufnahme von Kappa in gridsearchcv?
  2. Gibt es eine andere bessere Metrik, die ich beim Scikit-Lernen anstelle von Kappa verwenden kann?
GeorgeOfTheRF
quelle
1
Fork sklearn und füge selbst Unterstützung hinzu; es ist nicht so schwer!
Emre
K. Wollen Sie damit sagen, dass Sie die sklearn-Quelldatei ändern, glaube ich, griddearchcv.py? Alle Richtungen werden großartig sein.
GeorgeOfTheRF
Schauen Sie sich die Definition von sklearn.metrics.f1_score
Emre

Antworten:

12

Cohens Kappa wurde in Scikit-Learn 0.17 eingeführt.

Sie können es in make_scorer einschließen, um es in GridSearchCV zu verwenden.

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
quelle
Vielen Dank. Was macht make_scorer ()?
GeorgeOfTheRF
make_scorer()konvertiert Metriken in Callables, die für die Modellbewertung verwendet werden können. Das scoringArgument erwartet eine Funktion scorer(estimator, X, y). Es wird also fehlschlagen, wenn Sie versuchen, scoring=cohen_kappa_scoredirekt zu übergeben, da die Signatur unterschiedlich ist cohen_kappa_score(y1, y2, labels=None). Das make_scorerakzeptiert auch zusätzliche Argumente wie labelsvon cohen_kappa_score.
Tulio Casagrande
2

Neben dem Link in der vorhandenen Antwort gibt es auch ein Scikit-Learn-Labor, in dem Methoden und Algorithmen experimentiert werden.

Für den Fall, dass Sie mit dem neuesten Code arbeiten können, ist diese Bibliothek eine gute Referenz.

Der Kappa Cohen ist auch eine der Metriken in der Bibliothek , die in nimmt true labels, predicted labels, weightsund allowing one off?als Eingabeparameter. Offensichtlich würde die Metrik von reichen [-1, 1].

Sie können sich auch den Implementierungscode ansehen , falls Sie einen Beitrag leisten möchten.

Hinweis: Cohens Kappa ist auch in Scikit-Learn implementiert .

Ja, es gibt Alternativen zur Cohen Kappa-Metrik.

Dawny33
quelle