Aprendizaje automático con Python: métodos

Existen varios algoritmos, técnicas y métodos de aprendizaje automático que se pueden utilizar para construir modelos para resolver problemas de la vida real utilizando datos. En este capítulo, vamos a discutir tipos de métodos tan diferentes.

Diferentes tipos de métodos

Los siguientes son varios métodos de AA basados ​​en algunas categorías amplias:

Basado en supervisión humana

En el proceso de aprendizaje, algunos de los métodos que se basan en la supervisión humana son los siguientes:

Supervised Learning

Los algoritmos o métodos de aprendizaje supervisado son los algoritmos de aprendizaje automático más utilizados. Este método o algoritmo de aprendizaje toma la muestra de datos, es decir, los datos de entrenamiento y su salida asociada, es decir, etiquetas o respuestas con cada muestra de datos durante el proceso de entrenamiento.

El objetivo principal de los algoritmos de aprendizaje supervisado es aprender una asociación entre las muestras de datos de entrada y las salidas correspondientes después de realizar múltiples instancias de datos de entrenamiento.

Por ejemplo, tenemos

x: Variables de entrada y

Y: Variable de salida

Ahora, aplique un algoritmo para aprender la función de mapeo de la entrada a la salida de la siguiente manera:

Y = f (x)

Ahora, el objetivo principal sería aproximar la función de mapeo tan bien que incluso cuando tengamos nuevos datos de entrada (x), podamos predecir fácilmente la variable de salida (Y) para esos nuevos datos de entrada.

Se llama supervisado porque todo el proceso de aprendizaje se puede pensar mientras está siendo supervisado por un maestro o supervisor. Los ejemplos de algoritmos de aprendizaje automático supervisados ​​incluyenDecision tree, Random Forest, KNN, Logistic Regression etc.

Según las tareas de AA, los algoritmos de aprendizaje supervisado se pueden dividir en las siguientes dos clases generales:

  • Classification
  • Regression

Classification

El objetivo clave de las tareas basadas en clasificación es predecir etiquetas de salida categóricas o respuestas para los datos de entrada dados. El resultado se basará en lo que el modelo haya aprendido en la fase de formación. Como sabemos, las respuestas de salida categóricas significan valores discretos y desordenados, por lo que cada respuesta de salida pertenecerá a una clase o categoría específica. También discutiremos la Clasificación y los algoritmos asociados en detalle en los próximos capítulos.

Regression

El objetivo clave de las tareas basadas en regresión es predecir etiquetas de salida o respuestas que son valores numéricos continuos para los datos de entrada dados. El resultado se basará en lo que el modelo haya aprendido en su fase de formación. Básicamente, los modelos de regresión utilizan las características de los datos de entrada (variables independientes) y sus correspondientes valores numéricos continuos de salida (variables dependientes o de resultado) para aprender la asociación específica entre las entradas y las salidas correspondientes. También discutiremos la regresión y los algoritmos asociados en detalle en capítulos posteriores.

Aprendizaje sin supervisión

Como su nombre indica, es opuesto a los métodos o algoritmos de ML supervisados, lo que significa que en los algoritmos de aprendizaje automático no supervisados ​​no tenemos ningún supervisor que proporcione ningún tipo de orientación. Los algoritmos de aprendizaje no supervisados ​​son útiles en el escenario en el que no tenemos la libertad, como en los algoritmos de aprendizaje supervisado, de tener datos de entrenamiento preetiquetados y queremos extraer un patrón útil de los datos de entrada.

Por ejemplo, se puede entender de la siguiente manera:

Supongamos que tenemos ...

x: Input variables, entonces no habría una variable de salida correspondiente y los algoritmos necesitan descubrir el patrón interesante en los datos para el aprendizaje.

Algunos ejemplos de algoritmos de aprendizaje automático no supervisados ​​incluyen la agrupación en clústeres de K-medias, K-nearest neighbors etc.

Según las tareas de AA, los algoritmos de aprendizaje no supervisados ​​se pueden dividir en las siguientes clases generales:

  • Clustering
  • Association
  • Reducción de dimensionalidad

Clustering

Los métodos de agrupación en clústeres son uno de los métodos de AA sin supervisión más útiles. Estos algoritmos solían encontrar similitudes y patrones de relación entre muestras de datos y luego agrupar esas muestras en grupos que tienen similitudes basadas en características. El ejemplo del mundo real de agrupación es agrupar a los clientes según su comportamiento de compra.

Association

Otro método útil de AA sin supervisión es Associationque se utiliza para analizar un gran conjunto de datos para encontrar patrones que representen además las interesantes relaciones entre varios elementos. También se denomina comoAssociation Rule Mining o Market basket analysis que se utiliza principalmente para analizar los patrones de compra de los clientes.

Dimensionality Reduction

Este método de AA no supervisado se utiliza para reducir el número de variables de características para cada muestra de datos mediante la selección de un conjunto de características principales o representativas. Una pregunta que surge aquí es ¿por qué necesitamos reducir la dimensionalidad? La razón detrás es el problema de la complejidad del espacio de características que surge cuando comenzamos a analizar y extraer millones de características de muestras de datos. Este problema generalmente se refiere a la "maldición de la dimensionalidad". PCA (Análisis de componentes principales), K vecinos más cercanos y análisis discriminante son algunos de los algoritmos populares para este propósito.

Anomaly Detection

Este método de AA no supervisado se utiliza para descubrir las ocurrencias de eventos u observaciones raras que generalmente no ocurren. Al utilizar el conocimiento aprendido, los métodos de detección de anomalías podrían diferenciar entre un punto de datos anómalo o normal. Algunos de los algoritmos no supervisados, como la agrupación en clústeres, KNN pueden detectar anomalías en función de los datos y sus características.

Aprendizaje semi-supervisado

Este tipo de algoritmos o métodos no están completamente supervisados ​​ni sin supervisión total. Básicamente, se encuentran entre los dos métodos de aprendizaje supervisados ​​y no supervisados. Este tipo de algoritmos generalmente utilizan un pequeño componente de aprendizaje supervisado, es decir, una pequeña cantidad de datos anotados previamente etiquetados y un gran componente de aprendizaje no supervisado, es decir, una gran cantidad de datos sin etiquetar para el entrenamiento. Podemos seguir cualquiera de los siguientes enfoques para implementar métodos de aprendizaje semi-supervisados:

  • El primer y simple enfoque es construir el modelo supervisado basado en una pequeña cantidad de datos etiquetados y anotados y luego construir el modelo no supervisado aplicando lo mismo a las grandes cantidades de datos no etiquetados para obtener más muestras etiquetadas. Ahora, entrena el modelo sobre ellos y repite el proceso.

  • El segundo enfoque necesita algunos esfuerzos adicionales. En este enfoque, primero podemos usar los métodos no supervisados ​​para agrupar muestras de datos similares, anotar estos grupos y luego usar una combinación de esta información para entrenar el modelo.

Aprendizaje reforzado

Estos métodos son diferentes de los métodos previamente estudiados y también se utilizan muy raramente. En este tipo de algoritmos de aprendizaje, habría un agente que queremos entrenar durante un período de tiempo para que pueda interactuar con un entorno específico. El agente seguirá un conjunto de estrategias para interactuar con el entorno y luego de observar el entorno tomará acciones respecto al estado actual del entorno. Los siguientes son los pasos principales de los métodos de aprendizaje por refuerzo:

  • Step 1 - Primero, necesitamos preparar un agente con un conjunto inicial de estrategias.

  • Step 2 - Luego observe el medio ambiente y su estado actual.

  • Step 3 - A continuación, seleccione la política óptima con respecto al estado actual del medio ambiente y realice una acción importante.

  • Step 4 - Ahora, el agente puede obtener la recompensa o la penalización correspondiente según la acción realizada por él en el paso anterior.

  • Step 5 - Ahora, podemos actualizar las estrategias si es necesario.

  • Step 6 - Por último, repita los pasos 2 a 5 hasta que el agente aprenda y adopte las políticas óptimas.

