Blog técnico

Algoritmos de Machine Learning y cómo seleccionar el mejor(1/3)

Tipos de Algoritmos Machine Learning

 A lo largo de las próximas semanas, desde LIS-Solutions publicaremos una serie de post relacionados con diferentes algoritmos utilizados en Machine Learning.

Tipos de Algoritmos Machine Learning

 La gran mayoría de algoritmos de Machine Learning, se engloban en tres grupos principales:

  1. Supervised Learning o aprendizaje supervisado: este tipo de algoritmos es útil cuando se tiene una propiedad conocida para un conjunto de elementos, pero, no se conoce esa misma propiedad en un elemento concreto. Estos algoritmos nos ayudarán a predecir cuál es esa propiedad que se desconoce.
  2. Unsupervised Learning o aprendizaje no supervisado: este tipo de algoritmos es útil para descubrir relaciones implícitas en un conjunto de datos pero que no son conocidas. Es decir, permite considerar que varios elementos pertenecen a un mismo grupo o a diferentes grupos gracias al estudio de sus características.
  3. Reinforcement Learning o aprendizaje por refuerzo: este tipo de algoritmos es una mezcla entre los dos tipos anteriores. Dado que es un post de iniciación no se va a profundizar en este tipo de algoritmos dado su dificultad.

A continuación, repasamos algunos de los algoritmos de aprendizaje supervisado/no supervisado.

Algoritmos de aprendizaje supervisado

 El primero de los algoritmos que nos encontramos y más intuitivo son los árboles de decisión

En este post, ya explicábamos la importancia y el funcionamiento básico de este tipo de algoritmos. Los árboles de decisión buscan básicamente clasificar elementos a partir de una serie de variables.
Dentro de este grupo de algoritmos encontramos algunos como:

  • CART (Classification And Regression Tree)
  • ID3 (Iterative Dichotomiser 3)
  • CHAID (CHi-squared Automatic Interaction Detector)

decision tree

Otro de los algoritmos más importantes del aprendizaje supervisado es el algoritmo de clasificación de Naive Bayes.
Este algoritmo, a partir de unos elementos ya conocidos, es capaz de clasificar un nuevo elemento sin saber a qué grupo pertenece.
Este algoritmo suele ser utilizado en los siguientes casos:

  • Coches autónomos: por su capacidad de determinar la velocidad que debe llevar el vehículo partiendo por ejemplo: del estado en que se encuentra la calzada o la pendiente de la misma.
  • Localizar correos considerados como Spam tras analizar las palabras que aparecen en el correo.
  • Clasificación de artículos por el tema del que hablan.

naive bayesEl tercero de los algoritmos que se encuentra dentro de este grupo de algoritmos es la regresión ordinaria por mínimos cuadrados.

Este algoritmo trata de estimar los valores que no se conocen. Para ello se utiliza el método matemático conocido como regresión lineal por mínimos cuadrados. Trata de ajustar una línea lo mejor posible a un grupo de elementos y a partir de ahí interpretar el posible resultado que tiene un elemento con una propiedad a determinar.

 regresion ordinaria

Para terminar este grupo de algoritmos, hay que mencionar que hay otros algoritmos de este tipo como pueden ser: regresión logística, máquinas de vectores de soporte y métodos de conjunto.

Algoritmos de aprendizaje no supervisado:

El primero de los algoritmos que nos encontramos en este grupo, son los algoritmos de agrupamiento. LIS-Solutions ya realizó un estudio del Análisis de componentes principales junto a un algoritmo de agrupamiento: K-means.
Estos algoritmos se utilizan para agrupar de forma conjunta los elementos que más parecido tengan entre sí. Es decir, son algoritmos que agrupan los elementos basándose en alguna característica concreta.
En este grupo encontramos diferentes tipos de algoritmos, como:

  • Algoritmos basados en centroides (Centroid-based algorithms): estos algoritmos si representamos los elementos en un gráfico de puntos, calculan el punto medio de ellos que minimiza las distancias. K-means es un algortimo de este tipo.
  • Algoritmos basados en densidad (Density-based algorithms): estos algoritmos buscan agrupar los puntos por cercanía a los puntos de alrededor. Un algoritmo que está comprendido en esta familia sería K-NN (k-nearest neighbors) o K vecinos más próximos.

Como información adicional, mencionar la existencia de algoritmos basados en conectividad (Connectivity-based algorithms), probabilísticos (Probabilistic), reductores de dimensionalidad (Dimensionality Reduction) y las redes neuronales (Neural networks) que también entrarían dentro de este grupo.

non supervised

Otro de los algoritmos que encaja en este grupo de aprendizaje no supervisado es el algoritmo PCA (Principal Component Analisys) o análisis de componentes principales. Dicho algoritmo, tratado en este post , realiza una reducción desde unas variables iniciales al mínimo número posible de ellas. Lo que se consigue es representar el máximo posible de información en el mínimo de variables posibles.

pca

Dentro del aprendizaje no supervisado encontramos algoritmos como el algoritmo de “Valor singular de descomposición” (Singular Value Decomposition) o análisis de componentes independientes (independent component analisys: ICA).

non supervised 2 

¿Cómo elegir el mejor algoritmo para nuestro proyecto?

Lo primero y más importante para elegir con éxito el algoritmo que más se adapta a nuestras necesidades es:

  • Determinar qué queremos conseguir
  • Ver qué datos disponemos

Una vez que se tienen claros estos dos puntos y conociendo los algoritmos de machine learning existentes, podremos escoger el que mejor se adapte a nuestras necesidades.
Por ejemplo, si queremos saber quién ha escrito un texto, nuestro algoritmo sería Naive Bayes, sin embargo, si queremos saber dónde poner geográficamente dos hospitales en un territorio y queremos que estén en los puntos más cercanos posibles a los mayores núcleos de población, nuestro algoritmo es K-means.

Si quieres conocer más sobre analítica avanzada descubre nuestro apartado de analítica avanzada de datos.

En la próxima entrada…

En el caso que trataremos en el próximo post, realizaremos una predicción de consumos. Partiendo de consumos pasados, trataremos de predecir los futuros y ver cómo se ajusta nuestra predicción a la realidad. Os invitamos a visitar nuestro blog durante la espera.

COMPARTE ESTE POST