Selección de algoritmos para Azure Machine LearningHow to select algorithms for Azure Machine Learning

"¿Qué algoritmo de Machine Learning debo usar?" es una pregunta habitualA common question is “Which machine learning algorithm should I use?” El algoritmo que se selecciona depende principalmente de dos aspectos diferentes del escenario de ciencia de datos:The algorithm you select depends primarily on two different aspects of your data science scenario:

  • ¿Qué quiere hacer con los datos?What you want to do with your data? En concreto, ¿cuál es la cuestión empresarial a la que desea dar respuesta aprendiendo de sus datos pasados?Specifically, what is the business question you want to answer by learning from your past data?

  • ¿Cuáles son los requisitos de su escenario de ciencia de datos?What are the requirements of your data science scenario? En concreto, ¿cuál es la precisión, el tiempo de entrenamiento, la linealidad, el número de parámetros y el número de características que admite la solución?Specifically, what is the accuracy, training time, linearity, number of parameters, and number of features your solution supports?

Consideraciones a la hora de elegir algoritmos: ¿Qué desea saber?

Escenarios empresariales y la hoja de características clave de los algoritmos de Machine LearningBusiness scenarios and the Machine Learning Algorithm Cheat Sheet

La hoja de características clave de Azure Machine Learning sirve de ayuda en la primera consideración: ¿Qué quiere hacer con los datos?The Azure Machine Learning Algorithm Cheat Sheet helps you with the first consideration: What you want to do with your data? En la hoja de características clave de los algoritmos de Machine Learning, busque la tarea que desea realizar y, después, busque un algoritmo del diseñador de Azure Machine Learning para la solución de análisis predictivo.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.

El diseñador de Machine Learning proporciona una completa gama de algoritmos, como Bosque de decisión multiclase, Sistemas de recomendación, Regresión de red neuronal, Red neuronal multiclase y Agrupación en clústeres 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 está diseñado para solucionar un tipo distinto de problema de Machine Learning.Each algorithm is designed to address a different type of machine learning problem. En el artículo Referencia de módulo y algoritmo para el diseñador de Azure Machine Learning encontrará una lista completa, junto con documentación sobre cómo funciona cada algoritmo y cómo ajustar los parámetros para optimizar el 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.

Nota

Para descargar la hoja de características clave de los algoritmos de Machine Learning, vaya a Hoja de características clave de los algoritmos de Machine Learning.To download the machine learning algorithm cheat sheet, go to Azure Machine learning algorithm cheat sheet.

Junto con la guía de la hoja de características clave de los algoritmos de Machine Learning, tenga en cuenta otros requisitos al elegir un algoritmo de Machine Learning para su solución.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 continuación se indican otros factores que deben tenerse en cuenta, como la precisión, el tiempo de entrenamiento, la linealidad, el número de parámetros y el número de características.Following are additional factors to consider, such as the accuracy, training time, linearity, number of parameters and number of features.

Comparación de algoritmos de aprendizaje automáticoComparison of machine learning algorithms

Algunos algoritmos de aprendizaje hacen determinadas suposiciones sobre la estructura de los datos o los resultados deseados.Some learning algorithms make particular assumptions about the structure of the data or the desired results. Si encuentra uno que se ajuste a sus necesidades, este puede ofrecerle resultados más útiles, predicciones más precisas o tiempos de entrenamiento más cortos.If you can find one that fits your needs, it can give you more useful results, more accurate predictions, or faster training times.

En la tabla siguiente se resumen algunas de las características más importantes de los algoritmos de las familias de clasificación, regresión y agrupación en clústeres:The following table summarizes some of the most important characteristics of algorithms from the classification, regression, and clustering families:

