2017-02-20 7 views
3

Ich bin neu in R, und versuche zu lösen, warum meine Vorhersage ist außerhalb der Grenzen. Die Frage sollte eine einfache Lösung sein, da dies eher eine Einführung ist.R naiveBayes Klassifikator vorhersagen "Index außerhalb der Grenzen"

gesetzt mein Klassifikator mit Zugdaten

sms_classifier <- naiveBayes(sms_train, sms_train_labels) 

aber Fehler tritt auf, wenn ich versuche funtion gegeben

sms_test_pred <- predict(sms_classifier, sms_test) 

Fehler vorherzusagen zu tun Fehler bei

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

Antwort

1

Angenommen, Sie sind versucht, einen Spam-Klassifikator zu erstellen, der DocumentTerm-Matrix benötigt, das passiert ns, wenn Sie im Testdatensatz mehrere Faktoren (aka Terme) haben, die im Zugdatensatz nicht vorhanden sind. So loszuwerden dieser sehr seltenen Bedingungen den Code unten verwenden -

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)) 

Der obige Code wird keine loszuwerden weniger häufig Begriffe (ohnehin sind sie nutzlos) und die Pegel im Testdatensatzes werden die Pegel im Match Zugdatensatz Dann sollte die Vorhersagefunktion keinen Fehler werfen.

Verwandte Themen