Índice:
- Estudando curvas de aprendizado
- Usando a validação cruzada corretamente
- Escolhendo o erro ou a métrica de pontuação direita
- Procurando os melhores hiper-parâmetros
- Testando vários modelos
- Modelos de média
- Modelos de empilhamento
- Aplicando engenharia de recursos
- Selecionando recursos e exemplos
- Procurando mais dados
Vídeo: Solda MIG, Dicas para iniciantes, Passe de raiz e acabamento em chapas de 5 mm 2024
Agora que você é algoritmo de aprendizado de máquina finalizou a aprendizagem a partir dos dados obtidos usando Python ou R, você está ponderando o resultados do seu conjunto de testes e perguntando se você pode melhorá-los ou realmente alcançou o melhor resultado possível. Há uma série de verificações e ações que sugerem métodos que você pode usar para melhorar o desempenho da aprendizagem em máquina e alcançar um preditor mais geral capaz de funcionar igualmente bem com seu conjunto de teste ou novos dados. Esta lista de dez técnicas oferece oportunidades para melhorar o resultado alcançado usando algoritmos de aprendizado de máquina.
Estudando curvas de aprendizado
Como primeiro passo para melhorar seus resultados, você precisa determinar os problemas com seu modelo. As curvas de aprendizagem exigem que você verifique contra um conjunto de testes à medida que você varia o número de instâncias de treinamento. Você notará imediatamente se você encontra muita diferença entre seus erros na amostra e fora da amostra. Uma grande diferença inicial é um sinal de variação de estimativa; Por outro lado, ter erros que são altos e similares é um sinal de que você está trabalhando com um modelo tendencioso.
O Python ajuda você a desenhar facilmente curvas de aprendizado usando a função Scikit-learn (). Você também pode facilmente alcançar o mesmo resultado usando R com funções personalizadas, conforme descrito pelo blog da análise da Revolução.
Usando a validação cruzada corretamente
Ver uma grande diferença entre as estimativas de validação cruzada (CV) e o resultado é um problema comum que aparece com um conjunto de teste ou dados novos. Ter este problema significa que algo deu errado com a validação cruzada. Além do fato de o CV não ser um bom preditor de desempenho, esse problema também significa que um indicador enganador induziu você a modelar o problema de forma incorreta e alcançar resultados insatisfatórios.
A validação cruzada fornece dicas quando as etapas que você toma estão corretas. É importante, mas não crítico, que o CV avalie precisamente as medidas de erro fora da amostra. No entanto, é crucial que as estimativas de CV reflitam corretamente a melhoria ou piora na fase de teste devido às suas decisões de modelagem. Geralmente, existem duas razões pelas quais as estimativas de validação cruzada podem variar de resultados de erros verdadeiros:
- Snooping
- Amostragem incorreta
O Python oferece uma amostragem CV estratificada-dobra-dobras. R pode estratificar amostras usando o método createFolds da biblioteca de cadastro quando você fornece o parâmetro y como fator.
Escolhendo o erro ou a métrica de pontuação direita
O fato de tentar otimizar uma métrica de erro com base no erro médio usando um algoritmo de aprendizagem com base no erro médio não proporcionará os melhores resultados a menos que você gerencie o processo de otimização em uma moda que funciona em favor da sua métrica escolhida.Ao resolver um problema usando a aprendizagem de dados e máquinas, você precisa analisar o problema e determinar a métrica ideal para otimizar.
Os exemplos podem ajudar muito. Você pode obter muitos deles de documentos acadêmicos e de concursos públicos de aprendizagem de máquinas que definem cuidadosamente problemas específicos em termos de dados e de métricas de erro / pontuação. Procure um concurso cujo objetivo e dados sejam semelhantes aos seus e, em seguida, verifique a métrica solicitada.
Procurando os melhores hiper-parâmetros
A maioria dos algoritmos é executado bastante bem fora da caixa usando as configurações de parâmetros padrão. No entanto, você sempre pode obter melhores resultados testando diferentes hiper-parâmetros. Tudo o que você precisa fazer é criar uma pesquisa em grade entre os possíveis valores que seus parâmetros podem levar e avaliar os resultados usando o erro correto ou a métrica de pontuação. A pesquisa leva tempo, mas pode melhorar seus resultados.
Quando uma pesquisa leva muito tempo para ser concluída, muitas vezes você consegue os mesmos resultados trabalhando em uma amostra de seus dados originais. Menos exemplos escolhidos aleatoriamente exigem menos cálculos, mas geralmente sugerem a mesma solução. Outro truque que pode economizar tempo e esforço é fazer uma pesquisa aleatória, limitando assim o número de combinações de hiper-parâmetros para testar.
Testando vários modelos
Como uma boa prática, teste vários modelos, começando com os básicos - os modelos que têm mais polarização do que variância. Você sempre deve favorecer soluções simples sobre as mais complexas. Você pode descobrir que uma solução simples funciona melhor.
Representar o desempenho de diferentes modelos usando o mesmo gráfico é útil antes de escolher o melhor para resolver seu problema. Você pode colocar modelos usados para prever o comportamento do consumidor, como uma resposta a uma oferta comercial, em gráficos de ganho especial e gráficos de elevação. Esses gráficos mostram como seu modelo é executado dividindo seus resultados em deciles ou partes menores.
Como você pode estar interessado apenas nos consumidores que são mais propensos a responder à sua oferta, ordenar previsões do mais do menos provável enfatizará o quão bom seus modelos estão em prever os clientes mais promissores. Estas respostas da Quora ajudam você a ver como funcionam os gráficos de ganho e elevação: o que é ROC Curve? e What's Lift Curve?.
Testando vários modelos e introspecção eles também podem fornecer sugestões sobre quais recursos se transformar para a criação de recursos ou qual o recurso a deixar de fora quando você faz seleções de recursos.
Modelos de média
O aprendizado de máquina envolve a construção de muitos modelos e a criação de diferentes previsões, todos com diferentes desempenhos de erro esperados. Pode surpreendê-lo saber que você pode obter resultados ainda melhores com a média dos modelos juntos. O princípio é bastante simples: a variância da estimativa é aleatória, então, ao calcular a média de vários modelos diferentes, você pode melhorar o sinal e descartar o ruído que normalmente se cancelará.
Às vezes, os resultados de um algoritmo que funciona bem, misturados com os resultados de um algoritmo mais simples que também não funcionam, podem criar melhores previsões do que usar um único algoritmo.Não subestime as contribuições fornecidas a partir de modelos mais simples, como modelos lineares, quando você mede seus resultados com a saída de algoritmos mais sofisticados, como o aumento de gradiente.
Modelos de empilhamento
Pelas mesmas razões que a média funciona, o empilhamento também pode lhe proporcionar um melhor desempenho. No empilhamento, você constrói seus modelos de aprendizado de máquina em duas etapas. Inicialmente, esta técnica prevê múltiplos resultados usando algoritmos diferentes, com todos eles aprendendo com os recursos presentes em seus dados. Durante a segunda fase, em vez de fornecer os recursos que um novo modelo aprenderá, você fornece esse modelo com as previsões dos outros modelos previamente treinados.
Usar uma abordagem em duas etapas é justificada ao adivinhar funções de destino complexas. Você pode aproximá-los apenas usando múltiplos modelos juntos e, em seguida, combinando o resultado da multiplicação de forma inteligente. Você pode usar uma regressão logística simples ou um conjunto de árvores complexas como modelo de segundo estágio.
A competição Netflix fornece evidências e uma ilustração detalhada sobre como os modelos heterogêneos podem ser empilhados em conjunto para formar modelos mais poderosos. No entanto, implementar esta solução como um aplicativo de trabalho pode ser bastante complicado.
Aplicando engenharia de recursos
Se você acredita que o viés ainda está afetando o seu modelo, você tem pouca escolha além de criar novos recursos que melhoram o desempenho do modelo. Todas as novas funcionalidades podem facilitar a adivinhação da resposta do alvo.
A criação automática de recursos é possível usando a expansão polinomial ou a classe de máquinas de vetor de suporte de algoritmos de aprendizado de máquina. As máquinas de vetor de suporte podem buscar automaticamente recursos melhores em espaços de recursos de dimensões superiores de uma maneira que é computacionalmente rápida e a memória ideal.
No entanto, nada pode realmente substituir sua experiência e compreensão do método necessário para resolver o problema de dados que o algoritmo está tentando aprender. Você pode criar recursos com base em seu conhecimento e idéias de como as coisas funcionam no mundo. Os seres humanos ainda são imbatíveis ao fazê-lo, e as máquinas não podem substituí-los facilmente.
Selecionando recursos e exemplos
Se a variância da estimativa for alta e seu algoritmo depender de muitos recursos, você precisa podar alguns recursos para melhores resultados. Neste contexto, é aconselhável reduzir o número de recursos em sua matriz de dados escolhendo aqueles com maior valor preditivo.
Ao trabalhar com modelos lineares, máquinas de vetor de suporte linear ou redes neurais, a regularização é sempre uma opção. Tanto L1 como L2 podem reduzir a influência de variáveis redundantes ou mesmo removê-las do modelo. A seleção de estabilidade alavanca a habilidade L1 para excluir variáveis menos úteis. A técnica reaviva os dados de treinamento para confirmar a exclusão.
Você pode aprender mais sobre a seleção de estabilidade ao visualizar o exemplo no site Scikit-learn. Além disso, você pode praticar usando as funções RandomizedLogisticRegression e RandomizedLasso Scikit-learn no módulo linear_model.
Procurando mais dados
Depois de tentar todas as sugestões anteriores, você ainda pode ter uma alta variação de previsões para lidar. Neste caso, sua única opção é aumentar o tamanho do seu conjunto de treinamento. Tente aumentar sua amostra fornecendo novos dados, que podem se traduzir em novos casos ou novos recursos.
Se você quiser adicionar mais casos, veja apenas se você tem dados semelhantes à mão. Se você deseja adicionar novos recursos, localize uma fonte de dados de fonte aberta, se possível, para combinar seus dados com suas entradas. Outra ótima maneira de obter novos casos e novos recursos é raspando os dados da web. Muitas vezes, os dados estão disponíveis entre diferentes fontes ou através de uma interface de programação de aplicativos (API). Por exemplo, as APIs do Google oferecem muitas fontes de informações geográficas e comerciais.