Die Berechnung der Vorhersage-Genauigkeit einer Struktur mit rpart - Vorhersage-Methode (R-Programmierung)
Habe ich gebaut, einen Entscheidungsbaum mit rpart für ein dataset.
Habe ich dann unterteilt die Daten in 2 Teile - einen Trainings-Datensatz und test-Datensatz. Ein Baum wurde konstruiert für das dataset mit den Trainingsdaten. Ich möchte zur Berechnung der Genauigkeit der Vorhersagen, basierend auf dem Modell erstellt wurde.
Mein code ist unten dargestellt:
library(rpart)
#reading the data
data = read.table("source")
names(data) <- c("a", "b", "c", "d", "class")
#generating test and train data - Data selected randomly with a 80/20 split
trainIndex <- sample(1:nrow(x), 0.8 * nrow(x))
train <- data[trainIndex,]
test <- data[-trainIndex,]
#tree construction based on information gain
tree = rpart(class ~ a + b + c + d, data = train, method = 'class', parms = list(split = "information"))
Ich soll nun berechnen Sie die Genauigkeit der Vorhersagen erzeugt, indem das Modell durch den Vergleich der Ergebnisse mit den tatsächlichen Werten trainieren und testen von Daten jedoch bin ich vor ein Fehler dabei.
Mein code ist unten dargestellt:
t_pred = predict(tree,test,type="class")
t = test['class']
accuracy = sum(t_pred == t)/length(t)
print(accuracy)
Bekomme ich eine Fehlermeldung, die besagt -
Fehler in t_pred == t : der Vergleich dieser Typen ist nicht implementiert
Ergänzung: Warnung: Unverträgliche Methoden ("Ops.Faktor",
"Ops.Daten.frame") für "=="
Auf die überprüfung der Art der t_pred, fand ich heraus, dass es vom Typ integer aber die Dokumentation
(https://stat.ethz.ch/R-manual/R-devel/library/rpart/html/predict.rpart.html)
besagt, dass die predict()
Methode muss wieder ein Vektor.
Ich bin nicht in der Lage zu verstehen, warum ist der Typ der variable ist eine ganze Zahl und nicht eine Liste. Wo habe ich den Fehler gemacht und wie kann ich es beheben?
InformationsquelleAutor Ar254 | 2016-10-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, die Berechnung der confusion-matrix erste:
Nun kannst du berechnen, wird die Genauigkeit der durch Division der Summe der Diagonale der matrix - welche sind die richtigen Vorhersagen - durch die Summe der matrix:
Schwer zu sagen, was Los ist, ohne ein reproduzierbares Beispiel.
Ich benutzte den Iris-Datensatz für das oben genannte Beispiel, aber das ist ok. Ich dachte, es jetzt. Nochmals vielen Dank für Ihre Antwort.
InformationsquelleAutor mtoto
Meine Antwort ist sehr ähnlich wie @mtoto ' s einem doch ein bisschen mehr einfach... ich hoffe es hilft auch.
InformationsquelleAutor jgarces