Les données brutes doivent être transformées. Quand devez-vous transformer les données ? De manière générale, vous pouvez effectuer l'ingénierie des caractéristiques pendant l'une des deux périodes suivantes:
- Avant d'entraîner le modèle.
- Pendant l'entraînement du modèle.
Transformer les données avant l'entraînement
Cette approche comporte deux étapes:
- Écrivez du code ou utilisez des outils spécialisés pour transformer les données brutes.
- Stockez les données transformées dans un emplacement où le modèle peut les ingérer, par exemple sur un disque.
Avantages
- Le système ne transforme les données brutes qu'une seule fois.
- Le système peut analyser l'ensemble de données complet pour déterminer la meilleure stratégie de transformation.
Inconvénients
- Vous devez recréer les transformations au moment de la prédiction. Méfiez-vous du décalage entraînement/diffusion.
L'écart d'entraînement-diffusion est plus dangereux lorsque votre système effectue une inférence dynamique (en ligne). Dans un système qui utilise l'inférence dynamique, le logiciel qui transforme l'ensemble de données brut diffère généralement du logiciel qui diffuse les prédictions, ce qui peut entraîner un décalage entraînement/diffusion. En revanche, les systèmes qui utilisent l'inférence statique (hors connexion) peuvent parfois utiliser le même logiciel.
Transformer les données pendant l'entraînement
Dans cette approche, la transformation fait partie du code du modèle. Le modèle ingère les données brutes et les transforme.
Avantages
- Vous pouvez toujours utiliser les mêmes fichiers de données brutes si vous modifiez les transformations.
- Vous êtes assuré d'obtenir les mêmes transformations au moment de l'entraînement et de la prédiction.
Inconvénients
- Les transformations complexes peuvent augmenter la latence du modèle.
- Les transformations ont lieu pour chaque lot.
La transformation des données par lot peut s'avérer délicate. Par exemple, supposons que vous souhaitiez utiliser la normalisation du score Z pour transformer des données numériques brutes. La normalisation du score Z nécessite la moyenne et l'écart type de la caractéristique. Toutefois, les transformations par lot signifient que vous n'aurez accès qu'à un seul lot de données, et non à l'ensemble de données complet. Par conséquent, si les lots sont très variables, un score Z de, disons, -2,5 dans un lot n'aura pas la même signification que -2,5 dans un autre lot. Pour contourner le problème, votre système peut précalculer la moyenne et l'écart-type sur l'ensemble de données, puis les utiliser comme constantes dans le modèle.