Gibt es eine Äquivalenz von „anova“ (für lm) zu einem rpart Objekt?
-
25-09-2019 - |
Frage
Wenn rpart
Funktion unter Verwendung von R, kann ich leicht ein Modell mit ihm passen. zum Beispiel:
# Classification Tree with rpart
library(rpart)
# grow tree
fit <- rpart(Kyphosis ~ Age + Number + Start,
method="class", data=kyphosis)
printcp(fit) # display the results
plotcp(fit)
summary(fit) # detailed summary of splits
# plot tree
plot(fit, uniform=TRUE,
main="Classification Tree for Kyphosis")
text(fit, use.n=TRUE, all=TRUE, cex=.8)
Meine Frage ist - Wie kann ich die „Bedeutung“ von jedem meiner drei erklärenden Variablen (Alter, Anzahl, Start) zum Modell messen?
Wenn dies ein Regressionsmodell war, konnte ich auf p-Werten aus dem „Anova“ F-Test (zwischen lm
Modellen mit und ohne Variable) sieht. Aber was ist die Gleichwertigkeit der Verwendung von „anova“ auf lm
zu einem rpart
Objekt?
(Ich hoffe, ich es geschafft, meine Frage klar zu machen)
Danke.
Lösung
Natürlich anova wäre unmöglich, da anova beinhaltet die gesamte Variation in der Reaktionsvariable Berechnung und Partitionieren es in informativen Komponenten (SSA, SSE). Ich kann nicht sehen, wie man die Summe der Quadrate für eine kategorische Variable wie Kyphosis berechnen könnte.
Ich denke, dass Sie eigentlich, was im Gespräch über Attribut Auswahl (oder Auswertung). Ich würde die information gain
Maßnahme beispielsweise verwenden. Ich denke, dass das ist, was verwendet wird, um das Test-Attribut an jedem Knoten im Baum und das Attribut mit dem höchsten Informationsgewinn (oder größter Entropie Reduktion), um für den aktuellen Knoten als Test Attribut ausgewählt wird. Dieses Attribut minimiert die erforderlichen Informationen, um die Proben in den resultierenden Partitionen zu klassifizieren.
Ich bin mir nicht bewusst, ob es eine Methode des Rang Attribute entsprechend ihren Informationsgewinn in R, aber ich weiß, dass es in WEKA und gestattet InfoGainAttributeEval Er wertet den wert eines Attributs durch den Informationsgewinn in Bezug auf die Klasse zu messen. Und wenn Sie Ranker
als Search Method
verwenden, werden die Attribute, die von ihren individuellen Auswertungen eingestuft.
Bearbeiten
Schließlich fand ich einen Weg, dies in R zu tun Bibliothek CORElearn
mit
estInfGain <- attrEval(Kyphosis ~ ., kyphosis, estimator="InfGain")
print(estInfGain)