3

Weka で Naive Bayes 分類器を使用した NLP 分類プロジェクトに取り組んでいます。半教師付き機械学習を使用する予定であるため、ラベルのないデータを操作します。ラベル付けされたトレーニング データから取得したモデルを、ラベル付けされていないテスト データの独立したセットでテストすると、Weka はすべてのラベル付けされていないインスタンスを無視します。誰でもこれを解決する方法を教えてもらえますか? 誰かが以前にここでこの質問をしましたが、適切な解決策はありませんでした。サンプル テスト ファイルは次のとおりです。

@relation referents
@attribute feature1      NUMERIC
@attribute feature2      NUMERIC
@attribute feature3      NUMERIC
@attribute feature4      NUMERIC
@attribute class{1 -1}
@data
1, 7, 1, 0, ?
1, 5, 1, 0, ?
-1, 1, 1, 0, ?
1, 1, 1, 1, ?
-1, 1, 1, 1, ?
4

1 に答える 1

5

問題は、トレーニング セット -t train.arffテスト セットを指定すると、テスト セットtest.arffに基づいてモデルのパフォーマンスを計算する操作モードになることです。しかし、実際のクラスを知らなければ、いかなる種類のパフォーマンスも計算できません。実際のクラスがなければ、予測が正しいか間違っているかをどのように知ることができますか?

あなたが与えたデータを、私が割り当てた任意のクラスラベルtrain.arffと同様に使用しました。test.arff関連する出力行は次のとおりです。

=== Error on training data ===

Correctly Classified Instances           4               80      %
Incorrectly Classified Instances         1               20      %
Kappa statistic                          0.6154
Mean absolute error                      0.2429
Root mean squared error                  0.4016
Relative absolute error                 50.0043 %
Root relative squared error             81.8358 %
Total Number of Instances                5     


=== Confusion Matrix ===

 a b   <-- classified as
 2 1 | a = 1
 0 2 | b = -1

=== Error on test data ===

Total Number of Instances                0     
Ignored Class Unknown Instances                  5     


=== Confusion Matrix ===

 a b   <-- classified as
 0 0 | a = 1
 0 0 | b = -1

Weka は、実際のクラス ラベルと予測されたラベル (トレーニング セットにモデルを適用する) を知っているため、トレーニング セットの統計を提供できます。テスト セットについては、真のクラス ラベルがわからないため、パフォーマンスに関する情報を取得できません。

あなたがしたいことは次のとおりです。

java -cp weka.jar weka.classifiers.bayes.NaiveBayes -t train.arff -T test.arff -p 1-4

私の場合、これはあなたに与えるでしょう:

=== Predictions on test data ===

 inst#     actual  predicted error prediction (feature1,feature2,feature3,feature4)
     1        1:?        1:1       1 (1,7,1,0)
     2        1:?        1:1       1 (1,5,1,0)
     3        1:?       2:-1       0.786 (-1,1,1,0)
     4        1:?       2:-1       0.861 (1,1,1,1)
     5        1:?       2:-1       0.861 (-1,1,1,1)

したがって、予測を取得することはできますが、ラベル付けされていないテスト データがあるため、パフォーマンスを取得することはできません。

于 2013-05-08T13:50:24.873 に答える