Tareas adecuadas para el aprendizaje automático

El siguiente diagrama muestra qué tipo de tarea es apropiada para varios problemas de AA:

Basado en la capacidad de aprendizaje

En el proceso de aprendizaje, los siguientes son algunos métodos que se basan en la capacidad de aprendizaje:

Batch Learning

En muchos casos, tenemos sistemas de aprendizaje automático de un extremo a otro en los que necesitamos entrenar el modelo de una sola vez utilizando todos los datos de entrenamiento disponibles. Este tipo de método de aprendizaje o algoritmo se llamaBatch or Offline learning. Se llama aprendizaje por lotes o sin conexión porque es un procedimiento de una sola vez y el modelo se entrenará con datos en un solo lote. Los siguientes son los pasos principales de los métodos de aprendizaje por lotes:

  • Step 1 - Primero, necesitamos recopilar todos los datos de entrenamiento para comenzar a entrenar el modelo.

  • Step 2 - Ahora, inicie el entrenamiento del modelo proporcionando datos de entrenamiento completos de una vez.

  • Step 3 - A continuación, detenga el proceso de aprendizaje / capacitación una vez que obtenga resultados / desempeño satisfactorios.

  • Step 4- Finalmente, implemente este modelo entrenado en producción. Aquí, predecirá la salida de una nueva muestra de datos.

Aprender en línea

Es completamente opuesto a los métodos de aprendizaje por lotes o fuera de línea. En estos métodos de aprendizaje, los datos de entrenamiento se suministran en varios lotes incrementales, llamados mini lotes, al algoritmo. Los siguientes son los pasos principales de los métodos de aprendizaje en línea:

  • Step 1 - Primero, necesitamos recopilar todos los datos de entrenamiento para comenzar el entrenamiento del modelo.

  • Step 2 - Ahora, inicie el entrenamiento del modelo proporcionando un mini lote de datos de entrenamiento al algoritmo.

  • Step 3 - A continuación, debemos proporcionar los mini lotes de datos de entrenamiento en múltiples incrementos al algoritmo.

  • Step 4 - Como no se detendrá como el aprendizaje por lotes, por lo tanto, después de proporcionar datos de entrenamiento completos en mini lotes, proporcione nuevas muestras de datos también.

  • Step 5 - Finalmente, seguirá aprendiendo durante un período de tiempo en función de las nuevas muestras de datos.

Basado en el enfoque de generalización

En el proceso de aprendizaje, los siguientes son algunos métodos que se basan en enfoques de generalización:

Aprendizaje basado en instancias

El método de aprendizaje basado en instancias es uno de los métodos útiles que construyen los modelos ML al hacer generalizaciones basadas en los datos de entrada. Es opuesto a los métodos de aprendizaje estudiados anteriormente en la forma en que este tipo de aprendizaje involucra sistemas ML, así como métodos que utilizan los puntos de datos sin procesar para extraer los resultados de muestras de datos más nuevas sin construir un modelo explícito sobre los datos de entrenamiento.

En palabras simples, el aprendizaje basado en instancias básicamente comienza a funcionar observando los puntos de datos de entrada y luego, usando una métrica de similitud, generalizará y predecirá los nuevos puntos de datos.

Aprendizaje basado en modelos

En los métodos de aprendizaje basados ​​en modelos, se lleva a cabo un proceso iterativo en los modelos ML que se construyen en función de varios parámetros del modelo, llamados hiperparámetros y en los que se utilizan datos de entrada para extraer las características. En este aprendizaje, los hiperparámetros se optimizan en función de varias técnicas de validación de modelos. Es por eso que podemos decir que los métodos de aprendizaje basados ​​en modelos utilizan un enfoque ML más tradicional hacia la generalización.