2017-02-20 7 views
3

私はRを初めて使用しているため、予測が範囲外である理由を解決しようとしています。これは簡単な問題ではないでしょうか。R naiveBayesクラシファイアが「範囲外の下付き文字」を予測する

は、列データ

sms_classifier <- naiveBayes(sms_train, sms_train_labels) 

と私の分類器を設定するが、私はあなたがあると仮定すると、目的球に

sms_test_pred <- predict(sms_classifier, sms_test) 

エラー与え エラー

`[.default`(object$tables[[v]], , nd + islogical[attribs[v]]) : subscript out of bounds 

答えて

1

での予測実行しようとするとエラーが発生しますdocumentTerm行列が必要なスパム分類子を構築しようとすると、この問題列車データセットには存在しないテストデータセットの要素(別名)がある場合は、そこで、以下のコードを使用して、これらの非常にまれな用語を取り除く -

freq_terms = findFreqTerms(dtm.train, 5) 
reduced_dtm.train = DocumentTermMatrix(corpus.train, list(dictionary=freq_terms)) 
reduced_dtm.test = DocumentTermMatrix(corpus.test, list(dictionary=freq_terms)) 

上記のコードは、任意の頻度の少ない条件(とにかく、彼らは役に立たない)を取り除くだろうとテストデータセットのレベルが中レベルにマッチします列車データセット。すると、予測関数はエラーを投げてはなりません。

関連する問題