1

Es ist die Fehlermeldung zum Thema. Ich bekomme diesen Fehler, wenn ich versuche, naive.bayes Klassifikator zu laufen. Hier ist die Zusammenfassung meiner Zugdaten:ungültiger 'Typ' (Zeichen) des Arguments

'data.frame': 7269 obs. of 193 variables: 
$ pid  : int 2 4 5 7 10 11 14 18 25 31 ... 
$ acquir : int 0 0 0 0 1 1 0 0 0 0 ... 
$ addit  : int 0 0 0 0 2 2 0 0 0 0 ... 
$ agre  : int 0 0 0 0 0 0 0 0 0 0 ... 
$ agreement : int 0 0 0 0 0 0 0 0 0 0 ... 
$ also  : int 1 0 0 0 2 2 0 0 0 0 ... 
$ american : int 0 0 0 0 0 0 0 0 0 0 ... 
$ announc : int 0 0 0 0 0 0 0 0 0 0 ... 
$ annual : int 0 0 0 0 0 0 0 0 2 0 ... 
$ approv : int 0 3 0 0 0 0 0 0 0 0 ... 
$ april  : int 0 0 0 0 0 0 0 0 1 0 ... 
$ bank  : int 0 7 0 0 0 0 0 0 0 0 ... 
$ base  : int 0 0 0 0 0 0 0 0 0 0 ... 
. 
. 
$... all of them are integer, except the class column 
. 
. 
$ class  : Factor w/ 10 levels "acq","corn","crude",..: 1 1 4 4 9 1 4 3 1 4 ... 

Und das ist die naive.bayes() Linie:

model <- naiveBayes(as.factor(class) ~ ., data = as.matrix(train), laplace = 3) 

Kann mir jemand sagen, warum es passiert ?:

Error in sum(x) : invalid 'type' (character) of argument 
+0

Schließlich werden Ihre Daten wegen 'as.matrix (train)' in Zeichen umgewandelt. Versuchen Sie 'Modell <- naiveBayes (Klasse ~., Daten = Zug, Laplace = 3)' oder schließlich 'Modell <- naiveBayes (Zug $ Klasse ~., Daten = Zug [, -c (" Klasse ")], Laplace = 3) ' – jogo

+0

@jogo Es hat funktioniert! Vielen Dank! Ich möchte deine Antwort akzeptieren, aber wie? – Whcrs

+0

Ich habe es jetzt eine Antwort gegeben. Hat auch die erste Variante funktioniert oder nur die zweite? – jogo

Antwort

1

Schließlich Ihre Daten wird wegen as.matrix(train) in Zeichen umgewandelt. Versuchen

model <- naiveBayes(class ~ ., data=train, laplace = 3) 

oder schließlich

model <- naiveBayes(train$class ~ ., data=train[, -c("class")], laplace = 3) 

Die zweite Variante mehr oder weniger die gleiche wie die erste Variante ist. Die . im RHS der Formel wird auf "alle anderen Variablen" erweitert; so schließt es die Spalte class aus, die auf der LHS erwähnt wird. (Weitere Informationen finden Sie in der Dokumentation von formula)

Verwandte Themen