Como selecionar algoritmos para Azure Machine LearningHow to select algorithms for Azure Machine Learning

Uma pergunta comum é "qual algoritmo de aprendizado de máquina devo usar?"A common question is “Which machine learning algorithm should I use?” O algoritmo selecionado depende principalmente de dois aspectos diferentes do cenário de ciência de dados:The algorithm you select depends primarily on two different aspects of your data science scenario:

  • O que você deseja fazer com seus dados?What you want to do with your data? Especificamente, qual é a pergunta comercial que você deseja responder aprendendo com seus dados passados?Specifically, what is the business question you want to answer by learning from your past data?

  • Quais são os requisitos de seu cenário de ciência de dados?What are the requirements of your data science scenario? 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?Specifically, what is the accuracy, training time, linearity, number of parameters, and number of features your solution supports?

Considerações para escolher algoritmos: o que você deseja saber?

Roteiros de negócios e a folha de consulta do algoritmo de Machine LearningBusiness scenarios and the Machine Learning Algorithm Cheat Sheet

A folha de consulta do algoritmo de Azure Machine Learning ajuda na primeira consideração: o que você deseja fazer com seus dados?The Azure Machine Learning Algorithm Cheat Sheet helps you with the first consideration: What you want to do with your data? Na folha de consulta do algoritmo de Machine Learning, procure a tarefa que você deseja fazer e localize um algoritmo de Designer de Azure Machine Learning para a solução de análise preditiva.On the Machine Learning Algorithm Cheat Sheet, look for task you want to do, and then find a Azure Machine Learning designer algorithm for the predictive analytics solution.

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 multiclassee clustering de K-means.Machine Learning designer provides a comprehensive portfolio of algorithms, such as Multiclass Decision Forest, Recommendation systems, Neural Network Regression, Multiclass Neural Network, and K-Means Clustering. Cada algoritmo é projetado para resolver um tipo diferente de problema de aprendizado de máquina.Each algorithm is designed to address a different type of machine learning problem. Consulte o algoritmo do designer de Machine Learning e a referência de módulo para obter uma lista completa, juntamente com a documentação sobre como cada algoritmo funciona e como ajustar parâmetros para otimizar o algoritmo.See the Machine Learning designer algorithm and module reference for a complete list along with documentation about how each algorithm works and how to tune parameters to optimize the algorithm.

Observação

Para baixar a folha de consulta do algoritmo de aprendizado de máquina, vá para a folha de consulta do algoritmo do Azure Machine Learning.To download the machine learning algorithm cheat sheet, go to Azure Machine learning algorithm cheat sheet.

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 sua solução.Along with guidance in the Azure Machine Learning Algorithm Cheat Sheet, keep in mind other requirements when choosing a machine learning algorithm for your solution. A seguir, são fatores adicionais a serem considerados, como precisão, tempo de treinamento, linearidade, número de parâmetros e número de recursos.Following are additional factors to consider, such as the accuracy, training time, linearity, number of parameters and number of features.

Comparação de algoritmos de aprendizado de máquinaComparison of machine learning algorithms

Alguns algoritmos de aprendizado fazem suposições específicas sobre a estrutura de dados ou os resultados desejados.Some learning algorithms make particular assumptions about the structure of the data or the desired results. Se você conseguir encontrar um que atenda às suas necessidades, ele oferecerá resultados mais úteis, previsões mais exatas ou tempos de treinamento menores.If you can find one that fits your needs, it can give you more useful results, more accurate predictions, or faster training times.

A tabela a seguir resume algumas das características mais importantes dos algoritmos das famílias de classificação, regressão e clustering:The following table summarizes some of the most important characteristics of algorithms from the classification, regression, and clustering families:

