Introducción a los algoritmos de aprendizaje automático

Machine Learning es el estudio de análisis predictivo que funciona según el principio de que las computadoras aprenden de datos pasados ​​y luego hacen predicciones sobre los nuevos datos. El advenimiento de los algoritmos de Machine Learning se remontó mucho tiempo atrás cuando se desarrollaron las computadoras. Sin embargo, la exageración reciente es el resultado de la gran cantidad de datos que se generan y la enorme potencia computacional que poseen las computadoras modernas. Esto ha dado lugar a la aparición de Deep Learning, un subcampo de Machine Learning que se nutre de más datos. Funciona como un cerebro humano donde las neuronas se utilizan para tomar mejores decisiones. De manera similar, en Deep Learning, las redes neuronales forman las capas que siguen el principio de propagación hacia adelante y hacia atrás para tomar mejores decisiones.

Categorías de algoritmos de aprendizaje automático

El campo de los algoritmos de aprendizaje automático se puede clasificar en:

  • Aprendizaje supervisado : en el Aprendizaje supervisado, el conjunto de datos está etiquetado, es decir, para cada característica o variable independiente, hay un dato objetivo correspondiente que usaríamos para entrenar el modelo.
  • Aprendizaje supervisado de la ONU : a diferencia del aprendizaje supervisado, el conjunto de datos no está etiquetado en este caso. Por lo tanto, la técnica de agrupamiento se utiliza para agrupar los datos en función de su similitud entre los puntos de datos en el mismo grupo.
  • Aprendizaje de refuerzo : un tipo especial de aprendizaje automático donde el modelo aprende de cada acción tomada. El modelo es recompensado por cualquier decisión correcta tomada y penalizado por cualquier decisión incorrecta que le permita conocer los patrones y tomar decisiones más precisas sobre datos desconocidos.

División de algoritmos de aprendizaje automático

Los problemas en los algoritmos de aprendizaje automático se pueden dividir en:

  • Regresión : existe una relación continua entre las variables dependientes e independientes. La variable objetivo es de naturaleza numérica, mientras que las variables independientes pueden ser numéricas o categóricas.
  • Clasificación : el enunciado del problema más común que encontraría en el mundo real es clasificar un punto de datos en alguna clase binaria, multinomial u ordinal. En el problema de Clasificación binaria, la variable objetivo solo tiene dos resultados (Sí / No, 0/1, Verdadero / Falso). En el problema de Clasificación multinomial, hay varias clases en la variable de destino (Apple / Orange / Mango, etc.). En el problema de clasificación ordinal, se ordena la variable objetivo (p. Ej., La calificación de los estudiantes).

Ahora, para resolver este tipo de problemas, los programadores y los científicos han desarrollado algunos programas o algoritmos que podrían usarse en los datos para hacer predicciones. Estos algoritmos podrían dividirse en algoritmos lineales y no lineales o basados ​​en árboles. Los algoritmos lineales como Regresión lineal, Regresión logística se usan generalmente cuando hay una relación lineal entre la característica y la variable objetivo, mientras que los datos que exhiben patrones no lineales, los métodos basados ​​en árboles como Árbol de decisión, Bosque aleatorio, Aumento de gradiente, etc., son preferidos.

Hasta ahora, tenemos una breve intuición sobre Machine Learning. Ahora aprendería algunos de sus algoritmos preprogramados que podría usar en su próximo proyecto.

Algoritmos

Existen numerosos algoritmos de Machine Learning que se encuentran actualmente en el mercado y solo va a aumentar teniendo en cuenta la cantidad de investigación que se está realizando en este campo. La regresión lineal y logística son generalmente los primeros algoritmos que aprende como científico de datos, seguidos de algoritmos más avanzados.

A continuación se muestran algunos de los algoritmos de Machine Learning junto con fragmentos de código de muestra en python.

1. Regresión lineal

Como su nombre indica, este algoritmo podría usarse en casos en los que la variable objetivo que es de naturaleza continua depende linealmente de las variables dependientes. Está representado por -

y = a * x + b + e, donde y es la variable objetivo que estamos tratando de predecir, a es la intersección yb es la pendiente, x es nuestra variable dependiente utilizada para hacer la predicción. Esta es una regresión lineal simple ya que solo hay una variable independiente. En el caso de la regresión lineal múltiple, la ecuación habría sido:

