2016-04-14 3 views
0

Ich bekomme einen Fehler bei der Verwendung der naiveBayes() Methode in R. Ich übergebe die as.matrix (train_matrix) als ersten Parameter und as.factor (train_data $ subcategory) an die naiveBayes Funktion.Ich muss naiven Bayes Text Klassifizierung durchführen. Fehler beim Ausführen der naiveBayes() Methode

ich unten Störung erhalte:

Modell < - naiveBayes (as.matrix (trainmatrix), as.factor (traindata $ Unterkategorie)); Fehler in tapply (var, y, Mittelwert, na.rm = TRUE): Argumente müssen gleiche haben Länge

Kann jemand mir auf diesem helfen?

model <- naiveBayes(as.matrix(trainmatrix),as.factor(traindata$subCategory)); 

Wo trainMatrix Begriff Dokument-Matrix ist, traindata - sind die Daten, auf die in müssen das Modell trainiert werden und Unterklasse der Klasse von (unterschiedlichen).

Mache ich es richtig?

Antwort

0

Der Fehler besagt eindeutig, dass Ihre Matrix (Zugmatrix) nicht die gleiche Länge wie der Datenrahmen (Zugdaten) hat, die offensichtlich erwartet wird. die Syntax Modell < -naiveBayes (traindata $ Unterkategorie ~., Data = traindata)

+0

@ Ich habe das Vorhersageergebnis in Form eines Faktors, aber jetzt kann ich die Konfusionsmatrix nicht berechnen !! Kann jemand den Weg teilen, es zu tun? –

0

Getan mit Modell und Konfusionsmatrix erzeugt wird. Unten sind die Code-Schnipsel:

model <- naiveBayes(as.matrix(trainmatrix),as.factor(traindata$subCategory)); 

confusionMatrix(results, traindata$subCategory) 

Wo Ergebnisse ist das Ergebnis der Vorhersage. Hinweis: Die Länge der Ergebnisse und Traindatat $ Subkategorie muss gleich sein, (was ich fehlte).