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.
Antworten:
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
quelle