Müssen wir immer noch Features auswählen, während wir Regularisierungsalgorithmen verwenden?

20

Ich habe eine Frage zum Erfordernis, Merkmalsauswahlmethoden (Wichtigkeitswert für zufällige Gesamtstrukturen oder Auswahlmethoden für univariate Merkmale usw.) zu verwenden, bevor ein statistischer Lernalgorithmus ausgeführt wird.

Wir wissen, dass wir Regularisierungsstrafen für die Gewichtsvektoren einführen können, um eine Überanpassung zu vermeiden.

Wenn ich also eine lineare Regression durchführen möchte, könnte ich die Parameter L2 oder L1 oder sogar Elastic Net Regularization einführen. Um spärliche Lösungen zu erhalten, hilft die L1-Strafe bei der Featureauswahl.

Muss die Featureauswahl dann noch durchgeführt werden, bevor die L1-Regularisierung und die Regression ausgeführt werden, z. B. Lasso ?. Technisch gesehen hilft mir Lasso dabei, die Features um den L1-Nachteil zu reduzieren. Warum wird dann die Feature-Auswahl benötigt, bevor der Algo ausgeführt wird?

Ich habe einen Forschungsartikel gelesen, in dem es heißt, dass Anova und dann SVM eine bessere Leistung bringen als SVM allein. Die Frage ist nun: SVM führt inhärent eine Regularisierung unter Verwendung der L2-Norm durch. Um den Spielraum zu maximieren, wird die Gewichtsvektornorm minimiert. Es führt also eine Regularisierung in seiner objektiven Funktion durch. Dann sollten sich technisch gesehen Algorithmen wie SVM nicht um Merkmalsauswahlmethoden kümmern. Der Bericht besagt jedoch weiterhin, dass die Auswahl von univariaten Features vor der Verwendung von normalem SVM leistungsstärker ist.

Jemand mit Gedanken?

Baktaawar
quelle
Eine Frage, die ich stellen möchte, ist, wie die SVM-Regularisierung mit Kernelmethoden funktioniert. Das L2-Normregister setzt voraus, dass die Eingänge normalisiert werden. Wenn Sie jedoch einen Kernel verwenden (z. B. ein Polynom), werden Ihre effektiven Eingaben (dh die Polynomkräfte) nicht mehr normalisiert.
Seanv507

Antworten:

17

Die Feature-Auswahl verbessert manchmal die Leistung von regularisierten Modellen, aber meiner Erfahrung nach verschlechtert sie im Allgemeinen die Generalisierungsleistung. Der Grund dafür ist, dass je mehr Entscheidungen wir in Bezug auf unser Modell treffen (einschließlich der Werte der Parameter, der Auswahl der Features, der Einstellung der Hyperparameter, der Auswahl des Kernels ...), desto mehr Daten müssen wir treffen diese Entscheidungen zuverlässig. Im Allgemeinen treffen wir diese Auswahl, indem wir ein Kriterium minimieren, das über einen endlichen Datensatz ausgewertet wird, was bedeutet, dass das Kriterium zwangsläufig eine Abweichung ungleich Null aufweist. Wenn wir das Kriterium zu aggressiv minimieren, können wir es überanpassen, dh wir können Entscheidungen treffen, die das Kriterium aufgrund von Merkmalen minimieren, die von der jeweiligen Stichprobe abhängen, an der es ausgewertet wird, und nicht, weil es a erzeugt echte Leistungssteigerung.

Nun ist die SVM eine ungefähre Implementierung einer Beschränkung der Generalisierungsleistung, die nicht von der Dimensionalität abhängt. Daher können wir im Prinzip eine gute Leistung ohne Feature-Auswahl erwarten, vorausgesetzt, die Regularisierungsparameter sind richtig gewählt. Die meisten Methoden zur Merkmalsauswahl haben keine solchen Leistungsgarantien.

Bei L1-Methoden würde ich mich sicherlich nicht um die Auswahl von Features kümmern, da das L1-Kriterium im Allgemeinen zum Zuschneiden von Features wirksam ist. Der Grund dafür ist, dass die Reihenfolge, in der Features in das Modell eintreten und es verlassen, geändert wird. Dadurch wird die Anzahl der verfügbaren Auswahlmöglichkeiten bei der Auswahl von Features verringert und die Gefahr einer Überanpassung verringert.

