Como selecionar algoritmos para o Azure Machine Learning

Uma pergunta comum é "Qual algoritmo de aprendizado de máquina devo usar?" O algoritmo selecionado depende principalmente de dois aspetos diferentes do seu cenário de ciência de dados:

  • O que pretende fazer com os seus dados? Especificamente, qual é a pergunta de negócios que você deseja responder aprendendo com seus dados passados?

  • Quais são os requisitos do seu cenário de ciência de dados? Especificamente, qual é a precisão, o tempo de treinamento, a linearidade, o número de parâmetros e o número de recursos suportados pela sua solução?

Considerations for choosing algorithms: What do you want to know? What are the scenario requirements?

Nota

O Designer suporta dois tipos de componentes, componentes pré-construídos clássicos (v1) e componentes personalizados (v2). Estes dois tipos de componentes NÃO são compatíveis.

Os componentes pré-construídos clássicos fornecem componentes pré-construídos principalmente para processamento de dados e tarefas tradicionais de aprendizado de máquina, como regressão e classificação. Este tipo de componente continua a ser suportado, mas não terá novos componentes adicionados.

Os componentes personalizados permitem que você envolva seu próprio código como um componente. Ele suporta o compartilhamento de componentes entre espaços de trabalho e a criação contínua nas interfaces Studio, CLI v2 e SDK v2.

Para novos projetos, sugerimos que você use o componente personalizado, que é compatível com o AzureML V2 e continuará recebendo novas atualizações.

Este artigo aplica-se a componentes pré-construídos clássicos e não são compatíveis com CLI v2 e SDK v2.

Cenários de negócios e o algoritmo de aprendizado de máquina Cheat Sheet

O Azure Machine Learning Algorithm Cheat Sheet ajuda-o com a primeira consideração: O que pretende fazer com os seus dados? Na Folha de Truques do Algoritmo do Aprendizado de Máquina, procure a tarefa que deseja fazer e encontre um algoritmo de designer do Azure Machine Learning para a solução de análise preditiva.

O designer de Machine Learning fornece um portfólio abrangente de algoritmos, como Floresta de Decisão Multiclasse, Sistemas de Recomendação, Regressão de Rede Neural, Rede Neural Multiclasse e Agrupamento K-Means. Cada algoritmo é projetado para abordar um tipo diferente de problema de aprendizado de máquina. Consulte o algoritmo do designer de Machine Learning e a referência de componentes para obter uma lista completa, juntamente com a documentação sobre como cada algoritmo funciona e como ajustar parâmetros para otimizar o algoritmo.

Nota

Faça o download do cheat sheet aqui: Machine Learning Algorithm Cheat Sheet (11x17 pol.)

Juntamente com as orientações no Azure Machine Learning Algorithm Cheat Sheet, tenha em mente outros requisitos ao escolher um algoritmo de aprendizado de máquina para sua solução. Seguem-se fatores adicionais a considerar, tais como a precisão, o tempo de treino, a linearidade, o número de parâmetros e o número de funcionalidades.

Comparação de algoritmos de aprendizagem automática

Alguns algoritmos de aprendizagem fazem suposições particulares sobre a estrutura dos dados ou os resultados desejados. Se você puder encontrar um que atenda às suas necessidades, ele pode lhe dar resultados mais úteis, previsões mais precisas ou tempos de treinamento mais rápidos.

A tabela a seguir resume algumas das características mais importantes dos algoritmos das famílias de classificação, regressão e agrupamento:

Algoritmo Exatidão Tempo de treino Linearidade Parâmetros Notas
Família de classificação
Regressão logística de duas classes Correto Rápido Sim 4
Floresta de decisão de duas classes Excelente Moderado Não 5 Mostra tempos de pontuação mais lentos. Sugira não trabalhar com o One-vs-All Multiclass, devido aos tempos de pontuação mais lentos causados pelo bloqueio do piso no acúmulo de previsões de árvore
Árvore de decisão impulsionada de duas classes Excelente Moderado Não 6 Grande espaço ocupado pela memória
Rede neural de duas classes Correto Moderado Não 8
Perceptron médio de duas classes Correto Moderado Sim 4
Máquina vetorial de suporte de duas classes Correto Rápido Sim 5 Bom para grandes conjuntos de recursos
Regressão logística multiclasse Correto Rápido Sim 4
Floresta de decisão multiclasse Excelente Moderado Não 5 Mostra tempos de pontuação mais lentos
Árvore de decisão impulsionada por várias classes Excelente Moderado Não 6 Tende a melhorar a precisão com algum pequeno risco de menos cobertura
Rede neural multiclasse Correto Moderado Não 8
Multiclasse um-vs-todos - - - - Consulte as propriedades do método de duas classes selecionado
Família de regressão
Regressão linear Correto Rápido Sim 4
Regressão florestal de decisão Excelente Moderado Não 5
Regressão da árvore de decisão impulsionada Excelente Moderado Não 6 Grande espaço ocupado pela memória
Regressão de redes neurais Correto Moderado Não 8
Família de agrupamento
Agrupamento de K-means Excelente Moderado Sim 8 Um algoritmo de agrupamento

Requisitos para um cenário de ciência de dados

Depois de saber o que deseja fazer com seus dados, você precisa determinar requisitos adicionais para sua solução.

Faça escolhas e, possivelmente, soluções de compromisso para os seguintes requisitos:

  • Precisão
  • Tempo de preparação
  • Linearidade
  • Número de parâmetros
  • Número de funcionalidades

Precisão

A precisão no aprendizado de máquina mede a eficácia de um modelo como a proporção de resultados verdadeiros para o total de casos. No designer de Machine Learning, o componente Avaliar Modelo calcula um conjunto de métricas de avaliação padrão do setor. Você pode usar esse componente para medir a precisão de um modelo treinado.