AlgoritmoAlgorithm PrecisiónAccuracy Tiempo de entrenamientoTraining time LinealidadLinearity ParámetrosParameters NotasNotes
Familia de clasificaciónClassification family
Regresión logística de dos clasesTwo-Class logistic regression BuenoGood Fast (rápido)Fast Yes 44
Bosque de decisión de dos clasesTwo-class decision forest ExcelenteExcellent ModeradoModerate NoNo 55 Muestra los tiempos de puntuación más lentos.Shows slower scoring times. No se recomienda trabajar con Uno frente a todos multiclase, debido a los tiempos de puntuación más lentos ocasionados por el bloqueo de subprocesos en las predicciones de árbol acumuladas.Suggest not working with One-vs-All Multiclass, because of slower scoring times caused by tread locking in accumulating tree predictions
Árbol de decisión ampliado de dos clasesTwo-class boosted decision tree ExcelenteExcellent ModeradoModerate NoNo 66 Uso de memoria grandeLarge memory footprint
Red neuronal de dos clasesTwo-class neural network BuenoGood ModeradoModerate NoNo 88
Perceptrón promedio de dos clasesTwo-class averaged perceptron BuenoGood ModeradoModerate Yes 44
Máquina de vectores de soporte de dos clasesTwo-class support vector machine BuenoGood Fast (rápido)Fast Yes 55 Útil para conjuntos de características de gran tamañoGood for large feature sets
Regresión logística multiclaseMulticlass logistic regression BuenoGood Fast (rápido)Fast Yes 44
Bosque de decisión multiclaseMulticlass decision forest ExcelenteExcellent ModeradoModerate NoNo 55 Muestra los tiempos de puntuación más lentos.Shows slower scoring times
Árbol de decisión ampliado multiclaseMulticlass boosted decision tree ExcelenteExcellent ModeradoModerate NoNo 66 Tiende a mejorar la precisión a pesar de correr el riesgo de tener menor cobertura.Tends to improve accuracy with some small risk of less coverage
Red neuronal multiclaseMulticlass neural network BuenoGood ModeradoModerate NoNo 88
Uno frente a todos multiclaseOne-vs-all multiclass - - - - Vea las propiedades del método de dos clases seleccionadoSee properties of the two-class method selected
Familia de regresiónRegression family
Regresión linealLinear regression BuenoGood Fast (rápido)Fast Yes 44
Regresión de bosque de decisiónDecision forest regression ExcelenteExcellent ModeradoModerate NoNo 55
Regresión del árbol de decisión potenciadoBoosted decision tree regression ExcelenteExcellent ModeradoModerate NoNo 66 Uso de memoria grandeLarge memory footprint
Regresión de red neuronalNeural network regression BuenoGood ModeradoModerate NoNo 88
Familia de agrupación en clústeresClustering family
Agrupación en clústeres K-MeansK-means clustering ExcelenteExcellent ModeradoModerate Yes 88 Un algoritmo de agrupación en clústeresA clustering algorithm

Requisitos para un escenario de ciencia de datosRequirements for a data science scenario

Una vez que sepa lo que quiere hacer con sus datos, necesita determinar los requisitos adicionales de su solución.Once you know what you want to do with your data, you need to determine additional requirements for your solution.

Elija las opciones y posibles compensaciones para los siguientes requisitos:Make choices and possibly trade-offs for the following requirements:

  • PrecisiónAccuracy
  • Tiempo de entrenamientoTraining time
  • LinealidadLinearity
  • Cantidad de parámetrosNumber of parameters
  • Cantidad de característicasNumber of features

PrecisiónAccuracy

La precisión de Machine Learning mide la eficacia de un modelo como la proporción de resultados verdaderos en comparación con el total de casos.Accuracy in machine learning measures the effectiveness of a model as the proportion of true results to total cases. En el diseñador de Machine Learning, el módulo Evaluate Model (Evaluar modelo) calcula un conjunto de métricas de evaluación estándar del sector.In Machine Learning designer, the Evaluate Model module computes a set of industry-standard evaluation metrics. Este módulo se puede usar para medir la precisión de un modelo entrenado.You can use this module to measure the accuracy of a trained model.

No siempre es necesario obtener la respuesta más precisa posible.Getting the most accurate answer possible isn’t always necessary. A veces, una aproximación ya es útil, según para qué se la desee usar.Sometimes an approximation is adequate, depending on what you want to use it for. Si es así, puede reducir drásticamente el tiempo de procesamiento mediante el uso de métodos más aproximados.If that is the case, you may be able to cut your processing time dramatically by sticking with more approximate methods. Los métodos aproximados también tienden naturalmente a evitar el sobreajuste.Approximate methods also naturally tend to avoid overfitting.

