Como selecionar algoritmos do Azure Machine Learning

Se você estiver se perguntando qual algoritmo de aprendizado de máquina usar, a resposta depende principalmente de dois aspectos do seu cenário de ciência de dados:

  • O que você quer fazer com seus dados? Especificamente, qual é a pergunta comercial que você quer responder aprendendo com seus dados anteriores?

  • Quais são os requisitos de seu cenário de ciência de dados? Quais são os recursos, a precisão, o tempo de treinamento, a linearidade e os parâmetros que sua solução oferece suporte?

Diagrama que mostra considerações para escolher algoritmos de aprendizado de máquina.

Observação

O designer do Azure Machine Learning oferece suporte a dois tipos de componentes: componentes predefinidos clássicos (v1) e componentes personalizados (v2). Esses dois tipos de componentes NÃO são compatíveis.

Os componentes predefinidos clássicos destinam-se principalmente ao processamento de dados e às tarefas tradicionais de aprendizado de máquina, como regressão e classificação. Esse tipo de componente continua com suporte, mas não terá componentes novos adicionados.

Componentes personalizados permitem que você envolva seu próprio código como um componente. Eles dão suporte ao compartilhamento de componentes entre workspaces e a criação contínua nas interfaces do Estúdio, da CLI v2 e do SDK v2.

Para novos projetos, recomendamos que você use componentes personalizados, que são compatíveis com o AzureML V2 e continuarão recebendo novas atualizações.

Este artigo se aplica aos componentes predefinidos clássicos e não é compatível com a CLI v2 e o SDK v2.

Página de dicas úteis do algoritmo do Azure Machine Learning

A Folha de Referências do Algoritmo do Azure Machine Learning ajudará você com a primeira consideração: O que você quer fazer com seus dados? Na folha de referências, procure a tarefa que você quer executar e, em seguida, encontre um algoritmo do designer do Azure Machine Learning para a solução de análise preditiva.

Observação

Você pode baixar a Folha de Referências do Algoritmo do Machine Learning.

O designer oferece 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 Cluster K-Means. Cada algoritmo foi projetado para atender a um tipo diferente de problema de aprendizado de máquina. Confira a referência de algoritmos e componentes para obter uma lista completa, juntamente com a documentação sobre como cada algoritmo funciona e como ajustar os parâmetros para otimizar o algoritmo.

Juntamente com essas diretrizes, tenha em mente outros requisitos ao escolher um algoritmo de aprendizado de máquina. A seguir, confira os fatores adicionais a serem considerados, como precisão, tempo de treinamento, linearidade, número de parâmetros e número de recursos.

Comparação dos tipos de algoritmos de aprendizado de máquina

Alguns algoritmos fazem suposições específicas sobre a estrutura dos dados ou sobre os resultados desejados. Se você conseguir encontrar um que atenda às suas necessidades, ele oferecerá resultados mais úteis, previsões mais exatas ou tempos de treinamento menores.

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

Algoritmo Precisão Tempo de treinamento Linearidade Parâmetros Observações
Família de classificação
Regressão logística de duas classes Satisfatório Rápido Sim 4
Floresta de decisão de duas classes Excelente Moderado Não 5 Mostra tempos de pontuação mais lentos. Sugerimos não trabalhar com o Multiclasse Um contra Todos, devido a tempos de pontuação mais lentos causados pelo bloqueio de threads na acumulação de previsões de árvore
Árvore de decisão aumentada de duas classes Excelente Moderado Não 6 Grande volume de memória
Rede neural de duas classes Satisfatório Moderado Não 8
Perceptron médio de duas classes Satisfatório Moderado Sim 4
Computador de vetor de suporte de duas classes Satisfatório Rápido Sim 5 Bom para conjuntos de recursos grandes
Regressão logística multiclasse Satisfatório 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 aumentada multiclasse Excelente Moderado Não 6 Tende a melhorar a precisão com um pequeno risco de menos cobertura
Rede neural multiclasse Satisfatório Moderado Não 8
Multiclasse Um contra Todos - - - - Consulte as propriedades do método de duas classes selecionado
Família de regressão
Regressão linear Satisfatório Rápido Sim 4
Regressão de floresta de decisão Excelente Moderado Não 5
Regressão de árvore de decisão aumentada Excelente Moderado Não 6 Grande volume de memória
Regressão de rede neural Satisfatório Moderado Não 8
Família de clustering
Clustering K-means Excelente Moderado Sim 8 Um algoritmo de clustering

