2016-06-29 13 views
3

私はOneVsRestClassifierscikit-learn)を訓練しています。OneVsRestClassifierの損失機能

clf = OneVsRestClassifier(LogisticRegression(C=1.2, penalty='l1')).fit(X_train, y_train) 

私のテストデータの損失を調べたいと思います。 log_loss関数を使用しましたが、各テストケースの出力として複数のクラスがあるため動作していないようです。私は何をしますか?

+0

あなたのデータはどれだけ大きく、どのデータセットを使用していますか? – alvas

+0

私はntlk.corpusの「reuters」データセットを使用しています。合計で約10,000件の文書。 –

答えて

2

あなたが指摘している分類の問題は、Multi-Label Classification問題として知られています。この目的のためにOneVsRestClassifierを使用することを決定しました。デフォルトでは、scoreメソッドはサブセット精度のを使用します。これは、ラベルのサブセット全体を正しく推測する必要があるため、非常に厳しい基準です。次のように

scikit-学ぶ、あなたが使用できることにより提供されるいくつかの他の損失関数は、以下のとおりです。

  1. Hamming Loss - これはあなたのラベルの予測と真のラベル間のハミング距離を測定します。 Thisは、ハミング距離を理解する直感的な式です。
  2. Jaccard Similarity Coefficient Score - これは予測ラベルと真ラベルの間のJaccard類似性を測定します。
  3. Precision, Recall and F-Measures - 複数ラベル分類の場合、Precision、Recall、およびF-Measuresの概念は、各クラスに独立して適用できます。 following guideは、マルチラベル分類のすべてのラベルにわたってそれらを組み合わせる方法を説明しています。

あなたはそれがマルチラベル順位付けの問題で行われているようにもラベルをランク付けする必要がある場合は、その後、非常によく例hereで文書化されている学習scikitで利用可能な他のより高度なテクニックがあります。あなたがこの種の問題に対処している場合は、コメントで私に教えてください、私はこれらのメトリックのそれぞれについてより詳細に説明します。

希望すると便利です。

+0

ありがとう!できます! –

+0

私はあなたのために働いてうれしいです。それがあなたを助けた場合、これを受け入れられた答えとしてマークしてください。これは同じ疑いを持つ他の人々にも役立ちます。ありがとうございました。 –

関連する問題