y = a1*x1 + a2*x2 + …… + a(n)*x(n) + b + e

Aquí, e es el término de error y a1, a2 .. a (n) son el coeficiente de las variables independientes.

Para evaluar el rendimiento del modelo, se utiliza una métrica que en este caso podría ser Root Mean Square Error, que es la raíz cuadrada de la media de la suma de la diferencia entre los valores reales y los pronosticados.

El objetivo de la regresión lineal es encontrar la mejor línea de ajuste que minimice la diferencia entre los puntos de datos reales y los pronosticados.

La regresión lineal podría escribirse en Python de la siguiente manera:

2. Regresión logística

En términos de mantener una relación lineal, es lo mismo que la Regresión lineal. Sin embargo, a diferencia de la regresión lineal, la variable objetivo en la regresión logística es categórica, es decir, de naturaleza binaria, multinomial u ordinal. La elección de la función de activación es importante en la Regresión logística, ya que para problemas de clasificación binaria, se utiliza el registro de probabilidades a favor, es decir, la función sigmoidea.

En el caso de un problema de varias clases, se prefiere la función softmax ya que una función sigmoidea requiere mucho tiempo de cálculo.

La métrica utilizada para evaluar un problema de clasificación es generalmente la precisión o la curva ROC. Cuanto más el área bajo el ROC, mejor es el modelo. Un gráfico aleatorio tendría un AUC de 0.5. El valor de 1 indica la mayor precisión, mientras que 0 indica la menor precisión.

La regresión logística podría escribirse en el aprendizaje como:


3. Vecinos K-más cercanos

Los algoritmos de aprendizaje automático podrían usarse tanto para problemas de clasificación como de regresión. La idea detrás del método KNN es que predice el valor de un nuevo punto de datos basado en sus K vecinos más cercanos. Generalmente se prefiere K como un número impar para evitar conflictos. Al clasificar cualquier nuevo punto de datos, se tiene en cuenta la clase con el modo más alto dentro de los Vecinos. Mientras que para el problema de regresión, la media se considera como el valor.

Aprendí que el KNN está escrito como …


KNN se utiliza en la construcción de un motor de recomendación.

4. Máquinas de vectores de soporte

Un algoritmo de clasificación donde un hiperplano separa las dos clases. En un problema de clasificación binaria, dos vectores de dos clases distintas se consideran conocidos como vectores de soporte y el hiperplano se dibuja a una distancia máxima de los vectores de soporte.

Como puede ver, una sola línea separa las dos clases. Sin embargo, en la mayoría de los casos, los datos no serían tan perfectos y un simple hiperplano no podría separar las clases. Por lo tanto, debe ajustar parámetros como Regularización, Kernel, Gamma, etc.

El núcleo podría ser lineal o polinómico, dependiendo de cómo se separen los datos. En este caso, el núcleo es de naturaleza lineal. En el caso de la regularización, debe elegir un valor óptimo de C, ya que el valor alto podría conducir a un sobreajuste, mientras que un valor pequeño podría no ajustarse al modelo. La influencia de un solo ejemplo de entrenamiento está definida por Gamma. Los puntos cercanos a la línea se consideran en alta gamma y viceversa para baja gamma.

En sklearn, SVM se escribe como:


5. Bayes ingenuos

Funciona según el principio del Teorema de Bayes que encuentra la probabilidad de un evento considerando algunas condiciones verdaderas. El teorema de Bayes se representa como:

El algoritmo se llama ingenuo porque cree que todas las variables son independientes y la presencia de una variable no tiene ninguna relación con las otras variables, lo cual nunca es el caso en la vida real. Naive Bayes podría usarse en la clasificación de correo electrónico no deseado y en la clasificación de texto.

Código Naïve Bayes en Python -

6. Árbol de decisión

Utilizado tanto para problemas de clasificación como de regresión, el algoritmo de árbol de decisión es uno de los algoritmos de aprendizaje automático más simples y fácilmente interpretables. No se ve afectado por valores atípicos o valores faltantes en los datos y podría capturar las relaciones no lineales entre las variables dependientes e independientes.