Requisitos de cenário de ciência de dados

Depois de saber o que quer fazer com seus dados, você precisará determinar outros requisitos para seu cenário de ciência de dados.

Faça escolhas e, possivelmente, compensações para os seguintes requisitos:

  • Precisão
  • Tempo de treinamento
  • Linearidade
  • Número de parâmetros
  • Número de recursos

Precisão

A precisão no aprendizado de máquina mede a eficácia de um modelo como a proporção entre os resultados verdadeiros com o total de casos. No designer, o componente Avaliar Modelo calcula um conjunto de métricas de avaliação padrão do setor. É possível usar esse componente para medir a precisão de um modelo treinado.

Obter a resposta mais precisa possível nem sempre será necessário. Às vezes uma aproximação será adequada, dependendo do uso que você quiser dar a ela. Se esse for o caso, talvez seja possível reduzir drasticamente o tempo de processamento usando métodos mais aproximados. Os métodos aproximados também tendem naturalmente a evitar o sobreajuste.

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 as pontuações em um conjunto de testes reservado.
  • Compare as pontuações de 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, confira o componente Avaliar Modelo.

Tempo de treinamento

No aprendizado supervisionado, treinamento significa usar dados históricos para criar um modelo de aprendizado de máquina que minimiza os erros. O número de minutos ou de horas necessários para treinar um modelo varia muito entre algoritmos. Em geral, o tempo de treinamento está intimamente vinculado à 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, a criação e o uso de um modelo de machine learning é 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 Treinar Modelo.

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

Linearidade

A linearidade em estatísticas e no aprendizado de máquina significa que há uma relação linear entre uma variável e uma constante no conjunto de dados. Por exemplo, os algoritmos de classificação linear supõem que as classes podem ser separadas por uma linha reta (ou seu análogo em dimensões maiores).

Muitos algoritmos de aprendizado de máquina usam a linearidade. No Azure Machine Learning Designer, eles incluem:

Os algoritmos de regressão linear supõem que as tendências de dados seguem uma linha reta. Essa suposição não é muito boa para alguns problemas, mas, para outros, ela reduz a precisão. Apesar das desvantagens, os algoritmos lineares são populares como uma primeira estratégia. Eles tendem a ser algoritmicamente simples e rápidos de treinar.

Grafo que mostra um limite de classe não linear.

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

Grafo que mostra dados com uma tendência não linear.

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 pode ativar 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 importantes para obter apenas as configurações corretas. Em geral, os algoritmos com um grande número de parâmetros exigem mais tentativas e erros para a localização de uma boa combinação.

Como alternativa, há o componente Ajustar Hiperparâmetros de Modelo no designer. O objetivo desse componente é determinar os hiperparâmetros ideais para um modelo de machine learning. O componente compila 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 excelente maneira de garantir que o espaço de parâmetros seja abrangido, o tempo necessário para treinar um modelo aumenta exponencialmente com o número de parâmetros. A vantagem é que ter muitos parâmetros geralmente indica que um algoritmo tem mais flexibilidade. Geralmente, isso pode atingir uma precisão muito boa, desde que você encontre a combinação certa de configurações de parâmetro.

Número de recursos

No aprendizado de máquina, um recurso é uma variável quantificável do fenômeno que você está tentando analisar. Para determinados tipos de dados, o número de recursos pode ser muito grande em comparação ao número de pontos de dados. Geralmente, isso acontece com dados de genética ou de texto.

Um grande número de recursos pode reduzir alguns algoritmos de aprendizado, fazendo com que o tempo de treinamento seja impraticável. As máquinas de vetores de suporte são adequadas para cenários com um grande número de recursos. Por esse motivo, elas foram usadas em muitos aplicativos da recuperação de informações para a classificação de texto e imagem. É possível usar as máquinas de vetor de suporte para tarefas de classificação e de regressão.

A seleção de recursos refere-se ao processo de aplicação de testes estatísticos a entradas, dado uma saída especificada. O objetivo é determinar quais colunas são mais previsíveis na saída. O componente Seleção de Recursos Baseada em Filtro no designer oferece vários algoritmos de seleção de recursos para escolha. O componente inclui métodos de correlação, como os valores de correlação Pearson e qui-quadrado.

Também é possível usar o componente Importância do Recurso de Permuta para calcular um conjunto de pontuações de importância do recurso para seu conjunto de dados. Em seguida, você pode usar essas pontuações para ajudar você a determinar os melhores recursos a serem usados em um modelo.