私は単純ベイズ分類器を実装して、本質的に機能のセット(バッグではなく)であるドキュメントを分類しようとしています。つまり、各機能には固有の機能のセットが含まれており、各機能はドキュメントに最大1回表示されます。たとえば、機能をドキュメントの一意のキーワードと考えることができます。
私はレニーらをしっかりとフォローしました。al。http://www.aaai.org/Papers/ICML/2003/ICML03-081.pdfの論文ですが、対処されていないように見える問題が発生しています。つまり、短いドキュメントを分類すると、ドキュメントの特徴の数が少なくなるため、事後確率がはるかに高くなります。長いドキュメントの場合はその逆です。
これは、事後確率が(分母を無視して)次のように定義されているためです。
P(class|document) = P(class) * P(document|class)
これはに拡張されます
P(class|document) = P(class) * P(feature1|class) * ... * P(featureK|class)
このことから、乗算する用語が少ないという理由だけで、機能が少ない短いドキュメントの事後確率が高くなることは明らかです。
たとえば、機能「foo」、「bar」、および「baz」がすべてポジティブトレーニング観測に表示されるとします。次に、単一の機能「foo」を持つドキュメントは、機能{"foo"、 "bar"、"baz"}を持つドキュメントよりもポジティブクラスに分類される事後確率が高くなります。これは直感に反しているように見えますが、これを解決する方法がよくわかりません。
実行できるある種の長さの正規化はありますか?ドキュメントのサイズを機能として追加するというアイデアもありますが、トレーニングデータ内のドキュメントのサイズによって結果が歪むため、これは適切ではないようです。