Feature-Konstruktion in R.


8

Ich frage mich, ob es in R Algorithmen (möglicherweise genetische Algorithmen) für die Merkmalskonstruktion gibt (Ableiten von Prädiktorkandidaten von vorhandenen Prädiktoren). Ich denke an eine Routine zum Testen von Potenzen höherer Ordnung, Wechselwirkungen, Verhältnissen und linearen Kombinationen sowie nichtlinearen Funktionen vorhandener Variablen (sin, cos, atan usw.).

Dies kann eine Filter- oder Wrapper-Routine sein (dh kein Lernalgorithmus verwenden oder einen verwenden, um die Fitness des Features zu definieren).

Mein Ziel ist es, potenziell bedeutsame Verhältnisse und dergleichen bestehender Prädiktoren zu "entdecken".

Vielen Dank!


Haben Sie das Paket "Oblique.tree" ausprobiert? cran.r-project.org/web/packages/oblique.tree/index.html best

Antworten:


3

Es scheint mir, dass Sie dadurch sehr anfällig für Probleme wie falsche Korrelation und sogar Überanpassung sind. Ich vergesse den Namen des Prinzips, der besagt, je mehr Modelle Sie versuchen, desto größer ist das Risiko, auf ein schlechtes zu stoßen. Wenn Sie so viele Modelle ausprobieren, dass tatsächlich ein genetischer Algorithmus ausgeführt wird, können Sie sich vorstellen, wie gegen dieses Prinzip verstoßen wird.


1
Ich denke, das OP spricht davon, einen genetischen Algorithmus zu verwenden, um Merkmale zu extrahieren oder zu konstruieren, nicht um Modelle zu finden.
Aman

2

Sie könnten folgendermaßen vorgehen: Ausgehend von einem data.frame fügen Sie Ihren Daten einen 'vernünftigen' Satz transformierter Prädiktoren oder sogar Interaktionen hinzu (model.matrix und ähnliche sollten dies können).

Sobald Sie dort sind, kann jede Variablenauswahlmethode durchgeführt werden. glmnetkommt mir in den Sinn, aber es gibt viele Möglichkeiten. Ein Nachteil dieser Arbeitsweise besteht darin, dass es schwierig ist sicherzustellen, dass der Haupteffekt im Modell liegt, wenn eine Interaktion stattfindet. Vielleicht unterstützen einige Formen der Variablenauswahl dies, aber ich kenne keine offensichtlichen außer schrittweisen Verfahren (die dem Zweck widersprechen würden).


1

Sie könnten mit etwas Einfachem beginnen, wie dem Finden von Hauptkomponenten oder unabhängigen Komponenten . Sie könnten auch ein bisschen verrückt werden und alle wechselseitigen Interaktionen Ihrer Variablen generieren. Wenn Sie mehr Features generieren und testen, benötigen Sie natürlich einen Feature-Auswahlalgorithmus, der robuster gegen Überanpassung ist.

Einige Modellierungsalgorithmen wie MARS , zufällige Gesamtstrukturen und nichtlineare SVMs finden automatisch bestimmte Interaktionen zwischen Ihren ursprünglichen Funktionen.


1
(+1) Es scheint mir, dass das Problem mit RFs oder SVMs (und allgemeiner mit Ensemble-Methoden) darin besteht, dass solche Interaktionen selten direkt interpretierbar sind. Es wurden einige Variationen rund um das Absacken vorgeschlagen, die es ermöglichen, eine Merkmalsauswahl für einen bestimmten Prädiktortyp durchzuführen, siehe z . B. das Logik-FS- Paket.
Chl
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.