Hay tres formas de usar el módulo Evaluate Model (Evaluar modelo):There are three ways to use the Evaluate Model module:

  • Generar puntuaciones sobre los datos de entrenamiento para evaluar el modeloGenerate scores over your training data in order to evaluate the model
  • Generar puntuaciones en el modelo, pero compararlas con las de un conjunto de pruebas reservado.Generate scores on the model, but compare those scores to scores on a reserved testing set
  • Comparar las puntuaciones de dos modelos diferentes pero relacionados, usando el mismo conjunto de datos.Compare scores for two different but related models, using the same set of data

Para ver una lista completa de las métricas y los enfoques que se pueden usar para evaluar la precisión de los modelos de Machine Learning, consulte Módulo Evaluate Model (Evaluar modelo).For a complete list of metrics and approaches you can use to evaluate the accuracy of machine learning models, see Evaluate Model module.

Tiempo de entrenamientoTraining time

En el aprendizaje supervisado, el entrenamiento significa utilizar datos históricos para crear un modelo de Machine Learning que minimiza los errores.In supervised learning, training means using historical data to build a machine learning model that minimizes errors. La cantidad de minutos u horas necesarios para entrenar un modelo varía mucho según el algoritmo.The number of minutes or hours necessary to train a model varies a great deal between algorithms. A menudo, el tiempo de entrenamiento depende en gran medida de la precisión; por lo general, un factor acompaña al otro.Training time is often closely tied to accuracy; one typically accompanies the other.

Además, algunos algoritmos son más sensibles a la cantidad de puntos de datos que otros.In addition, some algorithms are more sensitive to the number of data points than others. Puede elegir un algoritmo concreto porque tiene una limitación de tiempo, sobre todo cuando el conjunto de datos es grande.You might choose a specific algorithm because you have a time limitation, especially when the data set is large.

En el diseñador de Machine Learning, la creación y el uso de un modelo de Machine Learning suele ser un proceso de tres pasos:In Machine Learning designer, creating and using a machine learning model is typically a three-step process:

  1. Para configurar un modelo, elija un tipo de algoritmo concreto y, posteriormente, defina sus parámetros o hiperparámetros.Configure a model, by choosing a particular type of algorithm, and then defining its parameters or hyperparameters.

  2. Especifique un conjunto de datos que esté etiquetado y tenga datos compatibles con el algoritmo.Provide a dataset that is labeled and has data compatible with the algorithm. Conecte los datos y el modelo al módulo Train Model (Entrenar modelo).Connect both the data and the model to Train Model module.

  3. Una vez que finalice el entrenamiento, use el modelo entrenado con uno de los módulos de puntuación para realizar predicciones de los datos nuevos.After training is completed, use the trained model with one of the scoring modules to make predictions on new data.

LinealidadLinearity

En las estadísticas y el aprendizaje automático, la linealidad significa que hay una relación lineal entre una variable y una constante del conjunto de datos.Linearity in statistics and machine learning means that there is a linear relationship between a variable and a constant in your dataset. Por ejemplo, los algoritmos de clasificación lineal asumen que las clases pueden estar separadas mediante una línea recta (o su análogo de mayores dimensiones).For example, linear classification algorithms assume that classes can be separated by a straight line (or its higher-dimensional analog).

Muchos algoritmos de aprendizaje automático hacen uso de la linealidad.Lots of machine learning algorithms make use of linearity. En el diseñador de Azure Machine Learning, incluyen:In Azure Machine Learning designer, they include:

Los algoritmos de regresión lineal suponen que las tendencias de datos siguen una línea recta.Linear regression algorithms assume that data trends follow a straight line. Esta suposición no es perjudicial en ciertos problemas, pero en otros reduce la precisión.This assumption isn't bad for some problems, but for others it reduces accuracy. A pesar de sus inconvenientes, los algoritmos lineales son muy usados como primera estrategia.Despite their drawbacks, linear algorithms are popular as a first strategy. Tienden a ser algorítmicamente sencillos y rápidos para entrenar.They tend to be algorithmically simple and fast to train.

Límite de clase no lineal

Límite de clase no lineal _: _la dependencia de un algoritmo de clasificación lineal se traduciría en una baja precisión.Nonlinear class boundary _: _Relying on a linear classification algorithm would result in low accuracy.

Datos con tendencia no lineal

Datos con tendencia no lineal _: _el uso de un método de regresión lineal generaría más errores de los necesarios.Data with a nonlinear trend _: _Using a linear regression method would generate much larger errors than necessary.

