Comment empêcher le surapprentissage LGBM est l'un de mes sujets d'actualité ces jours-ci.
J'ai remarqué comment séparer les données de train et les données valides des données de séries chronologiques.
Jusqu'à présent, je pensais que la répartition aléatoire serait meilleure même pour les données de séries chronologiques. Pour faire simple, si vous divisez une certaine date et heure en un seuil, les données de train pour le printemps, l'été et l'automne seront apprises sans avoir d'informations sur l'hiver, il peut donc s'agir d'un modèle incomplet.
Cependant, il s'est avéré qu'il y avait un problème avec la répartition aléatoire. Cela dépend de la granularité du datetime, mais par exemple, les données de train contiennent les données de la minute immédiatement avant les données valides, il est donc extrêmement facile de surapprendre.
Ma meilleure pratique actuelle est de diviser l'année en quatre parties, printemps, été, automne et hiver, et de créer un modèle avec quatre modèles en fonction de la validité définie. Prenez la moyenne des valeurs prédites produites par les quatre modèles.
====
J'ai écrit une note il y a environ deux semaines, L'article suivant a exactement la même idée que je pensais, alors partagez-le! !!
http://tmitani-tky.hatenablog.com/entry/2018/12/19/001304
Il semble que scikit-learn a aussi quelque chose à valider comme je l'espère
https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.TimeSeriesSplit.html
Recommended Posts