Existe uma regra prática sobre como melhor dividir dados em conjuntos de treinamento e validação? Uma divisão par 50/50 é aconselhável? Ou há vantagens claras de ter mais dados de treinamento em relação aos dados de validação (ou vice-versa)? Ou essa escolha depende praticamente do aplicativo?
Eu tenho usado principalmente 80% / 20% dos dados de treinamento e validação, respectivamente, mas eu escolhi essa divisão sem nenhuma razão de princípio. Alguém mais experiente em aprendizado de máquina pode me aconselhar?
machine-learning
robguinness
fonte
fonte
Respostas:
Existem duas preocupações concorrentes: com menos dados de treinamento, suas estimativas de parâmetros têm maior variação. Com menos dados de teste, sua estatística de desempenho terá maior variação. Em termos gerais, você deve se preocupar em dividir os dados de modo que nenhuma variação seja muito alta, o que tem mais a ver com o número absoluto de instâncias em cada categoria do que com a porcentagem.
Se você tiver um total de 100 instâncias, provavelmente está preso à validação cruzada, pois nenhuma divisão única fornecerá uma variação satisfatória em suas estimativas. Se você tiver 100.000 instâncias, não importa realmente se você escolhe uma divisão 80:20 ou uma divisão 90:10 (na verdade, você pode optar por usar menos dados de treinamento se o seu método for particularmente intensivo em computação).
Supondo que você tenha dados suficientes para executar dados de teste retidos adequados (em vez de validação cruzada), a seguir é uma maneira instrutiva de lidar com variações:
fonte
Você ficaria surpreso ao descobrir que 80/20 é uma proporção bastante comum, geralmente chamada de princípio de Pareto . Geralmente é uma aposta segura se você usar essa proporção.
No entanto, dependendo da metodologia de treinamento / validação empregada, a proporção pode mudar. Por exemplo: se você usar a validação cruzada de 10 vezes, acabaria com um conjunto de validação de 10% em cada dobra.
Houve alguma pesquisa sobre qual é a proporção adequada entre o conjunto de treinamento e o conjunto de validação :
Em sua conclusão, eles especificam uma fórmula:
O que eles querem dizer com complexidade é:
Utilizando a primeira regra de ouro (o conjunto de validação deve ser inversamente proporcional à raiz quadrada do número de parâmetros ajustáveis livres), você pode concluir que, se tiver 32 parâmetros ajustáveis, a raiz quadrada de 32 é ~ 5,65, a fração deve ser 1 / 5,65 ou 0,177 (v / t). Aproximadamente 17,7% devem ser reservados para validação e 82,3% para treinamento.
fonte
No ano passado, participei do curso de aprendizado de máquina on-line do Prof: Andrew Ng. Sua recomendação foi:
Treinamento : 60%
Validação cruzada : 20%
Teste : 20%
fonte
in the modern big data era, where, for example, you might have a million examples in total, then the trend is that your dev (cross validation) and test sets have been becoming a much smaller percentage of the total.
Ele sugere que poderia ser 99,5: 0,25: 0,25.Bem, você deve pensar em mais uma coisa.
Se você tem um conjunto de dados realmente grande, como 1.000.000 de exemplos, a divisão 80/10/10 pode ser desnecessária, porque 10% = 100.000 exemplos não são necessários para saber se o modelo funciona bem.
Talvez 99 / 0,5 / 0,5 seja suficiente, porque 5.000 exemplos podem representar a maior parte da variação nos dados e você pode facilmente dizer que o modelo funciona bem com base nesses 5.000 exemplos em teste e desenvolvimento.
fonte
Suponha que você tenha menos dados, sugiro tentar 70%, 80% e 90% e testar o que está dando um melhor resultado. No caso de 90%, há chances de que, para 10% do teste, você tenha baixa precisão.
fonte
Talvez 63,2% / 36,8% seja uma escolha razoável. O motivo seria que, se você tivesse um tamanho total da amostra n e desejasse amostrar aleatoriamente com casos de substituição (também conhecidos como re-amostragem, como na estatística de inicialização) n fora do n inicial , a probabilidade de um caso individual ser selecionado no a nova amostra seria de aproximadamente 0,632, desde que n não seja muito pequeno, conforme explicado aqui: https://stats.stackexchange.com/a/88993/16263
Para uma amostra de n = 250, a probabilidade de um caso individual ser selecionado para uma nova amostra com 4 dígitos é 0,6329. Para uma amostra de n = 20000, a probabilidade é 0,6321.
fonte
Tudo depende dos dados disponíveis. Se você tiver uma quantidade considerável de dados, 80/20 é uma boa escolha, como mencionado acima. Porém, se você não fizer a validação cruzada com uma divisão 50/50, poderá ajudá-lo muito mais e impedir que você crie um modelo que ajuste demais seus dados de treinamento.
fonte