Hallo Bernhard,
ich habe mich jetzt wieder ransetzen können
1)
Doch, das hat was mit dem Fehler zu tun, denn das überzählige Komma steht nicht nur in dem Aufruf, sondern auch in der Fehlermeldung. Bitte poste den neuen Aufruf und die neue Fehlermeldung im Wortlaut.
Nein, hat es nicht, denn das war einfach von mir copy and paste. Mein code ist komplexer und vielleicht auch umständlicher beschriftet, weil ich alles für meherer Szenarien und Datensätze rechne. Dadurch nenne ich die Codes hier leicht anders und es ist ein typo entstanden. Nun aber trotzdem mein Code - unten jedoch mehr:
Code: Alles auswählen
newdata = data_tree[data_tree_test,]
prediction2 = predict(full_tree, newdata, type = "class")
Error in predict.rpart(full_tree, newdata, type = "class") :
Invalid prediction for "rpart" object
2)
vielleicht ist auch Deine Untergrenze von mindestens 100 Fällen pro Zweig einfach ein bisschen hoch angesetzt.
Damit habe ich natürlich auch rumgespielt. Das scheint nach meiner Meinung keinen Einfluss zu haben.
Es geht also um die Frage, warum mit der Methode für kategoriale Fälle keine Unterteilungen gefunden werden.
Genau, ich habe nun mal Daten hochgeladen. Vielleicht hilft das und hier auch mein Code:
Code: Alles auswählen
# load data
tree = read.csv("daten_forum.csv", header=TRUE, dec=".", sep=";")
colnames(tree)
set.seed(568)
# data in training und test teilen
tree_training <- sample(x=1:nrow(tree), size=0.7*nrow(tree), replace=F)
tree_training
length(tree_training)
tree_test <- (1:nrow(tree))[-tree_training]
length(tree_test)
length(tree_training)+length(tree_test)
# tree with Dependent_1 - integer/classes?
full_tree_1 = rpart(Dependent_1 ~ Independent,
data = tree[tree_training,], method ="class")
rpart.plot(full_tree_1)
# tree with Dependent_2 - factors
full_tree_2 = rpart(Dependent_2 ~ Independent,
data = tree[tree_training,], method ="class")
rpart.plot(full_tree_2)
# tree with Dependent_1 - integer/classes?, method = anova
full_tree_3 = rpart(Dependent_1 ~ Independent,
data = tree[tree_training,], method ="anova")
rpart.plot(full_tree_3)
# tree with Dependent_2 - factors, , method = anova
full_tree_4 = rpart(Dependent_2 ~ Independent,
data = tree[tree_training,] , method ="anova")
rpart.plot(full_tree_4)
# tree with Dependent_1 - integer/classes?, , method = anova, weitere Bedingungen
full_tree_5 = rpart(Dependent_1 ~ Independent,
data = tree[tree_training,], method ="anova",
control=rpart.control(minsplit = 500,
cp = 0.0,
xval = 5))
rpart.plot(full_tree_5)
# tree with Dependent_1 - integer/classes? , method = class, weitere Bedingungen
full_tree_6 = rpart(Dependent_1 ~ Independent,
data = tree[tree_training,], method ="class",
control=rpart.control(minsplit = 500,
cp = 0.0,
xval = 5))
rpart.plot(full_tree_6)
# tree with Dependent_2 - factors, method = anova, weitere Bedingungen
full_tree_7 = rpart(Dependent_2 ~ Independent,
data = tree[tree_training,], method ="anova",
control=rpart.control(minsplit = 500,
cp = 0.0,
xval = 5))
rpart.plot(full_tree_7)
# tree with Dependent_2 - factors, method = class, weitere Bedingungen
full_tree_8 = rpart(Dependent_2 ~ Independent,
data = tree[tree_training,], method ="class",
control=rpart.control(minsplit = 500,
cp = 0.0,
xval = 5))
rpart.plot(full_tree_8)
# tree with Dependent_1 - integer/classes?, method = anova, weitere Bedingungen
full_tree_9 = rpart(Dependent_1 ~ Independent,
data = tree[tree_training,],
control=rpart.control(minsplit = 500,
cp = 0.0,
xval = 0))
rpart.plot(full_tree_9)
# tree with Dependent_2 - factors, method = anova, weitere Bedingungen
full_tree_10 = rpart(Dependent_2 ~ Independent,
data = tree[tree_training,],
control=rpart.control(minsplit = 500,
cp = 0.0,
xval = 0))
rpart.plot(full_tree_10)
#Vorhersage
newdata = tree[tree_test,]
prediction = predict(full_tree_9, newdata, type = "class")
Was ich nach der prediction() erwarte ist eigentlich, dass er mir zeigt, wie oft ich mit meinem Baum richtig liege. Also richtig oder falsch für jeden Fall, dass es eine 1 (Ja) oder 0 (Nein) ist.
Beste Grüße
tim