Como selecionar algoritmos do Azure Machine Learning

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

  • O que você deseja fazer com os dados? Especificamente, qual é a pergunta comercial que você deseja responder aprendendo com seus dados passados?

  • Quais são os requisitos de 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 aos quais sua solução dá suporte?

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

Observação

O Designer tem suporte para 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 fornecem componentes predefinidos principalmente para processamento de dados e 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. Ele tem suporte para o compartilhamento de componentes entre espaços de trabalho e à 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 se aplica a componentes predefinidos clássicos e não são compatíveis com a CLI v2 e o SDK v2.

Cenários de negócios e folha de referência do algoritmo do Machine Learning

A folha de referência do algoritmo do Azure Machine Learning ajuda com a primeira consideração: O que você deseja fazer com os dados? Na folha de referência do algoritmo do Machine Learning, procure a tarefa que você deseja realizar e localize um algoritmo do designer do Azure Machine Learning para a solução de análise preditiva.

O Machine Learning Designer fornece um portfólio abrangente de algoritmos, como Floresta de Decisão Multiclasse, Sistemas de recomendação, Regressão de Rede Neural, Rede Neural Multiclassee Clustering de K-Means. Cada algoritmo foi projetado para atender a um tipo diferente de problema de aprendizado de máquina. Confira algoritmo e referência de componente do Machine Learning Designer para obter uma lista completa, juntamente com a documentação sobre como funciona cada algoritmo e como ajustar os parâmetros para otimizar o algoritmo.

Observação

Baixe a folha de referências aqui: Folha de referências de algoritmos do Machine Learning (11 x 17 pol.)

Juntamente com as diretrizes na Folha de consulta do algoritmo Azure Machine Learning, tenha em mente outros requisitos ao escolher um algoritmo de aprendizado de máquina para a solução. 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 de aprendizado fazem suposições específicas sobre a estrutura de dados ou 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. A sugestão é não trabalhar com Multiclasse Um contra Todos, devido aos tempos de pontuação mais lentos causados pelo bloqueio de piso em previsões de árvore de acumulação
Á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 para um cenário de ciência de dados

Depois de saber o que você deseja fazer com os dados, é preciso determinar os requisitos adicionais para a solução.

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 Machine Learning 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 o tempo de processamento drasticamente 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:

  • Gerar pontuações sobre os dados de treinamento para avaliar o modelo
  • Gerar pontuações no modelo, mas comparar essas pontuações com as pontuações em um conjunto de teste reservado
  • Comparar 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, 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 Machine Learning Designer, 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 que seja rotulado e que seja compatível 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 informações. 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.

Nonlinear class boundary

Limite de classe não linear: contar com 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 o cientista de dados precisa girar ao configurar um algoritmo. Eles são números que afetam o comportamento do algoritmo, como tolerância a erros ou o 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, existe o componente Ajustar Hiperparâmetros do Modelo no Machine Learning Designer: o objetivo desse componente é determinar os hiperparâmetros ideais para um modelo de aprendizado de máquina. 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 verificar se o espaço de parâmetro foi estendido, o tempo necessário para treinar o 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 vetor de suporte são particularmente 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 Machine Learning Designer fornece vários algoritmos de seleção de recursos para escolher. 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. Você pode usar essas pontuações para ajudar a determinar os melhores recursos a serem usados em um modelo.

Próximas etapas