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?
fonte
Respostas:
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:
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.
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.
fonte
X_train, y_train: Only train subset
ouX, y: the entire dataset
fonte