スパム メッセージと非スパム メッセージの分類に weka を使用しようとしています。
ラベル付けされた何十万ものスパム メッセージと、別の何十万ものラベル付けされた非スパム メッセージをトレーニング データ セットとして使用stringtowordvector
して、クラシアーをトレーニングするためのフィルターとして使用します。の結果crossValidateModel
は非常に良好です。ただし、トレーニング セットから他のメッセージを分類する信頼性を確保するために、スタンドアロン テスト セットを使用してクラシアーを評価したいと考えています。
私の質問:
stringtowordvector
トレーニング arff ファイルとは独立したスタンドアロンの .arff ファイルを作成するために、テスト データ セットに対しても使用する必要があります。2 つのデータ セットの両方に存在する同じ単語には、それぞれ 2 つの異なる属性インデックスがあります。 2 つの .arff ファイル。たとえば、「money」という単語10
は、トレーニング .arff ファイルではマトリックス インデックスを持っていますが、テスト .arff ファイル内では50th
属性としてインデックス化されています。
既にトレーニングされた分類器が 2 つのデータ セット内のこれらすべての単語を一致させないのではないかと心配しています。これらの単語には異なるマトリックス インデックスがあるためです。より具体的に{1 1,2 1,3 5}
は、トレーニング .arff のベクトルは を"i want to to to to to...."
表しますが、テスト用の .arff ファイルでは、この同じベクトルが を表し"money does not not not not ....."
ます。では、この検証はどのように信頼できるのでしょうか?
ではcrossValidateModel
、同じ arff ファイルのインスタンスを使用するため、weka はインデックスと単語を正しく一致させる必要があります。私の目的は、膨大な数のラベル付きデータセットを使用してトレーニングし、それを使用して、フィードされたラベルなしメッセージを 1 つ分類することです。1 つのメッセージを分類するたびに、このメッセージを .arff ファイルに変換する必要があります。このファイルには、トレーニング .arff ファイルとはまったく異なる属性リストとマトリックス インデックスが含まれています。(私は Windows ツールを使用していません。プログラムで weka .jar API を使用しています)。何か助けはありますか?