Abordagens ao aprender com grandes conjuntos de dados?

10

Basicamente, existem duas maneiras comuns de aprender com grandes conjuntos de dados (quando você se depara com restrições de tempo / espaço):

  1. 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.
  2. 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?

andreister
fonte

Respostas:

10

Stream Mining é uma resposta. Também é chamado:

Atilla Ozgur
fonte
concordou, a caixa de ferramentas MOA seria um bom lugar para começar
tdc
7

Em vez de usar apenas um subconjunto, você pode usar vários subconjuntos como no aprendizado em mini-lotes (por exemplo, descida estocástica do gradiente). Dessa forma, você ainda utilizaria todos os seus dados.

Lucas
fonte
Ah, esse é um bom argumento - esclarei a pergunta. Estou interessado em um cenário em que você se depara com restrições de tempo / espaço e "não pode pagar" o aprendizado em mini-lotes.
22712 Andreisterister
1

Conjuntos como ensacamento ou mistura - nenhum dado é desperdiçado, o problema automaticamente se torna trivialmente paralelo e pode haver ganhos significativos de precisão / robustez.


fonte