Para construir un árbol de decisión, todas las características se consideran al principio, pero la característica con la máxima ganancia de información se toma como el nodo raíz final en función del cual se realiza la división sucesiva. Esta división continúa en el nodo secundario según los criterios de información máxima y se detiene hasta que todas las instancias se hayan clasificado o los datos no se puedan dividir más. Los árboles de decisión a menudo son propensos al sobreajuste y, por lo tanto, es necesario ajustar el hiperparámetro como profundidad máxima, nodos de hoja mínimos, muestras mínimas, características máximas, etc. Para reducir el sobreajuste, existe un enfoque codicioso que establece restricciones en cada paso y elige los mejores criterios posibles para esa división. Hay otro enfoque mejor llamado Poda donde el árbol se construye primero a una cierta profundidad predefinida y luego, desde la parte inferior, se eliminan los nodos si no mejora el modelo.

En sklearn, los árboles de decisión se codifican como:



7. Bosque al azar

Para reducir el sobreajuste en el Árbol de decisión, es necesario reducir la variación del modelo y, por lo tanto, el concepto de embolsado entró en vigencia. El ensacado es una técnica en la que se toma la salida de varios clasificadores para formar la salida final. Random Forest es uno de esos métodos de ensacado donde el conjunto de datos se muestrea en múltiples conjuntos de datos y las características se seleccionan al azar para cada conjunto. Luego, en cada dato muestreado, el algoritmo del Árbol de decisión se aplica para obtener la salida de cada modo. En el caso de un problema de regresión, se toma la media de la salida de todos los modelos, mientras que, en caso de problema de clasificación, se considera que la clase que obtiene el voto máximo clasifica el punto de datos. Random Forest no está influenciado por valores atípicos, valores perdidos en los datos y también ayuda en la reducción de la dimensionalidad. Sin embargo, no es interpretable cuál es un inconveniente para Random Forest. En Python, puede codificar Random Forest como:


8. K-significa Agrupación

Hasta ahora, hemos trabajado con problemas de aprendizaje supervisado donde cada entrada tiene una salida correspondiente. Ahora, aprenderíamos sobre el aprendizaje no supervisado donde los datos no están etiquetados y deben agruparse en grupos específicos. Hay varias técnicas de agrupamiento disponibles. Sin embargo, el más común de ellos es la agrupación de K-means. Significa tinta, k se refiere a la cantidad de grupos que deben establecerse antes de mantener la varianza máxima en el conjunto de datos. Una vez que se establece k, los centroides se inicializan. Los centroides se ajustan repetidamente para que la distancia entre los puntos de datos dentro de un centroide sea máxima y la distancia entre dos separados sea máxima. La distancia euclidiana, la distancia de Manhattan, etc., son algunas de las fórmulas de distancia utilizadas para este propósito.

El valor de k podría encontrarse a partir del método del codo.

La agrupación de K-means se utiliza en las industrias de comercio electrónico donde los clientes se agrupan según sus patrones de comportamiento. También podría usarse en Risk Analytics. A continuación se muestra el código de Python:


Conclusión: algoritmos de aprendizaje automático

Data Scientist es el trabajo más sexy del siglo XXI y Machine Learning es sin duda una de sus áreas clave de especialización. Para ser un científico de datos, uno necesita poseer una comprensión profunda de todos estos algoritmos y también varias otras técnicas nuevas como el aprendizaje profundo.

Artículos recomendados

Esta ha sido una guía de algoritmos de aprendizaje automático. Aquí hemos discutido el concepto, las categorías, los problemas y los diferentes algoritmos del lenguaje de máquina. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. Técnicas de aprendizaje automático
  2. ¿Qué es el aprendizaje profundo?
  3. Data Scientist vs Machine Learning
  4. Aprendizaje supervisado vs aprendizaje no supervisado
  5. Aprendizaje automático de hiperparámetros
  6. ¿Qué es el aprendizaje por refuerzo?
  7. Técnicas más utilizadas de aprendizaje conjunto
  8. Guía completa de ejemplos de algoritmo de C ++
  9. Guía de etapas del ciclo de vida del aprendizaje automático

Categoría: