Geschichtete Klassifizierung mit zufälligen Wäldern (oder einem anderen Klassifizierer)


12

Ich habe also eine Matrix von ungefähr 60 x 1000. Ich betrachte sie als 60 Objekte mit 1000 Merkmalen. Die 60 Objekte sind in 3 Klassen (a, b, c) eingeteilt. 20 Objekte in jeder Klasse, und wir kennen die wahre Klassifizierung. Ich möchte an diesem Satz von 60 Trainingsbeispielen überwachtes Lernen durchführen und interessiere mich sowohl für die Genauigkeit des Klassifikators (und die zugehörigen Metriken) als auch für die Auswahl der Funktionen für die 1000 Funktionen.

Wie ist meine Nomenklatur?

Nun die eigentliche Frage:

Ich könnte wie angegeben zufällige Wälder darauf werfen oder eine beliebige Anzahl anderer Klassifikatoren. Aber es gibt eine Subtilität - es ist mir wirklich nur wichtig, Klasse c von Klasse a und b zu unterscheiden. Ich könnte die Klassen a und b zusammenfassen, aber gibt es eine gute Möglichkeit, das a priori- Wissen zu nutzen, dass alle Nicht-C-Objekte wahrscheinlich zwei unterschiedliche Cluster bilden? Ich würde es vorziehen, zufällige Wälder oder eine Variante davon zu verwenden, da sich gezeigt hat, dass sie bei ähnlichen Daten wie meinen wirksam sind. Aber ich könnte überzeugt sein, einige andere Ansätze auszuprobieren.


Ich sehe keine Probleme mit Ihrer Nomenklatur. Sind das alles 60 Objekte, die Sie haben? Um eine Klassifizierungsgenauigkeit zu berechnen, müssen Sie Ihren Datensatz in Zug-, Test- (und auch Validierungs-) Sätze aufteilen. Es gibt verschiedene Möglichkeiten, dies zu tun, aber ich denke , die fache Kreuzvalidierung ist die häufigste. k
Emrea

1
Ja, nur diese 60. Aber ich denke, für zufällige Gesamtstrukturen wird jeder Entscheidungsbaum mit einer Teilmenge der Stichproben erstellt, sodass Sie einen geschätzten Generalisierungsfehler erhalten können, indem Sie jede der vorhandenen 60 Stichproben nur auf die Bäume innerhalb der Gesamtstruktur anwenden, die dies nicht getan haben Ich sehe dieses Beispiel während des Baus nicht. ( stat.berkeley.edu/~breiman/RandomForests/cc_home.htm#ooberr ) Vielleicht ist hier keine typische Kreuzvalidierung erforderlich.
user116293

Sie sollten sich große Sorgen um eine Überanpassung machen. Sie haben 1000 Variablen mit 60 Objekten. Ich würde mich viel besser fühlen, wenn es das andere Qay wäre, und ich würde immer noch sagen, Sie sollten sich über eine Überanpassung Gedanken machen. Gibt es eine logische oder semantische Möglichkeit, die Anzahl der Variablen vor der Analyse zu verringern?
Jank

Antworten:


8

Gibt es eine gute Möglichkeit, das A-priori-Wissen zu nutzen, dass alle Nicht-C-Objekte wahrscheinlich zwei unterschiedliche Cluster bilden?

Wenn Sie eine baumbasierte Methode verwenden, ist dies meiner Meinung nach nicht wichtig, da diese Klassifizierer den Feature-Space partitionieren und dann den Anteil der Stichproben in jeder Klasse untersuchen. Alles, was zählt, ist das relative Auftreten der Klasse c in jedem Endknoten.

Wenn Sie jedoch so etwas wie eine Mischung aus Normalen, LDA usw. verwenden würden, wäre es eine schlechte Idee, zwei Cluster zu kombinieren (vorausgesetzt, die Klassen a und b bilden eindeutige Cluster). Hier müssen Sie die Klassenstruktur beibehalten, um den Feature-Space, der a, b und c zugeordnet ist, genau zu beschreiben. Diese Modelle setzen voraus, dass die Merkmale für jede Klasse eine andere Normalverteilung haben. Wenn Sie a und b kombinieren, erzwingen Sie, dass eine einzelne Normalverteilung an eine Mischung angepasst wird.

Zusammenfassend sollte es für Bäume nicht viel ausmachen, wenn Sie:

I. Erstellen Sie drei Klassifikatoren (1. a gegen b, 2. a gegen c und 3. b gegen c) und sagen Sie diese dann mit einer abstimmungsbasierten Methode voraus.

II. Führen Sie die Klassen a und b zu einem Zwei-Klassen-Problem zusammen.

III. Vorhersage aller drei Klassen, dann Abbildung der Vorhersage auf einen Wert mit zwei Klassen (z. B. f (c) = c, f (a) = nicht c, f (b) = nicht c).

Wenn Sie jedoch eine Methode verwenden, die eine Verteilung an jede Klasse anpasst, vermeiden Sie II. und teste welche von I. oder III. funktioniert besser für Ihr Problem


III klingt gut - obwohl ich denke, wenn der Klassifikator sagt, dass eine Stichprobe .33 a, .33 b und .34 c ist, sollte ich wahrscheinlich die Wahrscheinlichkeiten für a und b summieren und daher 'nicht c' wählen.
user116293

1
Was ist für (I) ein gutes Verfahren für eine getrennte Abstimmung (1: a, 2: c, 3: b), oder ist das wahrscheinlich zu selten, um wirklich eine Rolle zu spielen?
user116293

Für III. Was Sie vorschlagen, ist richtig. Für I. bei 3 Klassendaten gibt es meines Erachtens keine Maßnahme, Stimmen zu teilen (jeweils 1), da die transitive Eigenschaft verletzt werden müsste. Für 4+ Klassen können Sie jedoch möglicherweise Krawatten an der Spitze haben. In diesem Fall könnten Sie eine numerische Menge anstelle von Gewinn / Verlust verwenden. dh Summe der Gewichte nehmen die maximale Gewichtsklasse.
Muratoa
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.