Schritte des maschinellen Lernens

9

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.

AK
quelle
1
Was meinen Sie damit, den Rest bei Bedarf vorzuverarbeiten ? Ist es Datenbereinigung?
Dawny33
1
Ich wollte die verbleibenden Funktionen vorverarbeiten, die Sie für nützlich halten. Mit Vorverarbeitung meine ich Skalierung oder Transformationen wie Protokoll oder andere, wenn und nach Bedarf.
AK
Ahh, wie ich erwartet hatte :) Wie auch immer, ich habe die Antwort mit dem Workflow geschrieben, dem ich und mein Team im Allgemeinen folgen!
Dawny33

Antworten:

16

Ich fand beide Optionen etwas fehlerhaft. So sieht ein Workflow für die prädiktive Modellierung im Allgemeinen (sehr allgemein) aus:

  • Datenbereinigung : Nimmt die meiste Zeit in Anspruch, aber jede Sekunde, die hier verbracht wird, ist es wert. Je sauberer Ihre Daten diesen Schritt durchlaufen, desto weniger Zeit würden Sie insgesamt aufwenden.
  • Aufteilen des Datensatzes : Der Datensatz wird in Trainings- und Testsätze aufgeteilt, die für Modellierungs- bzw. Vorhersagezwecke verwendet werden. Darüber hinaus müsste eine zusätzliche Aufteilung als Kreuzvalidierungssatz durchgeführt werden.
  • Transformation und Reduktion: Umfasst Prozesse wie Transformationen, mittlere und mittlere Skalierung usw.
  • Funktionsauswahl: Dies kann auf viele Arten erfolgen, z. B. durch Schwellenwertauswahl, Teilmengenauswahl usw.
  • Entwerfen eines Vorhersagemodells: Entwerfen Sie das Vorhersagemodell anhand der Trainingsdaten in Abhängigkeit von den verfügbaren Funktionen.
  • Kreuzvalidierung:
  • Endgültige Vorhersage, Validierung
Dawny33
quelle
Ich denke, Ihre Schritte stimmen mit meiner Option 2 überein. Meines Wissens nach können wir im Rahmen des Merkmalsauswahlschritts eine rekursive Merkmalseliminierungsfunktion (RFE) unter Verwendung zufälliger Gesamtstrukturen ausführen, beispielsweise mit Kreuzvalidierung, um die beste Anzahl von Prädiktoren zu ermitteln und was Sie sind es und verwenden diese Prädiktoren, um mehrere Algorithmen mit Kreuzvalidierung zu trainieren und die Genauigkeit zu vergleichen, um das beste Modell zu erhalten, das diese besten Prädiktoren verwendet. Was denken Sie?
AK
@ AndrewKostandy Ja, der Teilmengenauswahlalgorithmus für die Merkmalsauswahl funktioniert fast genauso :)
Dawny33
Bitte. Ich lerne gerade für eine Prüfung, bei der eine der Standardfragen des Professors lautet: "Was denken Sie zuerst, nachdem Sie die Daten erhalten und bereinigt haben?" :-)
Martin Thoma
@ Dawny33 Möchten Sie nicht Transformationen, Skalierungen usw. durchführen, bevor Sie Ihren Datensatz in Training und Tests aufteilen?
Minu
1
Gibt es einen Grund, warum Sie variable Transformationen und Skalierungen nur für die Trainingsdaten durchführen würden? Wie würden Sie dann die Testdaten anpassen? Nur neugierig.
Minu
3

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.

Diego
quelle