How could I transfer what I've got to this format?
これが私がこれを行う方法です。あなたが持っているスクリプトを使用して、トレーニング セット内の各メールの単語数を計算します。次に、別のスクリプトを使用して、そのデータを前に示した LIBSVM 形式に転送します。(これはさまざまな方法で行うことができますが、Python のような簡単な入出力言語で書くのが妥当なはずです) すべての「良いメール」データを 1 つのファイルにまとめて、そのクラスに「1」というラベルを付けます。 . 次に、「spam-mail」データで同じプロセスを実行し、そのクラスに「-1」というラベルを付けます。nologin が言ったように、LIBSVM では機能の前にクラス ラベルが必要ですが、機能自体は昇順であれば任意の数にすることができます。たとえば、2:5 3:6 5:9 は許可されますが、3:23 1 は許可されません。 :3 7:343。
データが正しい形式ではないことが懸念される場合は、スクリプトを使用してください
checkdata.py
トレーニングの前に、可能性のあるエラーを報告する必要があります。
正しい形式のデータを含む 2 つの別個のファイルができたら、次のように呼び出すことができます。
cat file_good file_spam > file_training
良いメールとスパム メールの両方に関するデータを含むトレーニング ファイルを生成します。次に、テスト セットで同じプロセスを実行します。このようにデータを形成することの心理的な利点の 1 つは、トレーニング (またはテスト) セットの上位 700 (または 300) メールが適切なメールであり、残りがスパム メールであることがわかっていることです。これにより、精度/リコール コードなど、データに作用する可能性のある他のスクリプトを簡単に作成できます。
その他の質問がある場合は、http: //www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html の FAQ でいくつかの回答が得られるはずです。また、インストールに付属するさまざまな README ファイルも参照してください。 . (個人的には、"Tools" および "Python" ディレクトリにある README が大きな恩恵であることがわかりました。) 悲しいことに、FAQ では、データがまばらな形式であるという nologin の発言にはあまり触れていません。
最後に、メールに含まれる可能性のあるすべての単語を数えておく必要があるとは思えません。スパム メールに含まれると思われる最も一般的な単語だけを数えることをお勧めします。その他の潜在的な機能には、総単語数、平均単語長、平均文長、および役立つと思われるその他のデータが含まれます。