Casi dos meses después del último post, por fin tengo un poco de respiro para avanzar en el tema de esta “saga”: Machine Learning. En la última entrada había prometido que entraríamos “manos a la obra” en este post, pero luego de revisarlos me di cuenta de un pequeño y casi “insignificante” detalle. ¡NO HE EXPLICADO LA TERMINOLOGÍA! Además, considero conveniente listar algunos temas que es importante repasar antes de entrar a programar algoritmos.
A continuación intentaré explicar de manera breve y sencilla qué significa cada uno de estos términos, pero mi sugerencia es que profundicen, indaguen y naufraguen mucho más allá con cada uno de ellos.

  • Classification: (Clasificación) Se relaciona a la acción de construir modelos que separan datos en diferentes clases a través de etiquetas que ya han sido agregadas. Se construyen a partir de los sets de datos de entrenamiento (de donde aprende la máquina) y luego se usa para probar su eficiencia usando los sets de pruebas para predecir el dato que se busca.
  • Regression: (Regresión) Es una técnica estadística que permite resumir y estudiar las relaciones entre dos continuos (que puede ser cualquier dato).
  • Clustering: (Agrupación) Se usa para sets de datos que no tienen etiquetas. La agrupación se hace a través de la maximización de la similaridad dentro de la misma clase y la minimización de la similaridad entre clases, de modo que los más parecidos entre sí quedan agrupados y así mismo, alejados de aquellos que no se parecen.
  • Association: (Asociación) La asociación es la probabilidad de que un objeto esté la mayor parte de las veces asociado a otro objeto cuando es analizado. Un ejemplo clásico es que cuando se compra cereal para el desayuno, por lo general las personas compran leche y huevos.
  • Decision trees: (Árboles de decisión) El objetivo de tener estos árboles es dividir los sets de datos en atributos donde se puedan crear los nodos hijos lo más puros posibles de modo que se puedan clasificar todas las instancias. Esta pureza se mide bajo el concepto de información, el cuál relaciona cuánto se necesita saber de una instancia no vista para ser clasificada correctamente.
  • Support vector machines: (Máquinas de clasificación de vectores) Sirve para clasificar información lineal y no lineal al transformar el set de entrenamiento a una dimensión mayor que es evaluada para la separación óptima de bordes entre clases.
  • Neural networks: (Redes neuronales) Son algoritmos inspirados en el cerebro humano (en teoría) y se compone de neuronas interconectadas que comparten información y que tienen un “peso” asociado que se activa de acuerdo a la “experiencia”.
  • Deep learning: (Aprendizaje profundo) Es el proceso de aplicar tecnologías profundas de redes neuronales (arquitecturas con múltiples capas de neuronas) para resolver problemas.
  • Reinforcement learning: (Aprendizaje reforzado) Se enfoca en la necesidad de aprender en el ensayo y error buscando la optimización de las metas. Los videojuegos son un ejemplo.
  • Cross-validation (k-fold): (Validación cruzada (k-veces)) Es un método determinístico de modelado que consiste en dividir un set de datos en k segmentos, y se asigna un bloque para pruebas y los otros k-1 para entrenamiento. Luego el proceso se repite K veces para cada bloque y se promedian los resultados para obtener el modelo.

Para finalizar, les sugiero que revisen las operaciones de matrices (álgebra lineal) y un poco de las bases de estadística.

Conoce a mi amigo sigma.