Quantos dados são suficientes para treinar meu modelo de aprendizado de máquina?

11

Trabalho com aprendizado de máquina e bioinformática há um tempo e hoje tive uma conversa com um colega sobre os principais problemas gerais da mineração de dados.

Meu colega (que é especialista em aprendizado de máquina) disse que, na opinião dele, o aspecto prático mais importante do aprendizado de máquina é como entender se você coletou dados suficientes para treinar seu modelo de aprendizado de máquina .

Essa afirmação me surpreendeu, porque nunca havia dado tanta importância a esse aspecto ...

Procurei mais informações na Internet e encontrei esta postagem nos relatórios do FastML.com como regra geral, de que você precisa de aproximadamente 10 vezes mais instâncias de dados do que existem recursos .

Duas questões:

1 - Esse problema é realmente particularmente relevante no aprendizado de máquina?

2 - A regra das 10 vezes está funcionando? Existem outras fontes relevantes para este tema?

DavideChicco.it
fonte
1. sim 2. É uma boa linha de base, mas você pode contornar isso com regularização para reduzir os graus efetivos de liberdade . Isso funciona especialmente bem com o aprendizado profundo. 3. Você pode diagnosticar a situação do seu problema, plotando a curva de aprendizado do tamanho da amostra com relação ao erro ou pontuação.
Emre
@Emre Thanks! Você também pode me sugerir alguns papéis ou qualquer material para ler?
DavideChicco.it 28/06
Isso geralmente será abordado juntamente com a validação cruzada e outras técnicas de validação de modelo em seu livro.
Emre
A regra das 10 vezes é ótima se você pode alcançá-la, mas simplesmente não é prática em algumas configurações de negócios. Existem muitas situações em que o número de recursos é muito maior que as instâncias de dados (p >> n). Existem técnicas de aprendizado de máquina projetadas especificamente para lidar com essas situações.
cara da ciência de dados
Se você precisar de uma explicação detalhada que pode ajudá-lo a entender o gráfico da curva de aprendizagem vejam isto: scikit-yb.org/en/latest/api/model_selection/learning_curve.html
shrikanth singh

Respostas:

6

A regra das dez vezes me parece uma regra de ouro, mas é verdade que o desempenho do seu algoritmo de aprendizado de máquina pode diminuir se você não o alimentar com dados de treinamento suficientes.

Uma maneira prática e orientada por dados para determinar se você possui dados de treinamento suficientes é plotando uma curva de aprendizado, como a do exemplo abaixo:

Curva de aprendizado

A curva de aprendizado representa a evolução dos erros de treinamento e teste à medida que você aumenta o tamanho do seu conjunto de treinamento.

  • O erro de treinamento aumenta à medida que você aumenta o tamanho do seu conjunto de dados, porque fica mais difícil ajustar um modelo que é responsável pela crescente complexidade / variabilidade do seu conjunto de treinamento.
  • O erro de teste diminui à medida que você aumenta o tamanho do seu conjunto de dados, porque o modelo pode generalizar melhor a partir de uma quantidade maior de informações.

Como você pode ver na parte mais à direita da plotagem, as duas linhas na plotagem tendem a alcançar e assimptotar. Portanto, você chegará a um ponto em que aumentar o tamanho do seu conjunto de dados não terá impacto no seu modelo treinado.

A distância entre o erro de teste e as assíntotas de erro de treinamento é uma representação do ajuste excessivo do seu modelo. Mais importante, porém, esse gráfico está dizendo se você precisa de mais dados. Basicamente, se você representa um erro de teste e treinamento para aumentar subconjuntos maiores de seus dados de treinamento e as linhas não parecem alcançar uma assíntota, continue coletando mais dados.

Pablo Suau
fonte
Na função learning_curve devo passar X_train, y_train: Only train subsetouX, y: the entire dataset
Rookie_123
Essa curva é criada como resultado da aplicação da validação cruzada à medida que você aumenta o número de amostras. Portanto, você precisa de todo o conjunto de dados.
Pablo Suau
4
  1. Sim, o problema é certamente relevante, pois sua capacidade de ajustar-se ao modelo dependerá da quantidade de dados que você possui, mas, mais importante, depende da qualidade dos preditores.
  2. Uma regra de 10 vezes pode ser uma regra de ouro (e existem muitas outras), mas realmente depende da utilidade preditiva de seus recursos. Por exemplo, o conjunto de dados da íris é bastante pequeno, mas é facilmente resolvido, porque os recursos geram uma boa separação dos alvos. Por outro lado, você pode ter 10 milhões de exemplos e não se encaixar se os recursos forem fracos.
HEITZ
fonte
Obrigado! Você também pode me sugerir alguns papéis ou qualquer material para ler?
DavideChicco.it 28/06