Scikit LearnのGridSearchCVの評価指標としてコーエンのカッパを使用する方法は?


9

私は1:15の比率、つまり非常に低いイベント率でクラスの不均衡を抱えています。したがって、scikitでGBMのチューニングパラメータを選択するには、F1スコアの代わりにカッパを使用することを学びます。カッパは、クラスの不均衡のF1スコアよりも優れた指標です。

しかし、私はここでsklearn.metricsをscikit learnのEvaluation_metricとしてkappaを見つけることができません でした

ご質問

  1. gridsearchcvにカッパを含めるための回避策はありますか?
  2. scikit learnでカッパの代わりに使用できる他のより良いメトリックはありますか?

1
sklearnをフォークして自分でサポートを追加します。それほど難しくありません!
Emre

K. griddearchcv.pyファイルだと思うsklearnソースファイルを変更しますか?どんな方向でも素晴らしいでしょう。
GeorgeOfTheRF

回答:


12

コーエンのカッパは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)

ありがとう。make_scorer()は何をしますか?
GeorgeOfTheRF 2015年

make_scorer()メトリックをモデル評価に使用できる呼び出し可能オブジェクトに変換します。scoring引数は、関数を期待しますscorer(estimator, X, y)。したがってscoring=cohen_kappa_score、署名が異なるため、直接渡そうとすると失敗しますcohen_kappa_score(y1, y2, labels=None)make_scorerまた同様に、追加の引数を受け付けますlabelsからcohen_kappa_score
Tulio Casagrande 2015年

2

既存の回答のリンクに加えて、Scikit-Learnラボもあり、そこでメソッドとアルゴリズムが実験されています。

最先端のコードで問題なく作業できる場合は、このライブラリが参考になります。

Cohenのカッパはあるも、ライブラリ内のメトリックの1つに取り、true labelspredicted labelsweightsおよびallowing one off?入力パラメータとして。明らかに、メトリックはからの範囲になります[-1, 1]

また、貢献したい場合に備えて、実装コードを確認することもできます。

注:コーエンのカッパはScikit-Learnに実装されています。

はい、そこに ある 選択肢コーエンカッパメトリックには。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.