Supposons que nous ayons un dataset composé de 1000 colonnes et comportant 1 million de lignes pour un sujet de classification, comment réduire sa dimension pour réduire les temps d'entrainement ? On suppose également que la machine qui va faire l'entrainement n'a pas énormément de RAM…

Voici les différentes options:

  • Commencer par fermer toutes les applications qui ne servent à rien
  • Echantillonner aléatoirement le dataset. C'est-à-dire créer plusieurs petits datasets de dimension M(300 000, 1 000) et faire plusieurs entrainements
  • On peut séparer les variables numériques et catégorielles et supprimer les variables corrélées. Plus précisément, pour les variables numériques on utilise la corrélation et pour les variables catégorielles on utilise le test du chi 2.
  • On peut utiliser le PCA et sélectionner les composants qui expliquent le maximum de variance dans le dataset
  • On peut utiliser l'algorithme de Vowpal Wabbit (online learning)
  • On peut construire un modèle linéaire en utilisant une descente de gradient stochastique
  • On peut aussi utiliser ses compétences métier pour sélectionner les features qui vont impacter le plus modèle. C'est une approche qui fait appel à l'intuition.