このタイプのデータセットには、あまりにも不均衡のあるデータセットを処理する方法はありますか。
あなたのデータセットはほぼ均衡しています。 70/30
はほぼ同じです。満足感を増強した樹木では、クレジットスコアリング、詐欺検出、医療診断など、より多くの不均衡なデータを訓練することができます。ポジティブの割合は1%未満です。
問題はクラスの不均衡ではないかもしれませんが、メトリックが間違っているを使用してください。正確さを計算すると、偽陰性と偽陽性についてモデルに均等にペナルティを課します。しかし、それは本当に事実ですか?クラスが不均衡であるか、ビジネスや物理的な観点から見れば、精度、リコール、ROC AUCのような他の指標が精度よりも役立つかもしれません。あなたの問題については、ROC AUCをお勧めします。
おそらく、あなたが本当に望むのは、確率的な分類です。そしてそれをバイナリにしておきたい場合は、分類に使用したスレッショルドを使います。
私のモデルをさらに改善するにはどうしたらいいですか?
テキストの解析であるため、より正確なデータクリーニングを提案します。
- 字句/ステミングのさまざまな方法を試しましたか?
- 数字、スマイリー、略語、会社名などの特殊なエンティティをどのように前処理しましたか?
- バイグラムやトライグラムを単語とともにモデルに組み込むことで、コロケーションを悪用しましたか?
- どのように否定を処理しましたか?1つの「いいえ」は意味を劇的に変える可能性があり、
CountVectorizer
はそれをあまり捉えません。
- 単語からセマンティクスを抽出しようとしましたか?シノニムとマッチするか、word2vecやfastTextのようなあらかじめ用意されたモデルから単語embeddinsを使用しますか?
おそらく、ツリーベースのモデルは最良の選択ではありません。私自身の経験では、ロジスティック回帰や浅いニューラルネットワークのような線形モデルによって最高のセンチメント分析が行われました。しかし、あなたはそれらを頻繁に正規化する必要があります。 TF-IDFと
あなたのデータセットが大きい場合は、詳細な学習を行い、データのRNNを訓練することができます。 LSTMは多くのテキスト関連の問題の最も良いモデルです。
ダウンサンプリングする必要がありますか?
あなたはあなたのマシン上で処理するためにあまりにも多くのデータを持っていない限り、あなたは、決してダウンサンプル必要があります。ダウンサンプリングは、データに偏りを生じさせます。
クラシファイアのマイノリティクラスの相対的重要度を増やしたい場合は、という観測結果を再調整することができます。私が知る限り、LightGBM
ではscale_pos_weight
パラメータでクラスの重みを変更できます。
または可能な限り正確ですか?どうすればそれを確かめることができますか?
わかりません。しかし、あなたは実験をすることができます:いくつかの人間にあなたのテストサンプルにラベルを付けるように依頼し、それらをお互いに比較してください。ラベルの90%しか一致しない場合でも、人間でさえ残りのサンプルの10%を分類できないため、最大に達しています。
また、精度にあまり集中しないでください。たぶん、あなたのビジネスアプリケーションのために、すべての否定的なレビューが首尾よく識別される限り、あなたが間違っていくつかの肯定的なレビューに否定的なラベルを付けるなら、大丈夫です。
ありがとうございました。私は数値、スマイリーなどのデータを 'Textacy'で整理しました。私はまた' Stemmers'と 'Lemmatisations'を試しました。 –
私は' auc'を改良しなかったメトリックとして試しました。私はマシンでモデルができないので、word2vecを使用していません。 –
私は 'Keras'で' LSTM'をトレーニングしようとしましたが、結果はそれほど有望ではありませんでした。 –