Zufällige Gesamtstruktur aus mehrstufigen / hierarchisch strukturierten Daten

13

Ich bin ziemlich neu im maschinellen Lernen, in CART-Techniken und ähnlichem, und ich hoffe, dass meine Naivität nicht zu offensichtlich ist.

Wie geht Random Forest mit mehrstufigen / hierarchischen Datenstrukturen um (z. B. wenn eine Interaktion über mehrere Ebenen von Interesse ist)?

Das heißt, Datensätze mit Analyseeinheiten auf mehreren hierarchischen Ebenen ( z. B. in Schulen verschachtelte Schüler mit Daten sowohl zu den Schülern als auch zu den Schulen).

Betrachten Sie als Beispiel einen mehrstufigen Datensatz mit Personen auf der ersten Ebene ( z. B. Daten zum Wahlverhalten, zur Bevölkerungszahl usw.), der in Ländern auf der zweiten Ebene verschachtelt ist ( mit Daten auf Länderebene, z . B. Bevölkerung):

ID voted age female country population
1 1 19 1 1 53.01
2 1 23 0 1 53.01
3 0 43 1 1 53.01
4 1 27 1 1 53.01
5 0 67 0 1 53.01
6 1 34 1 2 47.54
7 0 54 1 2 47.54
8 0 22 1 2 47.54
9 0 78 0 2 47.54
10 1 52 0 2 47.54

Nehmen wir an, dies votedist die Antwort- / abhängige Variable und die anderen sind Prädiktor- / unabhängige Variablen. In dieser Art von Fällen, Margen und marginale Effekte einer Variablen (Teilabhängigkeit) für ein übergeordnetes Variable ( zB , population) für verschiedene Einzelebenen - Variablen etc., könnte sehr interessant sein. In einem ähnlichen Fall glmist dies natürlich angemessener - aber wenn es viele Variablen, Interaktionen und / oder fehlende Werte und / oder sehr große Datensätze usw. gibt, glmist dies nicht so zuverlässig.

Unterfragen: Kann Random Forest auf irgendeine Weise explizit mit dieser Art von Datenstruktur umgehen? Welche Art von Verzerrung bringt es mit sich, wenn es trotzdem verwendet wird? Wenn Random Forest nicht geeignet ist, gibt es eine andere Ensemble-Methode?

(Die Frage " Zufällige Gesamtstruktur für gruppierte Daten" ist möglicherweise ähnlich, beantwortet dies jedoch nicht wirklich.)

Mikael Poul Johannesson
quelle
Hallo @MikaelAndersson, hast du eine Lösung für die Fragen gefunden, die du aufgeworfen hast? Ich stehe vor einer ähnlichen Situation und hoffe, Ihre Erfahrung zu hören. Vielen Dank.
NoviceProg

Antworten:

4

Random Forests funktionieren problemlos, aber Sie müssen sehr vorsichtig sein, wenn Sie die Hyperparameter optimieren (insbesondere, wenn Sie ein realistisches Maß für die Generalisierungsleistung wünschen). Die traditionellen OOB-Fehlerschätzungen sind weitestgehend optimistisch, da Ihre Daten häufig "twinning" sind.

Um die richtigen Optimierungs- und Verallgemeinerungsschätzungen zu erhalten, müssen Sie die Merkmale aller neuen Daten verstehen, auf die Sie voraussichtlich stoßen. Wenn Sie auf neue Länder extrapolieren möchten, müssen Sie eine Art von Neuabtastung einrichten (z. B. k-fache Kreuzvalidierung), die eine nach Ländern geschichtete Abtastung durchführt.

Sie müssen auch vorsichtig sein, wie Sie die Daten in eine zufällige Gesamtstruktur codieren. Es scheint, dass dies countryeine kategoriale Variable ist. Das Eingeben als Zahl wäre etwas grob, aber nicht hoffnungslos (insbesondere, wenn Sie die IDs nach etwas Nützlichem geordnet haben).

Shea Parkes
quelle
Könnten Sie etwas näher erläutern, warum die OOB-Fehlerschätzungen zu optimistisch sind?
dmartin
2
Ich nehme an, ihr Optimismus hängt davon ab, wie neue Daten aussehen könnten. Wenn neue Daten aus anderen Landkreisen stammen, wird diese zufällige Gesamtstruktur wahrscheinlich nicht so gut ausgeführt, wie es die OOB-Fehler anzeigen. Dies liegt daran, dass die OOB-Fehler beispielsweise immer noch aus Stichproben derselben Anzahl von Countys stammen.
Shea Parkes
3

Ich arbeite gerade an einem R-Paket, das randomForest als lokalen Klassifikator entlang einer vordefinierten Klassenhierarchie ausführt. Das Paket befindet sich in R Forge unter 'hie-ran-forest'. Das Paket ist bereits einsatzbereit, obwohl es einen der Cran-Tests (für MAC) nicht besteht, weiß ich nicht genau warum. Das Paket führt nicht nur randomForest für jeden übergeordneten Knoten in der Hierarchie aus, sondern enthält auch Vorhersagefunktionen und Leistungsfunktionen. Eine der Leistungskennzahlen berücksichtigt tatsächlich die hierarchische Klassenstruktur.

