Dépendances des données

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Les données sont aussi importantes pour les développeurs de ML que le code pour les programmeurs traditionnels. Cette leçon porte sur les types de questions que vous devez vous poser concernant vos données.

Dépendances des données

  • Les données d'entrée (caractéristiques) déterminent le comportement du système de ML.
    • Nous écrivons des tests unitaires pour les bibliothèques logicielles, mais qu'en est-il des données ?
  • Vous devez faire attention lorsque vous choisissez des signaux d'entrée.
    • Peut-être même plus que de choisir les bibliothèques logicielles à utiliser ?
  • Fiabilité
    • Que se passe-t-il lorsque le signal n'est pas disponible ? Le saviez-vous ?
  • Fiabilité
    • Que se passe-t-il lorsque le signal n'est pas disponible ? Le saviez-vous ?
  • Gestion des versions
    • Le système qui calcule ce signal change-t-il ? À quelle fréquence ? Que se passe-t-il ?
  • Fiabilité
    • Que se passe-t-il lorsque le signal n'est pas disponible ? Le saviez-vous ?
  • Gestion des versions
    • Le système qui calcule ce signal change-t-il ? À quelle fréquence ? Que se passe-t-il ?
  • Nécessité
    • L'utilité du signal justifie-t-elle le coût de son inclusion ?
  • Corrélations
    • Certains de mes signaux d'entrée sont-ils liés entre eux au point de nécessiter des stratégies supplémentaires pour les différencier ?
  • Corrélations
    • Certains de mes signaux d'entrée sont-ils liés entre eux au point de nécessiter des stratégies supplémentaires pour les différencier ?
  • Boucles de rétroaction
    • Quels signaux d'entrée peuvent être affectés par les sorties de mon modèle ?

Résumé du cours vidéo

Le comportement d'un système de ML dépend du comportement et des qualités de ses caractéristiques d'entrée. À mesure que les données d'entrée de ces caractéristiques changent, votre modèle aussi. Ce changement est parfois souhaitable, mais ce n'est pas toujours le cas.

Dans le développement de logiciels traditionnels, vous vous concentrez plus sur le code que sur les données. Dans le développement du machine learning, bien que le codage fasse toujours partie du travail, votre objectif doit s'étendre pour inclure les données. Par exemple, dans les projets de développement de logiciels traditionnels, il est recommandé d'écrire des tests unitaires pour valider votre code. Pour les projets de ML, vous devez également tester, vérifier et surveiller en continu vos données d'entrée.

Par exemple, vous devez surveiller en permanence votre modèle pour supprimer les caractéristiques inutilisées (ou peu utilisées). Imaginez une certaine caractéristique qui n'a contribué que peu ou pas du tout au modèle. Si les données d'entrée pour cette caractéristique changent brusquement, le comportement de votre modèle peut aussi subitement changer de manière indésirable.

Fiabilité

Voici quelques questions à vous poser sur la fiabilité de vos données d'entrée:

  • Le signal sera-t-il toujours disponible ou provient-il d'une source non fiable ? Exemple :
  • Le signal provient-il d'un serveur qui plante en cas de forte charge ?
  • Le signal provient-il des vacances d'hommes en août ?

Gestion des versions

Voici quelques questions à vous poser sur la gestion des versions:

  • Le système qui calcule ces données change-t-il ? Si tel est le cas :
  • À quelle fréquence ?
  • Comment saurez-vous quand ce système changera ?

Parfois, les données proviennent d'un processus en amont. Si ce processus change brusquement, votre modèle peut en pâtir.

Envisagez de créer votre propre copie des données que vous recevez du processus en amont. Ne passez à la version suivante des données en amont que si vous êtes certain que c'est sans danger.

Nécessité

La question suivante peut vous rappeler la régularisation:

  • L'utilité de cette fonctionnalité justifie-t-elle son coût ?

Il est toujours tentant d'ajouter des caractéristiques au modèle. Par exemple, supposons que vous trouviez une nouvelle caractéristique dont l'ajout améliore légèrement la justesse de votre modèle. La précision semble bien meilleure que la justesse. Toutefois, vous venez d'augmenter votre charge de maintenance. Cette fonctionnalité supplémentaire pourrait se dégrader de manière inattendue. Vous devez donc la surveiller. Réfléchissez bien avant d'ajouter des caractéristiques qui entraînent de petites victoires à court terme.

Corrélations

Certaines caractéristiques sont corrélées (positivement ou négativement) avec d'autres. Posez-vous la question suivante:

  • Certaines caractéristiques sont-elles reliées entre elles à tel point que vous avez besoin de stratégies supplémentaires pour les séparer ?

Boucles de rétroaction

Un modèle peut parfois affecter ses propres données d'entraînement. Par exemple, les résultats de certains modèles sont eux-mêmes des caractéristiques d'entrée directe ou indirecte pour ce même modèle.

Parfois, un modèle peut affecter un autre modèle. Prenons l'exemple de deux modèles pour prédire le cours d'une action:

  • Le modèle A, qui est un mauvais modèle prédictif.
  • Modèle B.

Comme le modèle A présente un bug, il décide par erreur d'acheter des actions en stock X. Ces achats font augmenter le cours de l'action X. Le modèle B utilise le cours de l'action X comme caractéristique d'entrée. Il peut donc facilement trouver de fausses conclusions sur la valeur de l'action X. Le modèle B pourrait donc acheter ou vendre des actions de la société X en fonction du comportement anormal du modèle A. Le comportement du modèle B peut à son tour affecter le modèle A, ce qui peut déclencher une tulipomanie ou une coulisse dans le stock de l'entreprise X.