Nem sempre é necessário obter a resposta mais precisa possível. Às vezes, uma aproximação é adequada, dependendo do que você quer usá-lo para. Se esse for o caso, você pode ser capaz de reduzir drasticamente seu tempo de processamento aderindo a métodos mais aproximados. Os métodos aproximados também tendem naturalmente a evitar o excesso de ajuste.

Há três maneiras de usar o componente Avaliar modelo:

  • Gere pontuações sobre seus dados de treinamento para avaliar o modelo
  • Gere pontuações no modelo, mas compare essas pontuações com pontuações em um conjunto de testes reservado
  • Compare pontuações para dois modelos diferentes, mas relacionados, usando o mesmo conjunto de dados

Para obter uma lista completa de métricas e abordagens que você pode usar para avaliar a precisão dos modelos de aprendizado de máquina, consulte Avaliar componente de modelo.

Tempo de preparação

Na aprendizagem supervisionada, o treinamento significa usar dados históricos para construir um modelo de aprendizado de máquina que minimize os erros. O número de minutos ou horas necessárias para treinar um modelo varia muito entre os algoritmos. O tempo de treino está muitas vezes intimamente ligado à precisão; um normalmente acompanha o outro.

Além disso, alguns algoritmos são mais sensíveis ao número de pontos de dados do que outros. Você pode escolher um algoritmo específico porque tem uma limitação de tempo, especialmente quando o conjunto de dados é grande.

No designer de Machine Learning, criar e usar um modelo de aprendizado de máquina normalmente é um processo de três etapas:

  1. Configure um modelo, escolhendo um tipo específico de algoritmo e, em seguida, definindo seus parâmetros ou hiperparâmetros.

  2. Forneça um conjunto de dados rotulado e com dados compatíveis com o algoritmo. Conecte os dados e o modelo ao componente Train Model.

  3. Após a conclusão do treinamento, use o modelo treinado com um dos componentes de pontuação para fazer previsões sobre novos dados.

Linearidade

Linearidade em estatística e aprendizado de máquina significa que há uma relação linear entre uma variável e uma constante em seu conjunto de dados. Por exemplo, os algoritmos de classificação linear assumem que as classes podem ser separadas por uma linha reta (ou seu análogo de dimensão superior).

Muitos algoritmos de aprendizado de máquina fazem uso da linearidade. No designer do Azure Machine Learning, eles incluem:

Os algoritmos de regressão linear assumem que as tendências dos dados seguem uma linha reta. Essa suposição não é ruim para alguns problemas, mas para outros reduz a precisão. Apesar de suas desvantagens, os algoritmos lineares são populares como uma primeira estratégia. Eles tendem a ser algorítmicos simples e rápidos de treinar.

Nonlinear class boundary

Limite de classe não linear: confiar em um algoritmo de classificação linear resultaria em baixa precisão.

Data with a nonlinear trend

Dados com uma tendência não linear: Usar um método de regressão linear geraria erros muito maiores do que o necessário.

Número de parâmetros

Os parâmetros são os botões que um cientista de dados consegue girar ao configurar um algoritmo. São números que afetam o comportamento do algoritmo, como tolerância a erros ou número de iterações, ou opções entre variantes de como o algoritmo se comporta. O tempo de treinamento e a precisão do algoritmo às vezes podem ser sensíveis para obter apenas as configurações certas. Normalmente, algoritmos com um grande número de parâmetros requerem mais tentativa e erro para encontrar uma boa combinação.

Como alternativa, há o componente Tune Model Hyperparameters no designer de Machine Learning: O objetivo deste componente é determinar os hiperparâmetros ideais para um modelo de aprendizado de máquina. O componente cria e testa vários modelos usando diferentes combinações de configurações. Ele compara métricas em todos os modelos para obter as combinações de configurações.

Embora essa seja uma ótima maneira de garantir que você tenha abrangedo o espaço de parâmetros, o tempo necessário para treinar um modelo aumenta exponencialmente com o número de parâmetros. A vantagem é que ter muitos parâmetros normalmente indica que um algoritmo tem maior flexibilidade. Muitas vezes, pode alcançar uma precisão muito boa, desde que você possa encontrar a combinação certa de configurações de parâmetros.

Número de funcionalidades

No aprendizado de máquina, um recurso é uma variável quantificável do fenômeno que você está tentando analisar. Para certos tipos de dados, o número de recursos pode ser muito grande em comparação com o número de pontos de dados. Este é frequentemente o caso da genética ou dos dados textuais.

Um grande número de recursos pode atrapalhar alguns algoritmos de aprendizagem, tornando o tempo de treinamento inviável longo. As máquinas vetoriais de suporte são particularmente adequadas para cenários com um elevado número de funcionalidades. Por esta razão, eles têm sido usados em muitas aplicações, desde a recuperação de informações até a classificação de texto e imagem. Máquinas vetoriais de suporte podem ser usadas para tarefas de classificação e regressão.

A seleção de recursos refere-se ao processo de aplicação de testes estatísticos às entradas, dada uma saída especificada. O objetivo é determinar quais colunas são mais preditivas da saída. O componente Seleção de Recursos Baseada em Filtro no designer de Aprendizado de Máquina fornece vários algoritmos de seleção de recursos para escolher. O componente inclui métodos de correlação como correlação de Pearson e valores qui-quadrado.

Você também pode usar o componente Importância do recurso de permutação para calcular um conjunto de pontuações de importância do recurso para seu conjunto de dados. Em seguida, você pode aproveitar essas pontuações para ajudá-lo a determinar os melhores recursos a serem usados em um modelo.

Próximos passos