Das Paket adressiert die Interaktion zwischen Ebenen, indem zunächst eine zufällige Gesamtstruktur als lokaler Klassifizierer auf jedem übergeordneten Knoten der Klassenhierarchie ausgeführt wird. Als nächstes ruft die Vorhersagefunktion den Anteil der Out-of-Bag-Stimmen ab, die jeder Fall in jedem lokalen Klassifikator erhalten hat. Dann gibt es zwei Möglichkeiten, den Stimmenanteil in eine klare Klassifizierung umzuwandeln: 1. Eine Regel mit schrittweiser Mehrheit - Beginnen Sie mit dem lokalen Klassifizierer, der der Baumwurzel am nächsten liegt, und wählen Sie das Kind dieses Klassifizierers aus, das den höchsten Stimmenanteil erhalten hat. Schauen Sie sich als Nächstes alle untergeordneten Elemente des ausgewählten Knotens an und wählen Sie erneut das untergeordnete Element aus, das im entsprechenden lokalen Klassifikator den höchsten Stimmenanteil erhalten hat. Fahren Sie fort, bis ein Endknoten erreicht ist. 2.

Der multiplikative Stimmenanteil ist vergleichbar mit dem Stimmenanteil, der von einem regulären randomForest erzeugt wird

Yoni Gavish
quelle
2
Können Sie klarstellen, dass Ihr Paket "Interaktionen zwischen Ebenen" behandelt und wenn ja, wie dies geschieht? Nur zu sagen, dass ein Paket existiert, ist keine gute Antwort (ich möchte hier nicht zu kritisch sein, aber CV ist bestrebt, ein dauerhaftes Repository mit hochwertigen ML-Informationen aufzubauen, und die Tatsache, dass ein Paket existiert, tut dies nicht Erfüllen Sie diesen Standard.)
gung - Setzen Sie Monica wieder ein
Beachten Sie, dass Ihr Benutzername mit einem Link zu Ihrer Benutzerseite automatisch an jeden Beitrag angehängt wird, den Sie hier verfassen. Es ist also nicht erforderlich, Ihre Posts zu unterschreiben - wir bevorzugen, dass Sie nicht unterschreiben. Wenn Sie möchten, dass Personen mit Ihnen Kontakt aufnehmen können, können Sie eine Methode (z. B. Ihre E-Mail-Adresse) auf Ihrer Benutzerseite veröffentlichen.
gung - Wiedereinsetzung von Monica
Das ist großartig, danke @YoniGavish. Bearbeiten Sie Ihre Antwort und fügen Sie diese Informationen hinzu.
gung - Wiedereinsetzung von Monica
Ist das besser @gung?
Yoni Gavish
Ja, das wird es tun, @YoniGavish, +1. Willkommen auf der Seite.
gung - Wiedereinsetzung von Monica
3

In einem einzelnen Klassifizierungsbaum werden diese Gruppen wie alle anderen kategorialen Variablen codiert. Dies erfolgt häufig entweder als Binärcodierung oder nur mit einer Ganzzahl. Es gibt verschiedene Argumente für beide. Wenn Sie in zufälligen Gesamtstrukturen binäre Codierung verwenden, werden einige Gruppen für einen bestimmten Baum eingeschlossen / ausgeschlossen. Sie haben also vielleicht einen Indikator dafür, country_2aber nicht country_3. Wenn Sie die Gruppenvariable als Ganzzahl belassen, kann sich die Reihenfolge auch auf das Ergebnis auswirken. Was bedeutet es für country > 5und country < 12? Wie ändert sich das, wenn Sie die Länder nach dem Zufallsprinzip mit neuen ganzen Zahlen versehen?

Bei jedem Schritt beim Wachsen eines Baums sucht der Algorithmus nach der Aufteilung, die die Kriterien optimiert. Wenn es große Unterschiede zwischen den Gruppen gibt, ist die Gruppierungsvariable wichtig, aber wenn es nur mäßig wichtig ist und Sie einen Baum beschneiden, kann die Variable im Wesentlichen ausgeschlossen werden.

Wie die meisten anderen Algorithmen für maschinelles Lernen berücksichtigen CART und zufällige Gesamtstrukturen nicht unbedingt die Abhängigkeit zwischen Beobachtungen innerhalb von Gruppen, wie Sie dies in einem hierarchischen Regressionsmodell erwarten würden. Wenn eine Abhängigkeit zwischen den Beobachtungen besteht, sollte diese durch den Zufallsalgorithmus erfasst werden, indem viele Bäume generiert werden, die die Gruppierungsvariable verwenden. Wenn jedoch andere Variablen eine stärkere Unterscheidung aufweisen, wird die Gruppierungsvariable möglicherweise ignoriert.

In Ihrem Fall countryund populationsind perfekt kollinear. Es gibt keine Informationen, die durch die Verwendung beider Variablen in Ihrem Modell gewonnen wurden. Sie können sich also überlegen, wie ein zufälliges Gesamtstrukturmodell diese Variablen in Ihren Daten behandeln würde.

Ellis Valentiner
quelle