Fondamentalement, il existe deux façons courantes d'apprendre contre d'énormes ensembles de données (lorsque vous êtes confronté à des restrictions de temps / d'espace):
- Tricher :) - utilisez juste un sous-ensemble "gérable" pour la formation. La perte de précision peut être négligeable en raison de la loi des rendements décroissants - les performances prédictives du modèle s'aplatissent souvent bien avant que toutes les données d'entraînement ne soient incorporées.
- Informatique parallèle - divisez le problème en parties plus petites et résolvez chacune sur une machine / un processeur séparé. Vous avez besoin d'une version parallèle de l'algorithme, mais la bonne nouvelle est que de nombreux algorithmes courants sont naturellement parallèles: le plus proche voisin, les arbres de décision, etc.
Existe-t-il d'autres méthodes? Y a-t-il une règle d'or quand utiliser chacun? Quels sont les inconvénients de chaque approche?
la source
Au lieu d'utiliser un seul sous-ensemble, vous pouvez utiliser plusieurs sous-ensembles comme dans l'apprentissage en mini-batch (par exemple, descente de gradient stochastique). De cette façon, vous utiliseriez toujours toutes vos données.
la source
Ensembles comme l'ensachage ou le mélange - aucune donnée n'est gaspillée, le problème devient automagiquement trivialement parallèle et il peut y avoir des gains de précision / robustesse importants.
la source