Entendo o raciocínio por trás da divisão dos dados em um conjunto de teste e um conjunto de validação. Também entendo que o tamanho da divisão dependerá da situação, mas geralmente variará de 50/50 a 90/10.
Eu construí um RNN para corrigir a ortografia e começar com um conjunto de dados de frases de ~ 5m. Raspo frases de 500 mil e depois treino com as restantes ~ 4,5 milhões de frases. Quando o treinamento é concluído, pego meu conjunto de validação e calculo a precisão.
O interessante é que, depois de apenas 4% do meu conjunto de validação, tenho uma precisão de 69,4% e esse percentual não muda em mais de 0,1% em qualquer direção. Eventualmente, acabei de reduzir a validação porque o número está bloqueado em 69,5%.
Então, por que cortar 10% para a validação quando eu provavelmente poderia conseguir 1%? Isso importa?
fonte
Respostas:
Conjuntos de validação maiores fornecem estimativas mais precisas do desempenho fora da amostra. Mas, como você notou, em algum momento essa estimativa pode ser tão precisa quanto você precisa, e você pode fazer algumas previsões grosseiras quanto ao tamanho da amostra de validação necessária para atingir esse ponto.
Para precisão simples / incorreta da classificação, você pode calcular o erro padrão da estimativa como (desvio padrão de uma variável de Bernouilli), em que é a probabilidade de uma classificação correta e é o tamanho do conjunto de validação. É claro que você não conhece , mas pode ter uma ideia do seu alcance. Por exemplo, digamos que você espere uma precisão entre 60-80% e que suas estimativas tenham um erro padrão menor que 0,1%: Quão grande deve ser (o tamanho de o conjunto de validação) seja? Para , obtemos: Parap(1−p)/n−−−−−−−−−√ p n p
Esses cálculos também mostram o argumento de Tim em sua resposta, de que a precisão de suas estimativas depende do tamanho absoluto do seu conjunto de validação (ou seja, em ), e não do tamanho relativo ao conjunto de treinamento.n
(Além disso, devo acrescentar que estou assumindo uma amostragem representativa aqui. Se seus dados são muito heterogêneos, talvez seja necessário usar conjuntos de validação maiores apenas para garantir que os dados de validação incluam as mesmas condições, etc., como os dados de seu trem e teste. )
fonte
Uma boa discussão sobre esse problema é fornecida por Andrew Ng em seu curso de Deep Learning no Coursera.org . Como ele observa, as divisões padrão como 8: 2 ou 9: 1 são válidas se seus dados forem pequenos a moderadamente grandes, mas muitos problemas atuais de aprendizado de máquina usam grandes quantidades de dados (por exemplo, milhões de observações, como no seu caso), e nesse cenário, você pode deixar 2%, 1% ou até menos dos dados como um conjunto de testes, levando todos os dados restantes para o seu conjunto de treinamento (ele na verdade argumenta por usar também um conjunto de desenvolvedores). Como ele argumenta, quanto mais dados você alimentar seu algoritmo, melhor para seu desempenho e isso é especialmente verdadeiro para o aprendizado profundo * (ele também observa que esse não deve ser o caso dos algoritmos de aprendizado de máquina que não aprendem profundamente).
Como já observado no comentário de Alex Burn , não se trata realmente do tamanho do seu conjunto de testes, mas da representatividade do seu problema. Normalmente, com um tamanho maior dos dados, esperamos que seja mais representativo, mas isso não precisa ser o caso. Isso é sempre uma troca e você precisa fazer considerações específicas do problema. Não há regras informando que o conjunto de testes não deve ser menor que X casos ou menor que Y% de seus dados.
* - Isenção de responsabilidade: estou repetindo os argumentos de Andrew Ng aqui, não me consideraria um especialista em aprendizado profundo.
fonte
Asymptotic Statistical Theory of Overtraining and Cross-Validation
[1] https://www.ncbi.nlm.nih.gov/pubmed/18255701.
fonte