5 razões pelas quais você deve usar a validação cruzada em seu bitcoin de foguete de projetos de ciência de dados

Quando estamos construindo um modelo de aprendizado de máquina usando alguns dados, geralmente dividimos nossos dados em conjuntos de treinamento e validação / teste. O conjunto de treinamento é usado para treinar o modelo, e o conjunto de validação / teste é usado para validá-lo em dados nunca antes vistos. A abordagem clássica é fazer uma simples divisão de 80% a 20%, às vezes com valores diferentes, como 70% -30% ou 90% -10%. Na validação cruzada, fazemos mais de uma divisão. Podemos fazer 3, 5, 10 ou qualquer número K de divisões. Essas divisões chamadas Folds, e há muitas estratégias com as quais podemos criar essas dobras.

Dobraduras K simples – dividimos nossos dados em partes K, vamos usar K = 3 para um exemplo de brinquedo. Se temos 3000 instâncias no nosso conjunto de dados, dividimos em três partes, parte 1, parte 2 e parte 3. Em seguida, construímos três modelos diferentes, cada modelo é treinado em duas partes e testado no terceiro.


Nosso primeiro modelo é treinado nas partes 1 e 2 e testado na parte 3. Nosso segundo modelo é treinado para a parte 1 e parte 3 e testado na parte 2 e assim por diante.

Validação cruzada estratificada – Quando dividimos nossos dados em dobras, queremos ter certeza de que cada dobra seja um bom representante de todos os dados. O exemplo mais básico é que queremos a mesma proporção de classes diferentes em cada dobra. Na maioria das vezes, acontece apenas fazendo isso aleatoriamente, mas, às vezes, em conjuntos de dados complexos, precisamos impor uma distribuição correta para cada dobra.

comprar bitcoins en colômbia

Quando temos muito poucos dados, dividi-lo em treinamento e conjunto de testes pode nos deixar com um conjunto de testes muito pequeno. Digamos que tenhamos apenas 100 exemplos, se fizermos uma divisão simples de 80 a 20, obteremos 20 exemplos em nosso conjunto de testes. Não é suficiente. Podemos obter praticamente qualquer desempenho neste conjunto apenas devido ao acaso. O problema é ainda pior quando temos um problema de várias classes. Se tivermos 10 aulas e apenas 20 exemplos, isso nos deixa com apenas 2 exemplos para cada classe, em média. Testar qualquer coisa em apenas dois exemplos não pode levar a uma conclusão real.