AlgoritmoAlgorithm PrecisãoAccuracy Tempo de treinamentoTraining time LinearidadeLinearity ParâmetrosParameters ObservaçõesNotes
Família de classificaçãoClassification family
Regressão logística de duas classesTwo-Class logistic regression SatisfatórioGood RápidoFast SimYes 44
Floresta de decisão de duas classesTwo-class decision forest ExcelenteExcellent ModeradoModerate NãoNo 55 Mostra tempos de pontuação mais lentos.Shows slower scoring times. Sugira não trabalhar com Multiclasse Um contra Todos, devido a tempos de pontuação mais lentos causados por bloqueio de piso em previsões de árvore de acumulaçãoSuggest not working with One-vs-All Multiclass, because of slower scoring times caused by tread locking in accumulating tree predictions
Árvore de decisão aumentada de duas classesTwo-class boosted decision tree ExcelenteExcellent ModeradoModerate NãoNo 66 Grande volume de memóriaLarge memory footprint
Rede neural de duas classesTwo-class neural network SatisfatórioGood ModeradoModerate NãoNo 88
Perceptron média de duas classesTwo-class averaged perceptron SatisfatórioGood ModeradoModerate SimYes 44
Computador de vetor de suporte de duas classesTwo-class support vector machine SatisfatórioGood RápidoFast SimYes 55 Bom para conjuntos de recursos grandesGood for large feature sets
Regressão logística multiclasseMulticlass logistic regression SatisfatórioGood RápidoFast SimYes 44
Floresta de decisão multiclasseMulticlass decision forest ExcelenteExcellent ModeradoModerate NãoNo 55 Mostra tempos de pontuação mais lentosShows slower scoring times
Árvore de decisão aumentada multiclasseMulticlass boosted decision tree ExcelenteExcellent ModeradoModerate NãoNo 66 Tende a melhorar a precisão com um pequeno risco de menos coberturaTends to improve accuracy with some small risk of less coverage
Rede neural multiclasseMulticlass neural network SatisfatórioGood ModeradoModerate NãoNo 88
Multiclasse One-vs-AllOne-vs-all multiclass - - - - Consulte as propriedades do método de duas classes selecionadoSee properties of the two-class method selected
Família de regressãoRegression family
Regressão linearLinear regression SatisfatórioGood RápidoFast SimYes 44
Regressão de floresta de decisãoDecision forest regression ExcelenteExcellent ModeradoModerate NãoNo 55
Regressão da árvore de decisão aumentadaBoosted decision tree regression ExcelenteExcellent ModeradoModerate NãoNo 66 Grande volume de memóriaLarge memory footprint
Regressão de rede neuralNeural network regression SatisfatórioGood ModeradoModerate NãoNo 88
Família de clusteringClustering family
Clustering de K-meansK-means clustering ExcelenteExcellent ModeradoModerate SimYes 88 Um algoritmo de clusteringA clustering algorithm

Requisitos para um cenário de ciência de dadosRequirements for a data science scenario

Depois de saber o que você deseja fazer com seus dados, você precisa determinar os requisitos adicionais para sua solução.Once you know what you want to do with your data, you need to determine additional requirements for your solution.

Faça escolhas e, possivelmente, compensações para os seguintes requisitos:Make choices and possibly trade-offs for the following requirements:

  • PrecisãoAccuracy
  • Tempo de treinamentoTraining time
  • LinearidadeLinearity
  • Número de parâmetrosNumber of parameters
  • Número de recursosNumber of features

PrecisãoAccuracy

A precisão no aprendizado de máquina mede a eficácia de um modelo como a proporção de resultados verdadeiros em casos totais.Accuracy in machine learning measures the effectiveness of a model as the proportion of true results to total cases. No Machine Learning designer, o módulo avaliar modelo computa um conjunto de métricas de avaliação padrão do setor.In Machine Learning designer, the Evaluate Model module computes a set of industry-standard evaluation metrics. Você pode usar este módulo para medir a precisão de um modelo treinado.You can use this module to measure the accuracy of a trained model.

Obter a resposta mais precisa possível nem sempre é necessário.Getting the most accurate answer possible isn’t always necessary. Às vezes uma aproximação será adequada, dependendo do uso que você quiser dar a ela.Sometimes an approximation is adequate, depending on what you want to use it for. Se esse for o caso, você poderá reduzir drasticamente o tempo de processamento acompanhando os métodos mais aproximados.If that is the case, you may be able to cut your processing time dramatically by sticking with more approximate methods. Os métodos aproximados também tendem naturalmente a evitar o superajuste.Approximate methods also naturally tend to avoid overfitting.

