NaiveBayes in R Nicht Vorhersagen - Faktor(0) Level:
Ich habe einen Datensatz der wie folgt aussieht:
data.flu <- data.frame(chills = c(1,1,1,0,0,0,0,1), runnyNose = c(0,1,0,1,0,1,1,1), headache = c("M", "N", "S", "M", "N", "S", "S", "M"), fever = c(1,0,1,1,0,1,0,1), flu = c(0,1,1,1,0,1,0,1) )
> data.flu
chills runnyNose headache fever flu
1 1 0 M 1 0
2 1 1 N 0 1
3 1 0 S 1 1
4 0 1 M 1 1
5 0 0 N 0 0
6 0 1 S 1 1
7 0 1 S 0 0
8 1 1 M 1 1
> str(data.flu)
'data.frame': 8 obs. of 5 variables:
$ chills : num 1 1 1 0 0 0 0 1
$ runnyNose: num 0 1 0 1 0 1 1 1
$ headache : Factor w/ 3 levels "M","N","S": 1 2 3 1 2 3 3 1
$ fever : num 1 0 1 1 0 1 0 1
$ flu : num 0 1 1 1 0 1 0 1
Warum predict
Funktion gibt mir nichts?
# I can see the model has been successfully created.
model <- naiveBayes(flu~., data=data.flu)
# I created a new data
patient <- data.frame(chills = c(1), runnyNose = c(0), headache = c("M"), fever = c(1))
> predict(model, patient)
factor(0)
Levels:
# I tried with the training data, still won't work
> predict(model, data.flu[,-5])
factor(0)
Levels:
Versuchte ich nach den Beispielen in der Hilfe-Handbuch in der naiveBayes und es funktioniert für mich. Ich bin nicht sicher was ist falsch mit meinem Ansatz. Vielen Dank!
Ich denke, es könnte etwas falsch mit dem Daten-Typ vor der Anwendung des naivebayes-Modell, ich habe versucht zu ändern, alle Variablen zu einem Faktor über as.factor
und es scheint für mich arbeiten. Aber ich bin immer noch super verwirrt, was ist das 'Wie' und 'Warum' hinter der Szene.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Problem nicht in den
predict()
Funktion, sondern in Ihrem Modell-definition.Hilfe-Datei von
naiveBayes()
sagt:Also y-Werte werden sollten, kategorisch, aber in Ihrem Fall, Sie sind numerisch.
Lösung ist, um zu konvertieren
flu
Faktor.predict
bestimmen y==1 tatsächlich hat ein besseres Kosten-Funktion? wo ist die Kosten-Funktion befindet und wie finde ich die Werte der Kostenfunktion für y=0 und y=1 in R?