Técnicas de Aprendizaje automático y Azure Machine Learning: Modo Avanzado I


En esta entrada se va a tratar en mayor profundidad la entrada Técnicas de Aprendizaje automático y Azure Machine Learning. Para los diferentes métodos se indican los elementos claves a considerar para su buen uso. Además también se incorporan los comandos de R equivalentes.

Consideraciones Generales

Al aplicar una técnicas de Machine Learning; hemos de tener presente dos métricas:

  • Bias o sesgo: Nos mide la falta de precisión; que lo que esperamos coincida con lo pronosticado.
  • Variancia: Es lo que se separan los datos pronosticados.

En función del valor de estas métricas tenemos los siguientes escenarios:

  • Perfect: Lo ideal es tener un sesgo y una variancia bajos.
    LowBiasLowVariance
    Pefect2
  • Overfitting: Tenemos ruido en los datos del modelo. Bias bajo pero variancia elevada. Predecimos con muchos parámetros y con pocos datos; nos ajustamos al ejemplo concreto de los datos de entreno.
    LowBiasHighVariance
    Overfitting2
  • Underfitting: Perdemos el foco en la obtención de los patrones que era nuestro objetivo. Sesgo alto pero variancia baja. Predecimos con pocos parámetros, no hay flexibilidad.
    HighBiasLowVariance
    Undeffing2
  • Fail: Nuestro patrón no funciona. 😦
    HighBiasHighVariance

Modulo de Regresión

Regresión Lineal

En Azure Machine Learning, el módulo Linear Regression o en R el comando lm (ejemplo de uso). Buena descripción del proceso de Regresión Lineal.

  • La relación entre la variable a predecir y la variable predictora utilizada debe ser lineal. Modificar la variable predictora; por ejemplo escalar si es logarítmica.
  • Al analizar si la variables que usamos en la predicción están relacionadas entre ellas (ver su correlación ;-)). Si es el caso eliminar una o promediarlas, ya que invalida la obtención del modelo.
  • Si tenemos infinidad de muestras y usamos el algoritmo de Gradient Descendent; hay un algoritmo mejorado más rápido Stochastic Gradient Descent.

Regresión Local (LOESS/LOWESS)

Es costoso ya que se ha de calcular la técnica para cada predicción.

Arboles de Decisión

En Azure Machine Learning, el módulo Decision Forest Regression o en R el comando rpart en el paquete rpart.

Redes Neuronales

En Azure Machine Learning, el módulo Neural Network Regression o en R el comando neuralnet en el paquete neuralnet.

  • Las redes neuronales trabajan mejor en un rango (0,1). Es recomendable estandarizar las variables. \frac{x-min(x)}{max(x) - min(x)}
    array <- c(1,2,3,3,4,4,4,5,6,8,9)
    array2 <- c(2,34,43,23,34,12,12,13,3,45,45)
    normalize <- function(x) { return ((x - min(x)) / (max(x) - min(x))) }
    arrays <- data.frame(array,array2)
    lapply(arrays, normalize)
    
  • Un alto numero de neuronas puede provocar Overfitting y un bajo numero Underfitting. Iterar hasta encontrar el resultado optimo. Por defecto una sola capa oculta con este numero de nodos \sqrt{n*m} donde n es el numero de variables y m es el número de resultados.
  • Iterar para encontrar el nivel de Learning rate. A valores más bajos mayor tiempo de ejecución.

Módulos de clasificación

Arboles de Decisión

En Azure Machine Learning, el módulo Two-Class Decision Forest o en R el comando cforest en el paquete party.

  • Son muy sensibles al Overfitting o al Underfitting. Es clave determinar bien el numero de arboles y nodos a generar.

Bayes Point Machine

En Azure Machine Learning, el módulo Two-Class Bayes Point Machine o en R el comando naiveBayes en el paquete e1071.

  • Cuando una variable tiene toda su distribución en una sola de las etiquetas a clasificar. Ocurre que la probabilidad es 0 en la otra etiqueta; lo cual condiciona y nos invalida el resto de variables. Añadir más datos para que tenga almenos alguna ocurrencia en la otra etiqueta. También se puede usar la técnica con estimación de Laplace; que incorpora corrige automáticamente datos para solventar el problema.
    naiveBayes(data,etiquetas, laplace = 1)
    
  • Las variables numéricas agruparlas en categorías. Azure Machine Learnig lo hace automáticamente. 😉

Support Vector Machine

Es la técnica más avanzada; y los expertos sugieren que ofrece mejores resultados.
En Azure Machine Learning, el módulo Two-Class Support Vector Machine o en R el comando svm en el paquete e1071.

Módulos de Agrupación

K-Means Clustering

En Azure Machine Learning, el módulo K-Means Clustering o en R el comando kmeans.

  • Reescalar los datos si las medidas no son lineales; por ejemplo en el caso de medidas con una escala exponencial.
  • Es recomendable transformarlos a un rango (0,1) para que los rangos de medidas se estandaricen. \frac{x-min(x)}{max(x) - min(x)}
    array <- c(1,2,3,3,4,4,4,5,6,8,9)
    normalize <- function(x) { return ((x - min(x)) / (max(x) - min(x))) }
    normalize(array)
    
  • Las variables categóricas; se subdividen en variables categóricas binarias (0 o 1). Por ejemplo, variable animal con 3 categorias en 3 variables Perro, Gato y Ratón.
  • En la clasificación de los datos en k grupos; la clave esta en escoger un valor de k bueno (el valor inicial por defecto suele \sqrt{n} donde n es el numero de muestras). Con una k demasiado pequeña, tendremos Overfitting y con una k demasiado grande tendremos Underfitting.

Módulos de Recomendación

En Azure Machine Learning, se deben utilizar los módulos Train Matchbox Recommender y Score Matchbox Recommender. En R el comando apriori en el paquete arules.

Anuncios
Esta entrada fue publicada en Azure Machine Learning, Cortana Analytics, Machine Learning. Guarda el enlace permanente.

Una respuesta a Técnicas de Aprendizaje automático y Azure Machine Learning: Modo Avanzado I

  1. Pingback: Técnicas de Aprendizaje automático y Azure Machine Learning: Modo Avanzado II | Pensando bajo la lluvia

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s