Há três maneiras de usar o módulo avaliar modelo:There are three ways to use the Evaluate Model module:

  • Gerar pontuações sobre seus dados de treinamento para avaliar o modeloGenerate scores over your training data in order to evaluate the model
  • Gerar pontuações no modelo, mas comparar essas pontuações com pontuações em um conjunto de teste reservadoGenerate scores on the model, but compare those scores to scores on a reserved testing set
  • Comparar pontuações para dois modelos diferentes, mas relacionados, usando o mesmo conjunto de dadosCompare scores for two different but related models, using the same set of data

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 módulo modelo.For a complete list of metrics and approaches you can use to evaluate the accuracy of machine learning models, see Evaluate Model module.

Tempo de treinamentoTraining time

No aprendizado supervisionado, o treinamento significa usar dados históricos para criar um modelo de aprendizado de máquina que minimiza os erros.In supervised learning, training means using historical data to build a machine learning model that minimizes errors. O número de minutos ou de horas necessários para treinar um modelo varia muito entre algoritmos.The number of minutes or hours necessary to train a model varies a great deal between algorithms. O tempo de treinamento geralmente está fortemente vinculado à precisão; um normalmente acompanha o outro.Training time is often closely tied to accuracy; one typically accompanies the other.

Além disso, alguns algoritmos são mais sensíveis ao número de pontos de dados do que outros.In addition, some algorithms are more sensitive to the number of data points than others. Você pode escolher um algoritmo específico porque tem uma limitação de tempo, especialmente quando o conjunto de dados é grande.You might choose a specific algorithm because you have a time limitation, especially when the data set is large.

No Machine Learning designer, criar e usar um modelo de aprendizado de máquina normalmente é um processo de três etapas:In Machine Learning designer, creating and using a machine learning model is typically a three-step process:

  1. Configure um modelo, escolhendo um tipo específico de algoritmo e, em seguida, definindo seus parâmetros ou hiperparâmetros.Configure a model, by choosing a particular type of algorithm, and then defining its parameters or hyperparameters.

  2. Forneça um conjunto de dados que seja rotulado e que seja compatível com o algoritmo.Provide a dataset that is labeled and has data compatible with the algorithm. Conecte os dados e o modelo para treinar o módulo modelo.Connect both the data and the model to Train Model module.

  3. Após a conclusão do treinamento, use o modelo treinado com um dos módulos de Pontuação para fazer previsões sobre novos dados.After training is completed, use the trained model with one of the scoring modules to make predictions on new data.

LinearidadeLinearity

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 em seu conjunto de informações.Linearity in statistics and machine learning means that there is a linear relationship between a variable and a constant in your dataset. Por exemplo, os algoritmos de classificação linear pressupõem que as classes podem ser separadas por uma linha reta (ou sua analogia de alta dimensional).For example, linear classification algorithms assume that classes can be separated by a straight line (or its higher-dimensional analog).

Muitos algoritmos de aprendizado de máquina usam a linearidade.Lots of machine learning algorithms make use of linearity. No Azure Machine Learning designer, eles incluem:In Azure Machine Learning designer, they include:

Os algoritmos de regressão linear supõem que as tendências de dados seguem uma linha reta.Linear regression algorithms assume that data trends follow a straight line. Essa suposição não é muito boa para alguns problemas, mas para outros, ela reduz a precisão.This assumption isn't bad for some problems, but for others it reduces accuracy. Apesar de suas desvantagens, os algoritmos lineares são populares como uma primeira estratégia.Despite their drawbacks, linear algorithms are popular as a first strategy. Eles tendem a ser algoritmicamente simples e rápidos de treinar.They tend to be algorithmically simple and fast to train.

Limite de classe não linear

*Limite de classe não linear _: _Relying em um algoritmo de classificação linear resultaria em baixa precisão. *Nonlinear class boundary _: _Relying on a linear classification algorithm would result in low accuracy.

Dados com uma tendência não linear

*Dados com uma tendência não linear _: _Using um método de regressão linear geraria erros muito maiores do que o necessário. *Data with a nonlinear trend _: _Using a linear regression method would generate much larger errors than necessary.

Número de parâmetrosNumber of parameters