Cantidad de parámetrosNumber of parameters

Los parámetros son los botones que un científico de datos activa al configurar un algoritmo.Parameters are the knobs a data scientist gets to turn when setting up an algorithm. Son números que afectan al comportamiento del algoritmo, como la tolerancia a errores o la cantidad de iteraciones, o bien opciones de las variantes de comportamiento del algoritmo.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. Tanto el tiempo de entrenamiento como la precisión del algoritmo a veces pueden ser sensibles y requerir solo la configuración correcta.The training time and accuracy of the algorithm can sometimes be sensitive to getting just the right settings. Normalmente, los algoritmos con parámetros de números grandes requieren la mayor cantidad de pruebas y errores posible para encontrar una buena combinación.Typically, algorithms with large numbers of parameters require the most trial and error to find a good combination.

Una alternativa es el módulo Tune Model Hyperparameters (Optimizar hiperparámetros del modelo) del diseñador de Machine Learning: El objetivo de este módulo es determinar los hiperparámetros óptimos para un modelo de Machine Learning.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. El módulo compila y prueba varios modelos con diferentes combinaciones de configuraciones.The module builds and tests multiple models by using different combinations of settings. Compara las métricas de todos los modelos para obtener las combinaciones de valores.It compares metrics over all models to get the combinations of settings.

Aunque esta es una excelente manera de asegurarse de que se ha distribuido el espacio de parámetros, el tiempo necesario para entrenar un modelo aumenta de manera exponencial con el 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. La ventaja es que tener muchos parámetros normalmente indica que un algoritmo tiene mayor flexibilidad.The upside is that having many parameters typically indicates that an algorithm has greater flexibility. Por lo general, puede conseguir una precisión muy elevada, siempre y cuando se encuentre la combinación correcta de configuraciones de parámetros.It can often achieve very good accuracy, provided you can find the right combination of parameter settings.

Cantidad de característicasNumber of features

En Machine Learning, una característica es una variable cuantificable del fenómeno que intenta analizar.In machine learning, a feature is a quantifiable variable of the phenomenon you are trying to analyze. Para ciertos tipos de datos, la cantidad de características puede ser muy grande en comparación con la cantidad de puntos de datos.For certain types of data, the number of features can be very large compared to the number of data points. Este suele ser el caso de la genética o los datos textuales.This is often the case with genetics or textual data.

Una gran cantidad de características puede trabar algunos algoritmos de aprendizaje, lo que hace que el tiempo de entrenamiento sea demasiado largo.A large number of features can bog down some learning algorithms, making training time unfeasibly long. Las máquinas de vectores de soporte son especialmente apropiadas para escenarios con un gran número de características.Support vector machines are particularly well suited to scenarios with a high number of features. Por esta razón, se han usado en muchas aplicaciones, desde la recuperación de información hasta la clasificación de texto e imágenes.For this reason, they have been used in many applications from information retrieval to text and image classification. Las máquinas de vectores de soporte pueden usarse para tareas de clasificación y regresión.Support vector machines can be used for both classification and regression tasks.

Dada una salida específica, la selección de características hace referencia al proceso de aplicación de pruebas estadísticas a las entradas.Feature selection refers to the process of applying statistical tests to inputs, given a specified output. para determinar qué columnas son más predecibles de la salida.The goal is to determine which columns are more predictive of the output. El módulo Filter Based Feature Selection (Selección de características basada en filtro) del diseñador de Machine Learning proporciona varios algoritmos de selección de características entre los que elegir.The Filter Based Feature Selection module in Machine Learning designer provides multiple feature selection algorithms to choose from. El módulo incluye métodos de correlación como la correlación de Pearson y valores de la χ2.The module includes correlation methods such as Pearson correlation and chi-squared values.

También puede usar el módulo Permutation Feature Importance (Importancia de la característica de permutación) para calcular un conjunto de puntuaciones de importancia de las características del conjunto de resultados.You can also use the Permutation Feature Importance module to compute a set of feature importance scores for your dataset. Luego, estas puntuaciones se pueden usan para ayudarle a determinar las mejores características que se deben usar en un modelo.You can then leverage these scores to help you determine the best features to use in a model.

Pasos siguientesNext steps