2017-09-04 3 views
0

nlp問題にRandomForestClassifierを使用しようとしていますが、predict_log_probaメソッドを使用すると、ゼロ除算エラーが発生します。 predict_provaメソッドの結果を見て、いくつかのクラス(合計6つのクラス)の確率のいくつかが0であることが原因であることがわかりました。したがって、predict_log_probaがnp.logを0に適用しようとすると、エラー。この問題を回避できるパラメータはありますか?私は、この例のコードを見たのでpredict_log_probaがランダムフォレスト分類器に正しく使用することができることを知っているSklearn RandomForestClassifier predict_log_probaエラーゼロで除算

はそれを使用し、それがうまく働いた:http://scikit-learn.org/stable/auto_examples/calibration/plot_calibration_multiclass.html

を私はsklearnバージョン0.19およびRandomForestClassifierのデフォルトパラメータ値を使用しています。

答えて

2

あなたのモデルがあるクラスに対してゼロ確率を出力している場合、そのクラスのログ確率は負の無限大です。したがって、ログ空間内の確率を合計している場合(またはこの値が必要な場合)、明らかにこれで作業することはできません。

ランダムフォレストでこれが発生するためには、すべてのツリーが、その特定のデータポイントのこの特定のクラスの確率がゼロであることに同意していることを意味します。あなたはツリーの数を増やすことでこれを緩和することができます(これは、少なくとも1人がこの例がそのクラスに入る可能性を高めます)。または、max_depthパラメータを同様の効果に減らすこともできます。

また、対数を適用する前に、モデルの出力を柔らかくすることもできます。たとえば、出力確率に0.99を掛けて0.01を掛けるなどです。

希望に役立ちます。

関連する問題