Maison > Article > Périphériques technologiques > Techniques de fractionnement non conventionnelles pour les ensembles de données d'apprentissage automatique de séries chronologiques
Une tentative pour garantir que les modèles d'apprentissage automatique se généralisent dans des environnements inconnus consiste à diviser les données. Ceci peut être réalisé de différentes manières, depuis les divisions en 3 voies (entraînement, test, évaluation) jusqu'aux divisions en k validées de manière croisée. Le principe de base est qu'en entraînant un modèle d'apprentissage automatique sur un sous-ensemble de données et en l'évaluant sur des données inconnues, vous pouvez mieux déterminer si le modèle était sous-ajusté ou surajusté pendant l'entraînement.
Pour la plupart des travaux, un simple système à 3 voies suffit. En production réelle, les méthodes de fractionnement nécessitent souvent des méthodes plus complexes pour garantir les problèmes de généralisation. Ces répartitions sont plus complexes car elles sont dérivées de données réelles plutôt que des structures de données sur lesquelles sont basées les méthodes de répartition ordinaires. Cet article tente d'expliquer certaines manières non conventionnelles de diviser les données dans le développement de l'apprentissage automatique, ainsi que les raisons qui les sous-tendent.
Pour plus de simplicité, utilisons un format tabulaire pour représenter un simple ensemble de données de séries chronologiques multivariées. Les données se composent de 3 fonctionnalités numériques, 1 fonctionnalité catégorielle et 1 fonctionnalité d'horodatage. Voici la visualisation :
Ce type d'ensemble de données est courant dans de nombreux cas d'utilisation et industries pour l'apprentissage automatique. Un exemple spécifique est celui des données en continu transmises par plusieurs capteurs dans une usine. La variable catégorielle sera l'ID de la machine, la caractéristique numérique sera les informations que le capteur enregistre (par exemple pression, température, etc.) et l'horodatage sera l'heure à laquelle les données ont été transférées et enregistrées dans la base de données.
Supposons que vous ayez reçu cet ensemble de données sous la forme d'un fichier csv du service d'ingénierie des données et que vous ayez été chargé d'écrire un modèle de classification ou de régression. Dans ce cas, l’étiquette peut être n’importe quelle fonctionnalité ou colonne supplémentaire. La première chose à faire est de diviser les données en sous-ensembles significatifs.
Pour plus de commodité, vous pouvez simplement diviser en ensemble d'entraînement et ensemble de test. Le problème se pose immédiatement : un simple fractionnement des données ne fonctionnera pas ici : les données sont composées de plusieurs flux de données de capteurs indexés dans le temps. Alors, comment diviser les données pour que l'ordre soit préservé et que le modèle d'apprentissage automatique ultérieur se généralise bien ?
La transformation la plus simple que nous puissions faire est de représenter chaque donnée pour des classes catégorielles (dans notre exécution) exemple, visualisation des données pour chaque machine). Cela produira les résultats suivants :
Séparation horizontale
Le regroupement rend le problème de la séparation un peu plus facile, et cela dépend beaucoup de vos hypothèses. Vous vous demandez peut-être : comment un modèle d'apprentissage automatique formé sur un groupe se généralise-t-il à d'autres groupes, c'est-à-dire que s'il est formé sur les flux temporels de classe_1, classe_2 et classe_3, comment le modèle fonctionnera-t-il sur les flux temporels de classe_4 et de classe_5 ? Voici une visualisation de cette division :
La méthode de division ci-dessus est ce que j'appelle la division horizontale. Dans la plupart des bibliothèques d'apprentissage automatique, cette répartition est facilement réalisée en regroupant simplement par caractéristiques catégorielles et en partitionnant selon les catégories. En s'entraînant avec cette répartition, le modèle a collecté des informations qui se généralisent à des groupements inconnus.
Il convient de noter que le fractionnement n'utilise pas le temps comme base pour se diviser lui-même. Cependant, on peut supposer que vous diviserez également par ordre temporel de chaque flux temporel pour maintenir cette relation dans les données. Cela nous amène à la prochaine scission.
Mais que se passe-t-il si vous souhaitez s'étaler sur le temps lui-même ? Pour la plupart des modélisations de séries chronologiques, les méthodes courantes de division des données sont passées et futures. Autrement dit, les données historiques de l'ensemble de formation sont comparées aux données de l'ensemble d'évaluation. L'hypothèse dans ce cas est la suivante : comment un modèle d'apprentissage automatique entraîné sur chaque groupe de données historiques se généralise-t-il à chaque groupe de données futures ? montrera que le modèle est capable d'extraire des modèles dans le flux temporel qu'il a observé et de faire des prédictions précises sur le comportement futur. Cependant, cela n’indique pas en soi que le modèle se généralise bien à d’autres flux temporels provenant de différents groupes.
Bien sûr, vos multiples flux temporels doivent désormais être triés individuellement, nous devons donc toujours les regrouper. Mais cette fois, au lieu de croiser les groupes, nous prélevons des échantillons de chaque groupe passé et les mettons en formation, et mettons le futur groupe en évaluation en conséquence. Dans cet exemple idéalisé, tous les flux temporels ont la même longueur, c'est-à-dire que chaque flux temporel a exactement le même nombre de points de données. Cependant, dans le monde réel, cela peut ne pas être le cas. Vous avez donc besoin d'un système permettant de créer des index pour chaque groupe à des fins de fractionnement.
Vous vous demandez peut-être s'ils peuvent générer un modèle qui puisse bien se généraliser sous les contraintes du fractionnement horizontal et vertical ? Dans ce cas, l'hypothèse serait la suivante : comment un modèle d'apprentissage automatique formé sur certains groupes de données historiques se généralise-t-il aux données futures de ces groupes et à toutes les données d'autres groupes ? Une visualisation de cette répartition hybride ressemblerait à ceci :
Bien sûr, si la formation du modèle réussit, ce modèle sera certainement plus robuste dans le monde réel que les autres modèles. Non seulement il peut démontrer qu’il a observé des modèles d’apprentissage pour certains groupes, mais il peut également démontrer qu’il a acquis des informations qui se généralisent à tous les groupes. Cela pourrait être utile si nous devions ajouter davantage de machines similaires à l’usine à l’avenir.
Le concept de division horizontale et verticale peut être généralisé à de nombreuses dimensions. Par exemple, vous souhaiterez peut-être effectuer un regroupement en fonction de deux caractéristiques catégorielles au lieu d'une pour isoler davantage les sous-groupes dans vos données et les trier par sous-groupes. Il peut également y avoir une logique complexe au milieu pour filtrer les groupes avec des échantillons de petite taille, ainsi que d'autres logiques de niveau métier liées au domaine.
Cet exemple hypothétique sert à illustrer les possibilités infinies des différentes divisions d'apprentissage automatique qui peuvent être créées. Tout comme il est important de garantir l’équité de l’apprentissage automatique lors de l’évaluation des modèles, il est tout aussi important de consacrer suffisamment de temps à réfléchir au partitionnement de votre ensemble de données et à ses conséquences en matière de biais des modèles en aval.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!