Ich nehme gerade an einem Wettbewerb teil. Ich weiß, dass es meine Aufgabe ist, das gut zu machen, aber vielleicht möchte jemand mein Problem und seine Lösung hier diskutieren, da dies auch für andere auf ihrem Gebiet hilfreich sein könnte.
Ich habe ein xgboost-Modell trainiert (ein baumbasiertes Modell und ein lineares Modell und ein Ensemble aus beiden). Wie bereits hier besprochen , war der mittlere absolute Fehler (MAE) auf dem Trainingssatz (wo ich eine Kreuzvalidierung durchgeführt habe) gering (ca. 0,3), dann lag der Fehler auf dem durchgehaltenen Testsatz bei etwa 2,4. Dann begann der Wettbewerb und der Fehler lag bei 8 (!) Und überraschenderweise lag die Prognose immer ca. 8-9 über dem wahren Wert !! Sehen Sie die gelb umkreiste Region im Bild:
Ich muss sagen, dass der Zeitraum der Trainingsdaten im Oktober '15 endete und der Wettbewerb jetzt begann (April '16 mit einem Testzeitraum von ca. 2 Wochen im März).
Heute habe ich gerade die konstanten Werte von 9 von meiner Prognose abgezogen und der Fehler ging auf 2 zurück und ich bekam die Nummer 3 auf dem Leadboard (für diesen einen Tag). ;) Dies ist der Teil rechts von der gelben Linie.
Also, was möchte ich diskutieren:
- Wie reagiert xgboost auf das Hinzufügen eines Intercept-Terms zur Modellgleichung? Könnte dies zu Verzerrungen führen, wenn sich das System zu stark ändert (wie in meinem Fall vom 15. Oktober bis 16. April)?
- Könnte ein xgboost-Modell ohne Achsenabschnitt robuster gegenüber parallelen Verschiebungen des Zielwerts sein?
Ich werde meine Voreingenommenheit von 9 weiter abziehen und wenn jemand interessiert ist, könnte ich Ihnen das Ergebnis zeigen. Es wäre einfach interessanter, hier mehr Einblick zu bekommen.