Der beste Grund für die Auswahl von Funktionen besteht darin, herauszufinden, welche Funktionen relevant / wichtig sind. Der schlimmste Grund für die Auswahl von Features ist die Verbesserung der Leistung. Bei regulierten Modellen verschlimmert dies die Situation im Allgemeinen. Für einige Datasets kann dies jedoch einen großen Unterschied bedeuten. Probieren Sie es aus und verwenden Sie ein robustes, unvoreingenommenes Leistungsbewertungsschema (z. B. verschachtelte Kreuzvalidierung), um herauszufinden, ob es sich bei Ihrem Dataset um einen dieser Datasets handelt.

Dikran Beuteltier
quelle
Was meinen Sie mit verschachtelter Quervalidierung? Wendet es N-mal die k-fache Kreuzvalidierung an?
yasin.yazici
5

jβ^j=.0001β^j=0

Es gibt jedoch noch Gründe, eine Variable vollständig zu entfernen.

  1. Manchmal ist das Ziel nicht die Vorhersagegenauigkeit, sondern die Erklärung eines Weltphänomens. Manchmal möchten Sie wissen, was Variablen für eine bestimmte abhängige Variable tun und was nicht. In solchen Situationen ist ein sparsames Modell eine bevorzugte Methode zum Verstehen und Interpretieren
  2. β^j
  3. Berechnungsgründe - Ein Modell mit weniger Variablen wird im Allgemeinen schneller ausgeführt, und Sie müssen die Daten für diese externen Variablen nicht speichern.
TrynnaDoStat
quelle
2
Hallo TrynnaDoStat, ich stimme Ihrem Punkt 1 und 3 vollkommen zu. Aber Argument 2 trifft den Punkt nicht wirklich. Wenn Sie die Featureauswahl mit demselben Datensatz durchführen, besteht auch das Risiko, dass Sie den falschen Featuresatz ausgewählt haben. Weil eine Zufallsvariable gut mit der Zielvariablen in den Daten zu korrelieren scheint.
gstar2002
β^j
0

Ich denke nicht, dass Überanpassung der Grund ist, warum wir zuerst die Auswahl von Funktionen benötigen. Tatsächlich tritt eine Überanpassung auf, wenn wir dem Modell nicht genügend Daten zur Verfügung stellen. Durch die Auswahl von Features wird die Datenmenge, die wir unserem Algorithmus übergeben, weiter reduziert .

Ich würde stattdessen sagen, dass die Merkmalsauswahl als Vorverarbeitungsschritt für Modelle benötigt wird, die nicht in der Lage sind, die Wichtigkeit von Merkmalen selbst zu bestimmen, oder für Algorithmen, die viel weniger effizient sind, wenn sie diese Wichtigkeitsgewichtung selbst vornehmen müssen .

Nehmen Sie zum Beispiel einen einfachen Algorithmus für den nächsten k-Nachbarn, der auf der euklidischen Entfernung basiert. Es werden immer alle Merkmale mit dem gleichen Gewicht oder der gleichen Wichtigkeit für die endgültige Klassifizierung betrachtet. Wenn Sie also 100 Funktionen angeben, aber nur drei davon für Ihr Klassifizierungsproblem relevant sind, werden die Informationen aus den drei wichtigen Funktionen durch das Rauschen dieser zusätzlichen Funktionen vollständig überdeckt, und Sie erhalten keine nützlichen Vorhersagen. Wenn Sie stattdessen die kritischen Merkmale im Voraus bestimmen und nur diese an den Klassifizierer übergeben, funktioniert dies viel besser (ganz zu schweigen davon, dass dies viel schneller ist).

Schauen Sie sich andererseits einen zufälligen Waldklassifikator an. Während des Trainings wird automatisch ermittelt, welche Funktionen am nützlichsten sind, indem aus einer Teilmenge aller Funktionen eine optimale Aufteilung ermittelt wird. Daher ist es viel besser, die 97 nutzlosen Funktionen zu durchsuchen, um die drei guten zu finden. Natürlich wird es immer noch schneller ausgeführt, wenn Sie die Auswahl im Voraus vornehmen, aber die Klassifizierungsstärke leidet normalerweise nicht darunter, wenn es viele zusätzliche Funktionen gibt, auch wenn diese nicht relevant sind.

