2016-05-10 23 views
0

私は、Python Scikitを使用してテキスト分類を行い、TfidfVectorizerとMultinomialNBを使用する予定です。未知数予測のscikit分類子

しかし、私はMultinomialNBが常に既存の(既知の)カテゴリに私のサンプルを予測することに気付きました。例えば

、私が持っている場合:

category A: trained with sample "this is green" 
category B: trained with sample "this is blue" 
category C: trained with sample "this is red" 

を、私は予測してみてください:"this is yellow"

確率は、この内のすべてのカテゴリで同じであるので、それは、私にcategory A(またはその他を与えます場合)。

私の質問は、上記のテストケースで「不明」(または、なし、または偽、またはエラー)を与える分類器はありますか?

私は、テストケースが与えられたトレーニングセットで予測できなかったときを知りたいと思います。

my_classifier.predict_proba(X_test))がすべて等しいか近い値(この例の場合は[[ 0.33333333 0.33333333 0.33333333]])の配列を返すかどうかを確認できます。確率はカテゴリごとに同じではないかもしれないので、

実際に、私は:)、値がデフォルトに接近しているかどうかを確認する必要があります

そう...任意のより良いアプローチをか...そこにあります私が使うことができる信頼限界を持つ分類器?あなたには、いくつかの非標識トレーニングデータを持っている場合は、事前に

おかげで、

答えて

0

novelty detectionを参照してください。私はそのリンクと関連するexampleをチェックアウトします。アイデアは、その一例では、使用することです:はトレーニングセットと同様に、異なる新しいデータを分類:

1クラスSVMのノベルティ検出のための意思決定機能を学習し、教師なしアルゴリズムです。

私はそれはあなたの例では、少量のデータを使用して実行する方法を知らない(強調は私です。)、私は「悪い」と思うだろうが、私はnovelty detectionはものの一種であると信じていますあなたはここを探しています。

+0

ハム...これを現在のクラシファイアと組み合わせてテストします。サンプルが異常値とみなされた場合、私はそれを分類器に提出しません。ありがとう、それはまさに私が探していたものです。 – weeanon

1

は、すべてのあなたのラベルのないデータが含まれているゴミ箱クラスを追加することができます。あなたの例では、このクラスは "緑、青、赤のいずれかの色ではない"と解釈します。このアプローチについては、http://arxiv.org/abs/1511.03719

+0

ハム..私は「フォールバック」クラスを追加することを考えましたが、ランダムなテキストがどのように表示されるかは予想できません。私は、「私はこの入力を分類するのに十分なデータがありません」と言うことができる分類子が好きです。このようなものはありますか? – weeanon

+0

私は理解します。可能な入力テキストである可能性のあることがまったくわからない場合は、ゴミ箱クラスのアプローチが実際には難しいかもしれません。正直言って、私はそれを自分で実装しようとは決してしていないので、そのような状況でどれほど効果的かは分かりません。 –

関連する問題