Se usarmos validação cruzada neste caso, nós construímos K modelos diferentes, Por isso, podemos fazer previsões sobre todos os nossos dados. Para cada instância, fazemos uma previsão por um modelo que não viu este exemplo e, por isso, estamos obtendo 100 exemplos em nosso conjunto de testes. Para o problema de várias classes, obtemos 10 exemplos para cada classe, em média, e é muito melhor do que apenas 2. Depois de avaliarmos nosso algoritmo de aprendizado (ver # 2 abaixo), agora podemos treinar nosso modelo em todos os nossos dados, porque Nossos 5 modelos tiveram desempenho semelhante usando conjuntos de trem diferentes, presumimos que, treinando-o em todos os dados, obteremos desempenho similar.

Como mencionado no item 1, quando criamos cinco modelos diferentes Usando nosso algoritmo de aprendizado e testando-o em cinco conjuntos de testes diferentes, podemos estar mais confiantes no desempenho de nosso algoritmo. Quando fazemos uma única avaliação no nosso conjunto de testes, obtemos apenas um resultado. Esse resultado pode ser por acaso ou por um teste parcial por algum motivo. Ao treinar cinco (ou dez) modelos diferentes, podemos entender melhor o que está acontecendo. Digamos que nós treinamos cinco modelos e usamos a precisão como nossa medida. Nós podemos acabar em várias situações diferentes. O melhor cenário é que a nossa precisão é semelhante em todas as nossas dobras, digamos 92,0, 91,5, 92,0, 92,5 e 91,8. Isso significa que nosso algoritmo (e nossos dados) são consistentes e podemos ter certeza de que, ao treiná-lo em todos os conjuntos de dados e implantá-lo na produção, isso levará a um desempenho semelhante.

bitcoin gráfico de taxa de câmbio

Às vezes queremos (ou temos que) construir um pipeline de modelos para resolver alguma coisa. Pense em Redes Neurais, por exemplo. Nós podemos criar muitas camadas. Cada camada pode usar a saída da camada de visualização e aprender uma nova representação de nossos dados para que, eventualmente, ela possa produzir boas previsões. Somos capazes de treinar essas diferentes camadas porque usamos o algoritmo de propagação reversa. Cada camada calcula seu erro e passa de volta para a camada anterior.

A parte crítica aqui é que nosso segundo modelo deve aprender sobre as previsões do nosso primeiro modelo. A melhor solução aqui é usar dois conjuntos de dados diferentes para cada modelo. Nós treinamos nosso Random Forest no dataset A. Então usamos o dataset B para fazer uma previsão usando ele. Então usamos as previsões do conjunto de dados B para treinar nossas segundo modelo (a regressão logística) e, finalmente, usamos o conjunto de dados C para avaliar nossa solução completa. Fazemos previsões usando o primeiro modelo, passá-los para o nosso segundo modelo e, em seguida, compará-lo com a verdade fundamental.

configuração da conta de bitcoin

Quando temos dados limitados (como na maioria dos casos), não podemos fazer isso. Além disso, não podemos treinar nossos dois modelos no mesmo conjunto de dados porque, então, nosso segundo modelo aprende as previsões de que nosso primeiro modelo já foi visto. Estes provavelmente serão over-fitted ou pelo menos terão melhores resultados do que em um conjunto diferente. Isso significa que nosso segundo algoritmo é treinado não sobre o que será testado. Isso pode levar a efeitos diferentes em nossas avaliações finais que serão difíceis de entender.

Considere um sistema de reconhecimento de fala. Nossos dados podem incluir diferentes palestrantes dizendo palavras diferentes. Vamos ver o reconhecimento de dígitos falados. Neste conjunto de dados, por exemplo, existem 3 alto-falantes e 1500 gravações (500 para cada alto-falante). Se fizermos uma divisão aleatória, nosso treinamento e conjunto de testes compartilharão o mesmo palestrante dizendo as mesmas palavras! Isso, é claro, aumentará o desempenho do nosso algoritmo, mas uma vez testado em um novo orador, nossos resultados serão muito piores.

Este é um dos mais comuns e óbvios razões fazer validação cruzada. A maioria dos algoritmos de aprendizado requer alguns ajustes de parâmetros. Pode ser o número de árvores no classificador do Gradient Boosting, o tamanho da camada oculta ou as funções de ativação em uma Rede Neural, o tipo de kernel em um SVM e muito mais. Queremos encontrar os melhores parâmetros para o nosso problema. Fazemos isso tentando valores diferentes e escolhendo os melhores. Existem muitos métodos para fazer isso. Pode ser uma pesquisa manual, uma pesquisa em grade ou alguma otimização mais sofisticada. No entanto, em todos esses casos, não podemos fazer isso em nosso teste de treinamento e não em nosso conjunto de testes, é claro. Temos que usar um terceiro conjunto, um conjunto de validação.

Validação cruzada é uma ferramenta muito poderosa. Isso nos ajuda a usar melhor nossos dados e nos fornece muito mais informações sobre o desempenho do nosso algoritmo. Em modelos complexos de aprendizado de máquina, às vezes é fácil não prestar atenção suficiente e usar os mesmos dados em diferentes etapas do pipeline. Isso pode levar a um desempenho bom, mas não real, na maioria dos casos, ou introduzir efeitos colaterais estranhos em outros. Temos que prestar atenção de que estamos confiantes em nossos modelos. A validação cruzada nos ajuda quando lidamos com desafios não triviais em nossos projetos de Ciência de Dados.

janelas de software de mineração de bitcoin grátis 7

• Criação de um Classificador de Imagens em Execução no Raspberry Pi • Grandes oportunidades de carreira em Big Data • Dados Grandes, Pequenos ou Corretos: Qual é o foco adequado? • Histórias Principais, 1 a 7 de outubro: Cheat Sheets de Aprendizado de Máquina; Como Cr … • Coisas que você deve saber quando viaja através do Enginee Big Data … • Colorado State University: Professor Assistente em Industrial … • Mestrado Online em Ciência de Dados Aplicada De Siracusa • Análise de Dados de Imagem Básica Usando Python – Parte 4 • Por que eu me chamo de cientista de dados • Uma explicação concisa de algoritmos de aprendizado com o Mitchell … • Universidade de Nebraska em Omaha: posição do corpo docente … • Entenda por que ODSC é a conferência mais recomendada para App … • Acampamento de Big Data Day: Ferramentas de Big Data & Técnicas (2 de outubro … • UnitedHealth Group: Desenvolvedor Web Sr. Net, UHC E&Eu [Índia … • Segmentação semântica: Wiki, aplicações e recursos • UnitedHealth Group: UHC Diretor Digital de Gerenciamento de Projetos … • UnitedHealth Group: Gerente de Projetos UHC Digital [Minnetonka, MN] • 3 Estágios de Criação Inteligente • Sociedade de Máquinas: A Interação Complexa de Agentes • Top tweets, 26 de setembro – 2 de outubro: Por que construir o seu próprio Dee …