3.6 Simulations
3.6.1 Prediction with cross-validation
Podemos agrupar los algoritmos de machine learning en una taxonomía en fun- ción de sus salidas. Estos son los distintos tipos que existen:
2.1.4.1. Reducción dimensional
Este algoritmo es un proceso capaz de reducir [19] la cantidad de variables aleatorias y obtener unas variables características, las cuales ocupan menos espacio y esto ahorra muchos costes computacionales. El algoritmo puede seleccionar o extraer unas características en concreto.
En la selección de características (atributos), se buscan subconjuntos de las variables que teníamos en el origen. En el nuevo espacio más reducido es más fácil aplicar la regresión o la clasificación como métodos de análisis.
8 Capítulo 2. Estado del arte En la extracción de características se reduce la dimensión del espacio por medio de la transformación de los datos. El método más popular de transformación de datos es el Análisis de Componentes Principales (PCA), siendo esta una técnica lineal. Por otro lado, también existen métodos no lineales.
2.1.4.2. Ensemble Learning
Los algoritmos de conjunto se utilizan para combinar varios métodos de ML a la vez, obteniendo rendimientos en la predicción del sistema mucho mayores que los que se obtendrían con los mismos métodos por separado. Además, en conjunto estos métodos tienen una flexibilidad superior a la hora de afrontar diferentes tipos de problemas.
Debido a la dificultad de encontrar hipótesis óptimas en algunos problemas, los métodos de conjunto combinan múltiples hipótesis para dar como resultado una mejor. Este cálculo de múltiples hipótesis conlleva muchísimos más cálculos, lo que se traduce en un coste computacional mayor, por lo que, el aprendizaje conjunto solo se suele usar combinando algoritmo rápidos como el árbol de decisión.
2.1.4.3. MetaAprendizaje
Este algoritmo se encarga de aplicar métodos de machine learning a metadatos que describen otros algoritmos de machine learning. La idea principal es mejorar el rendimiento de los algoritmos, aumentar la flexibilidad para resolver problemas de los propios algoritmos o aprender de ellos, es decir, aprende a aprender. Utilizando diferentes tipos de metadatos podemos utilizar diferentes tipos de algoritmos para resolver el problema y ver cual se ajusta más a la solución objetivo.
A menudo, la efectividad de un algoritmo y el problema del aprendizaje desde una base de datos tiene una relación de difícil comprensión. Esto dificulta la posi- bilidad de poder utilizar distintas técnicas para un mismo problema y conocer el porqué unas funcionan mejor que otras. Por lo tanto, la flexibilidad a la hora de utilizar un método u otro es importante, ya que, cada uno trabaja bien con unos parámetros en particular, y el problema ha de coincidir con ellos o no se obtendrán buenos resultados.
2.1.4.4. Aprendizaje supervisado
El aprendizaje supervisado es la rama del ML encargada de calcular una pre- dicción de salida tras aprender a través de una función de los datos que se le han aportado. Estos datos suelen ser vectores que contienen la información de entrada y su salida correspondiente, para con ellos poder entrenar a la red produciendo una función, la cual más tarde se usará para poder hacer predicciones ante entradas nunca vistas por la red.
2.1. Procesamiento del Lenguaje Natural (NLP) 9 El algoritmo entrena una función que representa la relación entre las entradas aportadas y las salidas esperadas. Un ejemplo muy básico es el que trata de predecir el precio de un inmueble, tras haber entrenado la red con miles de casos reales, donde se le aporta a la red los datos de entrada y las salidas reales a esos datos, para entrenarla y aprenda a hacer predecir el precio de salida según unos datos de entrada nunca vistos por la red en el entrenamiento.
Existen diferentes algoritmos de aprendizaje supervisado, cada uno destacable en un tipo de problema, no hay ninguno que sea bueno en todos los tipos de problemas. Los algoritmos de aprendizaje más utilizados son:
Máquinas de soporte vectorial. Regresión lineal.
Regresión logística. Naive Bayes.
Análisis discriminante lineal. Árboles de decisión.
k-vecinos más próximos.
Redes neuronales (perceptrón multicapa).
2.1.4.5. Aprendizaje no supervisado
El aprendizaje no supervisado es la rama del ML encargada de producir una función que clasifique o categorice la estructura no visible de un conjunto de ejemplos no etiquetados aportados al sistema. Estos datos al no poder ser etiquetados, se desconoce la información de sus salidas, la propia red deberá encontrar los patrones a través de la función de la red neuronal para poder etiquetar y estructurar las nuevas entradas. Al no disponer de las salidas reales correspondientes a las entradas respectivas, no se puede medir o evaluar la precisión de la estructura producida por el algoritmo de la red.
El aprendizaje no supervisado está basado en el principio de la redes neuronales naturales de Donald Hebb en su libro The Organization of Behavior3, donde esta- blece que las neuronas que se activan a la vez están conectadas entre sí. La hipótesis de Hebbian Learning ayuda a la función a aprender como las neuronas, teniendo en cuanta el tiempo que tardan las neuronas naturales en aprender u olvidar. Algunos ejemplos prácticos del aprendizaje no supervisado son la agrupación de spam en el correo electrónico o de usuarios en redes sociales. Los enfoques para el aprendizaje
10 Capítulo 2. Estado del arte no supervisado incluyen:
Clustering.
Detección de anomalías. Redes neuronales.
Enfoques para el aprendizaje de modelos variables latentes.
2.1.4.6. Aprendizaje semisupervisado
El aprendizaje semisupervisado es la rama del ML que combina los dos últimos algoritmos explicados, el supervisado y el no supervisado para obtener una mejora importante en la precisión del aprendizaje. Este tipo de algoritmo hace uso de datos etiquetados y no etiquetados. Normalmente se alimenta la red con una pequeña cantidad de datos etiquetados y una basta cantidad de datos no etiquetados.
Este método es útil en situaciones donde la cantidad de datos es enorme y un etiquetado completo requiere una cantidad de tiempo ingente por parte del factor humano, ya que los datos etiquetados han de realizarse a mano. Con este algoritmo solo se requiere de la etiquetación de unos pocos datos de entrada y el resto de datos pueden continuar sin etiqueta, el resultado será muchísimo mayor que si se usará un algoritmo no supervisado con todos los datos sin etiquetar o un algoritmo supervisado descartando todos los datos sin etiquetar.
2.1.4.7. Aprendizaje por refuerzo
El aprendizaje por refuerzo es la rama del ML se encarga de aprender observando el mundo que le rodea. Los datos de entrada son la retroalimentación que obtiene a sus acciones y trata de maximizar una recompensa acumulativa. El algoritmo se desenvuelve en un entorno desconocido y nadie le enseña a que acciones tomar, debe probar todas las acciones posibles y averiguar cuáles le dan la mayor recompensa.
Este tipo de algoritmos no siguen un modelo matemático, se basan en la decisión. Se tiene que elegir constantemente que datos de salida elegir, intentando maximizar el rendimiento entre los datos ya conocidos y los que quedan por conocer, ya que, los nuevos datos solamente realimentan los ya conocidos.