14

2つの単純ベイズ分類器を比較しています。1つはNLTKからのもので、もう1つはscikit-learnからのものです。私はマルチクラス分類問題(3つのクラス:ポジティブ(1)、ネガティブ(-1)、ニュートラル(0))を扱っています。

特徴選択を実行せずに(つまり、利用可能なすべての機能を使用して)、70,000インスタンスのトレーニングデータセット(ノイズラベル、インスタンス分布が17%ポジティブ、4%ネガティブ、78%ニュートラル)を使用して、2つの分類器をトレーニングします、最初のものはnltk.NaiveBayesClassifierであり、2番目のものはsklearn.naive_bayes.MultinomialNB(with fit_prior=True)です。

トレーニング後、30,000インスタンスのテストセットで分類子を評価したところ、次の結果が得られました。

**NLTK's NaiveBayes**
accuracy: 0.568740
class: 1
     precision: 0.331229
     recall: 0.331565
     F-Measure: 0.331355
class: -1
     precision: 0.079253 
     recall: 0.446331 
     F-Measure: 0.134596 
class: 0
     precision: 0.849842 
     recall: 0.628126 
     F-Measure: 0.722347 


**Scikit's MultinomialNB (with fit_prior=True)**
accuracy: 0.834670
class: 1
     precision: 0.400247
     recall: 0.125359
     F-Measure: 0.190917
class: -1
     precision: 0.330836
     recall: 0.012441
     F-Measure: 0.023939
class: 0
     precision: 0.852997
     recall: 0.973406
     F-Measure: 0.909191

**Scikit's MultinomialNB (with fit_prior=False)**
accuracy: 0.834680
class: 1
     precision: 0.400380
     recall: 0.125361
     F-Measure: 0.190934
class: -1
     precision: 0.330836
     recall: 0.012441
     F-Measure: 0.023939
class: 0
     precision: 0.852998
     recall: 0.973418
     F-Measure: 0.909197

Scikitの分類器は全体的な精度と精度が優れていますが、少なくとも私のデータでは、NLTKの分類器と比較して再現率が非常に低いことに気づきました。それらが(ほぼ)同じ分類子である可能性があることを考慮すると、これは奇妙ではありませんか?

4

2 に答える 2

3

クラスの重みのデフォルトの動作は両方のライブラリで同じですか? レアクラスの精度差(-1)が原因のようですが…

于 2012-05-06T03:25:02.443 に答える