1

Wekaを使用して、ドキュメントを2つのカテゴリ(category1とcategory2)に分類しようとしています。

両方のカテゴリに属する​​600のドキュメントで構成されるトレーニングセットを収集しました。分類されるドキュメントの総数は1,000,000です。

したがって、分類を実行するために、StringToWordVectorフィルターを適用します。フィルタから次のようにtrueを設定します。-IDF変換-TFransform-OutputWordCounts

このプロセスについていくつか質問したいと思います。

1)過剰適合を回避するために、トレーニングセットとしていくつのドキュメントを使用する必要がありますか?

2)フィルターを適用した後、トレーニングセット内の単語のリストを取得します。分類器でより良い結果を得るには、それらのいずれかを削除する必要がありますか、それとも何の役割も果たしませんか?

3)分類方法として、私は通常naiveBayesを選択しますが、得られる結果は次のとおりです。

-------------------------
Correctly Classified Instances         393               70.0535 %
Incorrectly Classified Instances       168               29.9465 %
Kappa statistic                          0.415 
Mean absolute error                      0.2943
Root mean squared error                  0.5117
Relative absolute error                 60.9082 %
Root relative squared error            104.1148 %
----------------------------

SMOを使用すると、結果は次のようになります。

------------------------------
Correctly Classified Instances         418               74.5098 %
Incorrectly Classified Instances       143               25.4902 %
Kappa statistic                          0.4742
Mean absolute error                      0.2549
Root mean squared error                  0.5049
Relative absolute error                 52.7508 %
Root relative squared error            102.7203 %
Total Number of Instances              561     
------------------------------

では、ドキュメント分類では、どちらが「より良い」分類子ですか?私が持っているような小さなデータセットにはどちらが良いですか?naiveBayesはビッグデータセットでパフォーマンスが向上することを読みましたが、データセットを増やすと、「過剰適合」効果が発生しますか?また、カッパ統計について、受け入れられるしきい値はありますか、それともカテゴリが2つしかないため、この場合は問題ではありませんか?

長い投稿で申し訳ありませんが、分類結果を改善するために1週間努力しましたが、各カテゴリにより適したドキュメントを取得しようとしましたが、成功しませんでした。

4

3 に答える 3

2

1) 過剰適合を避けるために、トレーニング セットとしていくつのドキュメントを使用する必要がありますか? \

トレーニング セットのサイズを選択する必要はありません。WEKA では、10 分割の交差検証を使用するだけです。質問に戻りますが、機械学習アルゴリズムは、オーバーフィッティングの問題においてデータセットよりもはるかに多くの影響を及ぼします。


2) フィルターを適用した後、トレーニング セット内の単語のリストを取得します。分類器でより良い結果を得るためにそれらのいずれかを削除する必要がありますか?それとも何の役割も果たしませんか? \

間違いなくそうです。しかし、結果が良くなるかどうかは約束できません。


3) 分類方法として、私は通常 naiveBayes を選択しますが、得られる結果は次のとおりです: \

通常、分類アルゴリズムが優れているかどうかを定義するには、ROC/AUC/F 値が常に最も重要な指標と見なされます。それらは機械学習の本で学ぶことができます。

于 2012-09-23T10:55:02.973 に答える
1

質問に答えるには:

  1. あなたの方法を評価するために(10倍)クロスバリデーションを使用します。モデルは、データの 90% で 10 回トレーニングされ、毎回データの異なる部分を使用してデータの 10% でテストされます。したがって、結果は、トレーニングとテスト セットの現在の (ランダムな) 選択に偏りが少なくなります。
  2. ストップ ワードthe(つまり、 、heまたはのような識別力がほとんどない頻繁に出現する単語) を削除するandことは、分類器を改善するための一般的な戦略です。Weka'sStringToWordVectorでは、これらのストップ ワードを含むファイルを選択できますが、英語のストップ ワードを含むデフォルトのリストも必要です。
  3. 結果を考えると、SMO は 2 つの分類器の中で最も優れたパフォーマンスを発揮します (たとえば、より多くの がありますCorrectly Classified Instances)。また、(Lib)SVM または LibLinear (Weka にネイティブにない場合はインストールする必要があるかもしれません。Weka 3.7.6 にはパッケージ マネージャーがあり、簡単にインストールできます) も参照してください。ドキュメントの分類も。
于 2012-09-22T09:39:09.020 に答える
0

2番目の質問について2)フィルターを適用した後、トレーニングセット内の単語のリストを取得します。分類器でより良い結果を得るには、それらのいずれかを削除する必要がありますか、それとも何の役割も果たしませんか?

私は分類器を構築し、有名な20newsグループデータセットを使用してトレーニングしていましたが、前処理なしでテストしたところ、結果は良くありませんでした。したがって、次の手順に従ってデータを前処理しました。

  1. TAB、NEWLINE、およびRETURN文字をスペースに置き換えます。
  2. 文字のみを保持します(つまり、句読点や数字などをスペースに変換します)。
  3. すべての文字を小文字にします。
  4. 複数のスペースを単一のスペースに置き換えます。
  5. 各ドキュメントのタイトル/件名は、ドキュメントのテキストの先頭に追加されるだけです。
  6. no-short3文字未満の単語を削除することにより前のファイルから取得。たとえば、「彼」を削除しますが、「彼」は保持します。
  7. no-stop524のSMARTストップワードを削除することにより前のファイルから取得。それらのいくつかは、3文字より短いため、すでに削除されています。
  8. 残りの単語にPorter'sStemmerを適用することにより、前のファイルから取得されます。ステミングに関する情報はここにあります。

これらの手順は、http://web.ist.utl.pt/~acardoso/datasets/から取得されます。

于 2012-10-23T19:30:52.537 に答える