1

2つのクラス(2進分類)のデータセットに対して感情分析を実行しようとしています。データセットは、およそ70% - 30%の不均衡です。私はLightGBMPython 3.6を使用してモデルを作成し、出力を予測しています。LightGBMで不均衡なデータセットを使用した感情分析

私のモデルのデータセット効果の不均衡があると思います。私は約90%の精度を取得しますが、パラメータの微調整を行ってもそれ以上は増加しません。私はこれよりも得点の高い人がいるので、これを可能な限り正確には考えていない。

Textacynltkでデータセットをクリーニングしました。私はCountVectorizerを使ってテキストをエンコードしています。

(私はそのモデルにチューニングされていない)

を私はup-samplingデータセットを試してみましたが、それは貧しいモデルになった私はLightGBMis_unbalanceパラメータを使用して試してみましたが、それは私に、より良いモデルを与えるものではありません。

このような不均衡なデータセットを処理する方法はありますか。私のモデルをさらに改善するには?ダウンサンプリングを試すべきですか?それとも最大限の精度ですか?どうすればそれを確かめることができますか?

答えて

3

このタイプのデータセットには、あまりにも不均衡のあるデータセットを処理する方法はありますか。

あなたのデータセットはほぼ均衡しています70/30はほぼ同じです。満足感を増強した樹木では、クレジットスコアリング、詐欺検出、医療診断など、より多くの不均衡なデータを訓練することができます。ポジティブの割合は1%未満です。

問題はクラスの不均衡ではないかもしれませんが、メトリックが間違っているを使用してください。正確さを計算すると、偽陰性と偽陽性についてモデルに均等にペナルティを課します。しかし、それは本当に事実ですか?クラスが不均衡であるか、ビジネスや物理的な観点から見れば、精度、リコール、ROC AUCのような他の指標が精度よりも役立つかもしれません。あなたの問題については、ROC AUCをお勧めします。

おそらく、あなたが本当に望むのは、確率的な分類です。そしてそれをバイナリにしておきたい場合は、分類に使用したスレッショルドを使います。

私のモデルをさらに改善するにはどうしたらいいですか?

テキストの解析であるため、より正確なデータクリーニングを提案します。

  • 字句/ステミングのさまざまな方法を試しましたか?
  • 数字、スマイリー、略語、会社名などの特殊なエンティティをどのように前処理しましたか?
  • バイグラムやトライグラムを単語とともにモデルに組み込むことで、コロケーションを悪用しましたか?
  • どのように否定を処理しましたか?1つの「いいえ」は意味を劇的に変える可能性があり、CountVectorizerはそれをあまり捉えません。
  • 単語からセマンティクスを抽出しようとしましたか?シノニムとマッチするか、word2vecやfastTextのようなあらかじめ用意されたモデルから単語embeddinsを使用しますか?

おそらく、ツリーベースのモデルは最良の選択ではありません。私自身の経験では、ロジスティック回帰や浅いニューラルネットワークのような線形モデルによって最高のセンチメント分析が行われました。しかし、あなたはそれらを頻繁に正規化する必要があります。 TF-IDFと

あなたのデータセットが大きい場合は、詳細な学習を行い、データのRNNを訓練することができます。 LSTMは多くのテキスト関連の問題の最も良いモデルです。

ダウンサンプリングする必要がありますか?

あなたはあなたのマシン上で処理するためにあまりにも多くのデータを持っていない限り、あなたは、決してダウンサンプル必要があります。ダウンサンプリングは、データに偏りを生じさせます。

クラシファイアのマイノリティクラスの相対的重要度を増やしたい場合は、という観測結果を再調整することができます。私が知る限り、LightGBMではscale_pos_weightパラメータでクラスの重みを変更できます。

または可能な限り正確ですか?どうすればそれを確かめることができますか?

わかりません。しかし、あなたは実験をすることができます:いくつかの人間にあなたのテストサンプルにラベルを付けるように依頼し、それらをお互いに比較してください。ラベルの90%しか一致しない場合でも、人間でさえ残りのサンプルの10%を分類できないため、最大に達しています。

また、精度にあまり集中しないでください。たぶん、あなたのビジネスアプリケーションのために、すべての否定的なレビューが首尾よく識別される限り、あなたが間違っていくつかの肯定的なレビューに否定的なラベルを付けるなら、大丈夫です。

+0

ありがとうございました。私は数値、スマイリーなどのデータを 'Textacy'で整理しました。私はまた' Stemmers'と 'Lemmatisations'を試しました。 –

+0

私は' auc'を改良しなかったメトリックとして試しました。私はマシンでモデルができないので、word2vecを使用していません。 –

+0

私は 'Keras'で' LSTM'をトレーニングしようとしましたが、結果はそれほど有望ではありませんでした。 –

関連する問題