Os parâmetros são os botões que o cientista de dados precisa girar ao configurar um algoritmo.Parameters are the knobs a data scientist gets to turn when setting up an algorithm. Eles 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.They are numbers that affect the algorithm’s behavior, such as error tolerance or number of iterations, or options between variants of how the algorithm behaves. Às vezes, o tempo de treinamento e a precisão do algoritmo podem ser confidenciais para obter apenas as configurações corretas.The training time and accuracy of the algorithm can sometimes be sensitive to getting just the right settings. Normalmente, os algoritmos com um grande número de parâmetros exigem a mais avaliação e o erro para encontrar uma boa combinação.Typically, algorithms with large numbers of parameters require the most trial and error to find a good combination.

Como alternativa, há o módulo ajustar hiperparâmetros de modelo no designer de Machine Learning: o objetivo desse módulo é determinar os hiperparâmetros ideais para um modelo de aprendizado de máquina.Alternatively, there is the Tune Model Hyperparameters module in Machine Learning designer: The goal of this module is to determine the optimum hyperparameters for a machine learning model. O módulo cria e testa vários modelos usando diferentes combinações de configurações.The module builds and tests multiple models by using different combinations of settings. Ele compara métricas em todos os modelos para obter as combinações de configurações.It compares metrics over all models to get the combinations of settings.

Embora essa seja uma ótima maneira de certificar-se de que você colocou o espaço de parâmetro, o tempo necessário para treinar um modelo aumenta exponencialmente com o número de parâmetros.While this is a great way to make sure you’ve spanned the parameter space, the time required to train a model increases exponentially with the number of parameters. A vantagem é que ter muitos parâmetros geralmente indica que um algoritmo tem mais flexibilidade.The upside is that having many parameters typically indicates that an algorithm has greater flexibility. Geralmente, isso pode atingir uma precisão muito boa, desde que você encontre a combinação certa de configurações de parâmetro.It can often achieve very good accuracy, provided you can find the right combination of parameter settings.

Número de recursosNumber of features

No Machine Learning, um recurso é uma variável quantificável do fenômeno que você está tentando analisar.In machine learning, a feature is a quantifiable variable of the phenomenon you are trying to analyze. Para determinados tipos de dados, o número de recursos pode ser muito grande em comparação ao número de pontos de dados.For certain types of data, the number of features can be very large compared to the number of data points. Geralmente, isso acontece com dados de genética ou de texto.This is often the case with genetics or textual data.

Um grande número de recursos pode atrasár alguns algoritmos de aprendizado, tornando o tempo de treinamento unfeasibly longo.A large number of features can bog down some learning algorithms, making training time unfeasibly long. As máquinas de vetor de suporte são particularmente adequadas para cenários com um grande número de recursos.Support vector machines are particularly well suited to scenarios with a high number of features. Por esse motivo, eles foram usados em muitos aplicativos da recuperação de informações para a classificação de texto e imagem.For this reason, they have been used in many applications from information retrieval to text and image classification. As máquinas de vetor de suporte podem ser usadas para tarefas de classificação e regressão.Support vector machines can be used for both classification and regression tasks.

A seleção de recursos refere-se ao processo de aplicação de testes estatísticos a entradas, dado uma saída especificada.Feature selection refers to the process of applying statistical tests to inputs, given a specified output. O objetivo é determinar quais colunas são mais previsíveis na saída.The goal is to determine which columns are more predictive of the output. O módulo seleção de recursos baseada em filtro no Machine Learning designer fornece vários algoritmos de seleção de recursos para escolher.The Filter Based Feature Selection module in Machine Learning designer provides multiple feature selection algorithms to choose from. O módulo inclui métodos de correlação, como os valores de correlação Pearson e qui-quadrado.The module includes correlation methods such as Pearson correlation and chi-squared values.

Você também pode usar o módulo de importância do recurso de permuta para calcular um conjunto de pontuações de importância do recurso para seu conjunto de seus conjuntos de resultados.You can also use the Permutation Feature Importance module to compute a set of feature importance scores for your dataset. Você pode aproveitar essas pontuações para ajudá-lo a determinar os melhores recursos a serem usados em um modelo.You can then leverage these scores to help you determine the best features to use in a model.

Próximas etapasNext steps