Basicamente, existem duas maneiras comuns de aprender com grandes conjuntos de dados (quando você se depara com restrições de tempo / espaço):
- Trapaça :) - use apenas um subconjunto "gerenciável" para treinamento. A perda de precisão pode ser insignificante por causa da lei dos retornos decrescentes - o desempenho preditivo do modelo geralmente diminui muito antes de todos os dados de treinamento serem incorporados a ele.
- Computação paralela - divida o problema em partes menores e resolva cada uma em uma máquina / processador separado. Porém, você precisa de uma versão paralela do algoritmo, mas a boa notícia é que muitos algoritmos comuns são naturalmente paralelos: vizinho mais próximo, árvores de decisão etc.
Existem outros métodos? Existe alguma regra prática quando usar cada uma? Quais são as desvantagens de cada abordagem?