Ich weiß, dass die rpart
Funktion von R die Daten behält, die für die Implementierung einer multivariaten Aufteilung erforderlich sind, aber ich weiß nicht, ob tatsächlich multivariate Aufteilungen durchgeführt werden. Ich habe versucht, es online zu recherchieren, indem ich mir die rpart
Dokumente angesehen habe, aber ich sehe keine Informationen darüber, dass es dies kann oder tut. Weiß jemand sicher?
r
multivariate-analysis
cart
Chubbsondubs
quelle
quelle
Antworten:
Rpart bietet nur univariate Teilungen. Ich glaube, basierend auf Ihrer Frage, dass Sie den Unterschied zwischen einer univariaten Partitionierungsmethode und einer multivariaten Partitionierungsmethode nicht vollständig kennen. Ich habe mein Bestes getan, um dies unten zu erklären, einige Referenzen für die weitere Forschung bereitzustellen und einige R-Pakete zur Implementierung dieser Methoden vorzuschlagen.
Rpart ist ein baumbasierter Klassifikator, der eine rekursive Partitionierung verwendet. Bei Partitionierungsmethoden müssen Sie die Punkte in Ihren Daten definieren, an denen eine Aufteilung vorgenommen werden soll. Der rpart-Algorithmus in R ermittelt dazu die Variable und den Punkt, der den RSS am besten aufteilt (und somit reduziert). Da die Teilungen jeweils nur entlang einer Variablen erfolgen, handelt es sich um univariate Teilungen. Ein multivariater Split wird normalerweise als gleichzeitige Partitionierung entlang mehrerer Achsen (daher multivariat) definiert, dh der erste Teilknoten kann sich entlang des Alters> 35 teilen, der zweite Knoten kann sich entlang des Einkommens> 25.000 teilen und der dritte Knoten kann sich entlang der Städte westlich von teilen der Mississippi. Der zweite und dritte Knoten werden in kleinere Teilmengen der Gesamtdaten aufgeteilt, sodass im zweiten Knoten das Einkommenskriterium den RSS am besten nur für Personen mit einem Alter von über 35 Jahren aufteilt. Dies gilt nicht für Beobachtungen, die in diesem Knoten nicht gefunden wurden. Gleiches gilt für das Kriterium Städte. Dies kann so lange fortgesetzt werden, bis für jede Beobachtung in Ihrem Datensatz ein Knoten vorhanden ist (rpart verwendet zusätzlich zu einem Kriterium für die minimale Knotengröße eine Funktion für die minimale Bucket-Größe und einen cp-Parameter, der das Minimum darstellt, um das sich der r-Quadrat-Wert erhöhen muss weiter montieren).
Eine multivariate Methode, wie die Methode zur Induktion von Patientenregeln (das Prim-Paket in R), würde gleichzeitig aufgeteilt, indem beispielsweise Alle Beobachtungen mit einem Einkommen von mehr als 22.000, Alter> 32 und Städte westlich von Atlanta ausgewählt würden. Der Grund, warum die Anpassung unterschiedlich sein kann, liegt darin, dass die Berechnung für die Anpassung multivariat statt univariat ist. Die Anpassung dieser drei Kriterien wird basierend auf der gleichzeitigen Anpassung der drei Variablen an alle Beobachtungen berechnet, die dieses Kriterium erfüllen, anstatt iterativ zu partitionieren univariate Teilungen (wie bei rpart).
Es gibt unterschiedliche Ansichten hinsichtlich der Wirksamkeit von univariaten gegenüber multivariaten Partitionierungsmethoden. Im Allgemeinen habe ich in der Praxis gesehen, dass die meisten Menschen zu Erklärungszwecken eine univariate Partitionierung (wie z. B. rpart) bevorzugen (sie wird nur zur Vorhersage verwendet, wenn ein Problem behandelt wird, bei dem die Struktur sehr gut definiert ist und die Variation zwischen den Variablen fair ist konstant, deshalb werden diese häufig in der Medizin verwendet). Univariate Baummodelle werden normalerweise mit Ensemble-Lernenden kombiniert, wenn sie für die Vorhersage verwendet werden (dh ein zufälliger Wald). Menschen, die multivariate Partitionierung oder Clustering verwenden (was sehr eng mit multivariater Partitionierung zusammenhängt), tun dies häufig bei komplexen Problemen, bei denen univariate Methoden sehr schlecht passen, und zwar hauptsächlich zur Vorhersage oder zur Gruppierung von Beobachtungen in Kategorien.
Ich kann Julian Faraways Buch Extending the Linear Model with R nur empfehlen. Kapitel 13 widmet sich ausschließlich der Verwendung von Bäumen (alle univariat). Wenn Sie sich weiter für multivariate Methoden interessieren, finden Sie Elemente des statistischen Lernens von Hastie et. bietet einen hervorragenden Überblick über viele multivariate Methoden, einschließlich PRIM (obwohl Friedman in Stanford seinen Originalartikel über die Methode auf seiner Website veröffentlicht hat) sowie Clustering-Methoden.
In Bezug auf R-Pakete zur Verwendung dieser Methoden glaube ich, dass Sie das rpart-Paket bereits verwenden, und ich habe das prim-Paket oben erwähnt. Es gibt verschiedene integrierte Clustering-Routinen, und ich mag das Party-Paket, das von einer anderen Person in diesem Thread erwähnt wird, sehr, da es bedingte Inferenz im Entscheidungsbaum-Erstellungsprozess implementiert. Mit dem optpart-Paket können Sie eine multivariate Partitionierung durchführen, und mit dem mvpart-Paket (auch von einer anderen Person erwähnt) können Sie multivariate rpart-Bäume ausführen. Ich persönlich bevorzuge jedoch die Verwendung von partDSA, mit der Sie Knoten weiter unten in Ihrem Baum kombinieren können, um eine Partitionierung ähnlicher Elemente zu verhindern Beobachtungen, wenn ich der Meinung bin, dass Part und Party für meine Modellierungszwecke nicht angemessen sind.
Hinweis: In meinem Beispiel für einen Teilbaum in Absatz 2 beschreibe ich, wie die Partitionierung mit Knotennummern funktioniert. Wenn man diesen Baum zeichnen würde, würde die Partitionierung nach links fortgesetzt, wenn die Regel für die Aufteilung wahr wäre, jedoch in RI Ich glaube, die Aufteilung geht tatsächlich nach rechts, wenn die Regel wahr ist.
quelle
So schnell ich weiß, tut es nicht; habe es aber schon eine Weile nicht mehr benutzt. Wenn ich Sie gut verstehe, sollten Sie sich stattdessen das Paket mvpart ansehen .
quelle
Ihre Terminologie ist verwirrend. Meinst du Splits mit mehr als einer Variablen oder einem Baum, der eine multivariate (im Gegensatz zu einer univariaten) Antwort zulässt? Letzteres nehme ich an.
F. Tusell hat Sie auf das mvpart-Paket hingewiesen, das ein multivariates Kriterium für die Knotenverunreinigung hinzufügt, das für alle möglichen Teilungen in jeder Phase der Baumbildung bewertet wird.
Eine Alternative ist das Party- Paket, dessen Funktion
ctree()
multivariate Antworten verarbeiten kann.quelle
rpart
, die binäre Aufteilung wird gebildet, indem alle Variablen und alle möglichen Aufteilungsstellen innerhalb jeder Variablen durchsucht werden.rpart
speichert auch Informationen über Ersatzaufteilungen, die verwendet werden können, wenn Daten in Ihren Variablen fehlen. Hilft das?rpart
behandelt diesen Fall nicht.Multivariate Splits, wie sie im CART-Buch definiert sind, sind in nicht implementiert
rpart
. Das CART-Softwarepaket von Salford Systems verfügt über diese Funktion, AFAIK verwendet jedoch einen proprietären Algorithmus, der von Breiman, Friedman et al.quelle