Ich habe zwei Datensätze A und B, die hinsichtlich Anzahl der Spalten, Name der Spalten und Werte genau gleich sind. Der einzige Unterschied ist die Reihenfolge dieser Spalten. Anschließend trainiere ich das LightGBM-Modell für jeden der beiden Datensätze mit den folgenden Schritten
- Teilen Sie jeden Datensatz in Training und Test ein (verwenden Sie für A und B den gleichen zufälligen Startwert und das gleiche Verhältnis).
- Belassen Sie die Hyperparameter als Standard
- Stellen Sie einen Zufallszustand als feste Zahl ein (zur Reproduktion)
- Optimieren Sie die Lernrate mithilfe einer Rastersuche
- Trainieren Sie ein LightGBM-Modell auf dem Trainingsset und testen Sie es auf dem Testset
- Die Lernrate mit der besten Leistung am Testsatz wird ausgewählt
Die Ausgabemodelle für die beiden Datensätze sind sehr unterschiedlich, weshalb ich der Meinung bin, dass die Reihenfolge der Spalten die Leistung des Modelltrainings mit LightGBM beeinflusst.
Wissen Sie, warum dies der Fall ist?
quelle
lightgbm
Ermöglicht dem Benutzer das Festlegen der zufälligen Startwerte für die Zeilen- und Spaltenabtastung.Während die Reihenfolge der Daten theoretisch keine Rolle spielt, ist sie in der Praxis wichtig. In Anbetracht der Tatsache, dass Sie Schritte unternommen haben, um die Reproduzierbarkeit sicherzustellen, ändert eine unterschiedliche Reihenfolge der Daten Ihre Split-Logik für Zugtests (es sei denn, Sie wissen mit Sicherheit, dass die Zug- und Testsätze in beiden Fällen genau gleich sind). Obwohl Sie nicht angeben, wie Sie die Daten aufteilen, ist es sehr wahrscheinlich, dass eine bestimmte Auswahl von Datenpunkten die Maschine gegenüber Ausreißern robuster macht und daher eine bessere Modellleistung bietet. In dem Fall, dass die Zug- und Testdaten in beiden Fällen gleich sind, müssten Sie wahrscheinlich prüfen, ob es eine Saatgut- / Reproduzierbarkeitsmaßnahme (in einem Teil Ihres Codes) gibt, die Sie nicht getroffen haben.
quelle