Welche der folgenden Schritte ist beim Erstellen eines Vorhersagemodells die richtige?
Option 1:
Beseitigen Sie zuerst die offensichtlich schlechtesten Prädiktoren und verarbeiten Sie die verbleibenden bei Bedarf vor, trainieren Sie dann verschiedene Modelle mit Kreuzvalidierung, wählen Sie die wenigen besten aus, identifizieren Sie die jeweils verwendeten Top-Prädiktoren, trainieren Sie diese Modelle dann nur mit diesen Prädiktoren neu und bewerten Sie die Genauigkeit erneut mit Kreuzvalidierung, dann wählen Sie die beste aus und trainieren Sie sie mit ihren wichtigsten Prädiktoren auf dem gesamten Trainingssatz und verwenden Sie sie dann, um den Testsatz vorherzusagen.
Option 2:
Beseitigen Sie zuerst die offensichtlich schlechtesten Prädiktoren, verarbeiten Sie dann die verbleibenden bei Bedarf vor und verwenden Sie dann eine Merkmalsauswahltechnik wie die rekursive Merkmalsauswahl (z. B. RFE mit HF) mit Kreuzvalidierung, um beispielsweise die ideale Anzahl von Schlüsselprädiktoren und deren Prädiktoren zu identifizieren trainieren Sie dann verschiedene Modelltypen mit Kreuzvalidierung und sehen Sie, welcher mit den zuvor identifizierten Top-Prädiktoren die beste Genauigkeit bietet. Trainieren Sie dann das beste dieser Modelle erneut mit diesen Prädiktoren auf dem gesamten Trainingssatz und verwenden Sie es dann, um den Testsatz vorherzusagen.
Antworten:
Ich fand beide Optionen etwas fehlerhaft. So sieht ein Workflow für die prädiktive Modellierung im Allgemeinen (sehr allgemein) aus:
quelle
Wo die Funktionsauswahl einen Platz in Ihrer Pipeline findet, hängt vom Problem ab. Wenn Sie Ihre Daten gut kennen, können Sie Funktionen basierend auf diesem Wissen manuell auswählen. Wenn Sie dies nicht tun, ist das Experimentieren mit den Modellen unter Verwendung der Kreuzvalidierung möglicherweise am besten. Das Reduzieren der Anzahl von Merkmalen eines Priorats mit einer zusätzlichen Technik wie Chi2 oder PCA kann tatsächlich die Modellgenauigkeit verringern.
Nach meiner Erfahrung mit der Textklassifizierung mit SGD-Klassifizierer hat beispielsweise das Belassen aller hunderttausend Wörter, die als binäre Merkmale codiert sind, bessere Ergebnisse gebracht als das Reduzieren auf einige Tausend oder Hunderte. Die Trainingszeit ist mit allen Funktionen tatsächlich schneller, da die Auswahl der Funktionen mit meinem Toolset (sklearn) eher langsam ist, da es nicht wie SGD stochastisch ist.
Multikollinearität ist etwas, auf das man achten muss, aber die Interpretierbarkeit der Merkmale könnte ebenso wichtig sein.
Dann berichten die Leute, dass sie mit Ensembles von Modellen das beste Ergebnis erzielen. Jedes Modell erfasst einen bestimmten Teil des Informationsraums besser als die anderen. Dies würde Sie auch daran hindern, die Funktionen auszuwählen, bevor Sie alle Modelle in Ihr Ensemble aufnehmen.
quelle