Schauen Sie sich zum Schluss neuronale Netze an. Auch hier handelt es sich um ein Modell, bei dem irrelevante Features ignoriert werden können, und beim Training durch Backpropagation werden in der Regel die interessanten Features verwendet. Es ist jedoch bekannt, dass Standard-Trainingsalgorithmus viel schneller konvergieren, wenn die Eingaben "weiß" sind, dh auf Einheitsvarianz skaliert und mit entfernter Kreuzkorrelation (LeCun et al., 1998) . Obwohl Sie die Featureauswahl nicht unbedingt durchführen müssen, kann sich die Vorverarbeitung der Eingabedaten als reine Leistung erweisen.

Zusammenfassend würde ich sagen, dass die Merkmalsauswahl weniger mit Überanpassung als vielmehr mit der Verbesserung der Klassifizierungsleistung und der Recheneffizienz einer Lernmethode zu tun hat. Wie viel davon benötigt wird, hängt stark von der jeweiligen Methode ab.

cfh
quelle
3
(1) Ich stimme Ihrem ersten Vorschlag nicht zu. Die Auswahl von Features reduziert nicht die Datenmenge, sondern die Anzahl der Features. Die Anzahl der Instanzen (Stichproben) bleibt gleich, und es kann zu einer Überanpassung führen, da der Klassifizierer weniger Parameter benötigt (wenn es sich um ein parametrisches Modell handelt), um die Daten anzupassen. Weniger Parameter bedeuten weniger Darstellungskraft, daher ist eine Überanpassung weniger wahrscheinlich. (2) Welche Art von Funktionsauswahlalgorithmus sollten Sie vor KNN verwenden? Woher weiß es, welche Funktionen effektiver sind?
yasin.yazici
@ yasin.yazici: Angenommen, Sie führen eine handschriftliche Ziffernklassifizierung durch, und Sie werfen alle außer dem Pixel ganz oben links weg. Haben Sie nicht einfach die Datenmenge reduziert, die Sie hatten?
Vgl.
@chf Nein, es reduziert nur die Anzahl der Funktionen. Damit der Datensatz nicht MNIST ist, gibt es 784 Merkmale für jede Probe und 60000 Proben. Wenn Sie einen Teil Ihrer Funktionen wegwerfen, haben Sie immer noch 60000 Beispiele.
yasin.yazici
@ yasin.yazici: Mein Punkt ist, dass die Anzahl der Stichproben nicht der Datenmenge entspricht. Daten sind die gesamte Matrix aus "Stichproben x Merkmalen".
Vgl.
Die Funktionsauswahl kann (und wird oft) zu stark sein. Wenn Sie regulierte Lerner einsetzen und sich nicht um die Wichtigkeit von Features kümmern, kann die Featureauswahl nur sinnvoll sein, wenn Sie über viele Daten und ein zuverlässiges Validierungsschema verfügen.
Firebug
0

Ich denke, wenn Sie nicht genügend Datenpunkte haben, um die Parameter robust zu optimieren, können Sie die Featureauswahl durchführen, um einige Variablen zu entfernen. Aber ich würde nicht empfehlen, zu viel davon zu tun, da Sie das Signal verlieren können, das Sie modellieren möchten.

Darüber hinaus gibt es möglicherweise bestimmte Funktionen, die Sie in Ihren Modellen aufgrund des Geschäftsverständnisses nicht benötigen und die Sie möglicherweise entfernen möchten.

DeepakML
quelle
0

Im Falle von Lasso ist die Vorverarbeitung der Daten zum Entfernen von störenden Merkmalen eigentlich ziemlich verbreitet. Ein kürzlich veröffentlichtes Papier, in dem die Möglichkeiten hierfür erläutert wurden, finden Sie unter Screening-Tests für Lasso-Probleme von Xiang et al . Die häufigste Motivation, die ich in den Veröffentlichungen gesehen habe, besteht darin, den Rechenaufwand für die Berechnung der Lösung zu verringern.

user795305
quelle