Échantillonnage et répartition des données

Présentation de l'échantillonnage

Il est souvent difficile de collecter suffisamment de données pour un projet de machine learning. Cependant, il peut arriver qu'il y ait trop de données et que vous deviez sélectionner un sous-ensemble d'exemples pour l'entraînement.

Comment sélectionnez-vous ce sous-ensemble ? Prenons l'exemple de la recherche Google. À quel niveau de précision échantillonnez-vous ses énormes quantités de données ? Utiliseriez-vous des requêtes aléatoires ? Sessions aléatoires ? Des utilisateurs aléatoires ?

En fin de compte, la réponse dépend du problème: que souhaitons-nous prédire et quelles caractéristiques voulez-vous ?

  • Pour utiliser la fonctionnalité de requête précédente, vous devez effectuer un échantillonnage au niveau de la session, car les sessions contiennent une séquence de requêtes.
  • Pour utiliser la fonctionnalité comportement des utilisateurs des jours précédents, vous devez échantillonner les données au niveau de l'utilisateur.

Filtrage des informations permettant d'identifier personnellement l'utilisateur

Si vos données incluent des informations personnelles, vous devrez peut-être les filtrer. Une règle peut vous obliger à supprimer des caractéristiques peu fréquentes, par exemple.

Ce filtrage fausse votre distribution. Vous perdrez des informations dans la queue (la partie de la distribution dont les valeurs sont très faibles, bien éloignée de la moyenne).

Ce filtrage est utile, car les fonctionnalités très rares sont difficiles à apprendre. Cependant, il est important de comprendre que votre ensemble de données sera biaisé par les requêtes principales. Au moment de l'inférence, vous pouvez vous attendre à obtenir de moins bons résultats avec l'inférence d'exemples, car ceux-ci ont été filtrés de vos données d'entraînement. Bien que ce décalage ne puisse pas être évité, tenez-en compte lors de l'analyse.