Aprendizaje Automático Andrea Mesa 21 de mayo de 2010
Aprendizaje automático Otras denominaciones: machine learning, statistical learning, data mining, inteligencia artificial. Las técnicas de Aprendizaje Automático pueden utilizarse cuando se quiere modelar un fenómeno en cualquier área de la ciencia.
Problemas frecuentes en modelización interacciones complejas entre las variables de interés datos faltantes observaciones dependientes tamaño de las muestras y número de variables
Ventajas del Aprendizaje Automático predicciones cuantitativas eficientes comprensión cualitativa del fenómeno a modelar y eventualmente su causalidad dependiendo de los objetivos que se planteen se priorizará la exactitud de la predicción o la comprensión de los patrones subyacentes se puede trabajar con comodidad, aun cuando el número de datos y/o de variables sea grande
Aprendizaje automático Se divide en: Aprendizaje supervisado: regresión, clasificación Aprendizaje no supervisado: clustering
Aprendizaje supervisado Objetivo aprender a predecir el output Y dado el input X, mediante la construcción de una función f que llamamos predictor.
Variables X: variable independiente, explicativa, de entrada, input Y: variable dependiente, de salida, output reales o multidimensionales continuas, categóricas, binarias, etc. si Y es continua: problema de regresión si Y es discreta o categórica: problema de clasificación datos: (X 1,Y 1 ),.(X n,y n ) donde cada X i puede ser un vector de observaciones
Esquema de ML Datos Muestra de entrenamiento (X 1,Y 1 ),.(Xn,Yn) Elección del algoritmo Muestra de validación Datos Frescos Modificación o no del los parámetros del algoritmo Salida Y
Ejemplo 1 Contaminación ambiental Variables de entrada X: vector de variables ambientales en el día n (temperatura, nivel de ozono, presión atmosférica, vientos, etc.) Variable de salida Y: nivel de contaminación ambiental en el día n+1 El ejemplo corresponde a un problema de regresión, pero si se considera la variable de salida Y dividida en categorías el problema es de clasificación.
Ejemplo 2 Selección de hábitat de Antilorca americana Variables de entrada X : abundancia de alimento, características del terreno (altitud, pendiente), distancia al agua, etc. Variable de salida Y: presencia/ausencia de Antilorca americana El output Y es una variable binaria, esto es toma sólo los valores 0,1, por lo que el ejemplo es de clasificación.
Predictor Buscamos una función (predictor) que minimice el riesgo de predecir mal, para ello se define una función de pérdida, L(X, f(x), Y), y se busca f**, entre todas las funciones de una cierta clase C, que haga mínimo el valor esperado de L (que llamamos riesgo). Riesgo:
Predictor En la práctica este predictor se basa en la muestra de entrenamiento y se construye como aquella función que minimiza el riesgo empírico.
Performance del predictor Para evitar el sobreajuste (overfitting), se evalúa la performance del predictor con una nueva muestra llamada muestra de evaluación o de testeo, independiente de la muestra de entrenamiento. Otras formas de evaluar el predictor: validación cruzada, bootstrap.
Errores Llamamos f* al mejor entre todos los predictores posibles f** al mejor de los predictores posibles en la clase de funciones C f al predictor que usamos en la práctica (esto es: el que minimiza el riesgo empírico)
Errores Error de modelización: f* - f** depende de la elección de la clase C, si consideramos C como la familia de todas las funciones posibles, tendremos overfitting. Error de estimación: f** - f es un error estadístico, si el tamaño n de la muestra es grande, bajo ciertas hipótesis sobre la clase C, se cumple que f converge a f** Se debe lograr un compromiso entre ambos errores, de forma tal que el error total sea el menor posible
Errores
Teorema fundamental del Learning El Teorema fundamental del Learning establece que, bajo ciertas condiciones sobre la clase de funciones C, f converge a f**. Estas condiciones están relacionadas con la dimensión de Vapnik-Chervonenkis (VC) de C. La dimensión VC mide cuan grande es una clase infinita de funciones, así si C no es demasiado grande, esto es la dimensión VC es finita, se está en las hipótesis del Teorema fundamental del Learning.
Problemas clásicos de la estadística Regresión Reconocimiento de patrones Estimación de densidades
Regresión Si la función de pérdida es la cuadrática La función solución es la función de regresión Así el problema de regresión puede verse como un problema de minimización del riesgo.
Reconocimiento de patrones Si la función de pérdida es la indicatriz Minimizar la probabilidad de clasificar mal equivale a minimizar el riesgo.
Estimación de densidades Si la función de pérdida es Usando varios resultados y haciendo algunas operaciones, el problema de estimar la densidad g puede verse como un problema de minimización del riesgo.
Algunos métodos de aprendizaje automático Generalized Additive Models, GAM Support Vector Machine, SVM Classification and Regression Trees, CART
GAM Generalized additive models Hastie & Tibshirani, 1986
GAM Los modelos aditivos generalizados, GAM, son una generalización de los modelos lineales que brindan además, una excelente forma de interpretar los datos de manera gráfica.
Modelos lineales Y =β 0 + β 1 X 1 + β 2 X 2 + + β d X d + donde N(0, σ 2 ). Si llamamos µ =E(Y) tenemos que µ =β 0 + β 1 X 1 + β 2 X 2 + + β d X d Las componentes del vector Y son variables independientes con distribución normal con E(Y) = μ y varianza constante σ 2. Las variables X 0,.., X d originan un predictor lineal η dado por η = β 0 + β 1 X 1 +...+β d X d, o en forma matricial, η = Aβ.
Modelos lineales generalizados g(µ) =β 0 + β 1 X 1 + β 2 X 2 + + β d X d O en forma matricial Las componentes del vector Y son variables independientes con distribución proveniente de una familia exponencial. El predictor lineal y la variable dependiente están relacionados por una función de enlace o link g, siendo g monótona y diferenciable.
Modelos aditivos generalizados g(µ) =β 0 + f 1 (X 1 ) + f 2 (X 2 ) + + f d (X d ) Las funciones f i (X i ) son funciones no paramétricas definidas a partir de los datos denominadas smoothers. Las componentes del vector Y son variables independientes con distribución proveniente de una familia exponencial. El predictor aditivo y la variable dependiente están relacionados por una función de enlace o link g, siendo g monótona y diferenciable.
LM GLM GAM Parámetros β 0, β 1,,β d β 0, β 1,,β d Estimación Mínimos cuadrados Máxima verosimilitud Se estima f(x) mediante el algoritmo Backfitting Bondad de ajuste R 2 Desvianza Desvianza Comparación de modelos AIC F AIC Desvianza AIC Desvianza Supuestos Residuos normales y homocedásticos Y, familia exponencial Y, familia exponencial
Ejemplo Cifosis Objetivo: identificación de factores de riesgo de Cifosis (importancia de la edad al momento de la cirugía, efecto del número y ubicación de las vértebras a tratar) Datos: 83 pacientes Variable dependiente: kyphosis (ausencia=0, presencia=1) Variables independientes: edad (Age), número de vértebras (Number), vértebra inicial (Start) Modelo: log(p/1-p)=s(age)+s(number)+s(start) donde p es la probabilidad de presencia de kyphosis.
Ejemplo Cifosis
SVM Support Vector Machine Vapnik, 1995
SVM En el contexto de clasificación SVM es una metodología que consiste en encontrar una curva que separe bien los datos.
SVM Si los datos son linealmente separables:
SVM Si los datos no son linealmente separables: se proyectan los datos en un espacio de dimensión mayor ( feature space ) donde los datos son linealmente separables.
Ejemplo Iris Objetivo: Predecir la especie de la flor de Iris. Datos: 150 flores Variable dependiente: especie (setosa, virginica, versicolor) Variables independientes: largo y ancho del sépalo, largo y ancho del pétalo
Ejemplo Clasificación de la flor de Iris en setosa, virginica y versicolor.
CART Classification and Regression Trees Breiman, 1984
CART Árboles de regresión: para predecir variables continuas Árboles de clasificación: para predecir variables categóricas
CART muestra de entrenamiento nodo raíz separación binara de los datos mediante condiciones sobre las variables nodos internos nodos terminales (hojas)
Etapas de construcción de un árbol Etapa 1 Separación binaria de los datos de acuerdo a una regla Etapa 2 Decisión del tamaño del árbol Etapa 3 Asignación de una clase o de un valor a los nodos terminales
Etapa 1 Separación binaria de los datos de acuerdo a una regla La división de los nodos depende de una única condición sobre una o más variables La mejor partición es aquella que incrementa la pureza en los nodos hijos Medidas de impureza: error de clasificación, entropía, índice de gini error cuadrático medio
Etapa 2 Decisión del tamaño del árbol Criterio de parada Se fija un umbral de parada y se detiene el proceso de división cuando se llega a que la impureza en los nodos es inferior al umbral. Criterio de poda Criterio más utilizado. Evita que el crecimiento del árbol se detenga antes de tiempo.
Etapa 3 Asignación de una clase o de un valor a los nodos terminales Clasificación Se elige la clase que esté más representada en cada nodo terminal (voto mayoritario simple) Si el máximo se alcanza para dos o más clases, se realiza un sorteo y se asigna arbitrariamente. Regresión Se asigna el promedio de los valores de la variable dependiente para los casos que están en el nodo terminal.
Ejemplo: Contaminación ambiental Problema de Regresión: Variables de Entrada (X): variables meteorológicas Variable de Salida (Y): concentración de ozono
Ejemplo: Contaminación ambiental
Performance del modelo Bagging, Boosting Validación cruzada
Bagging, Boosting Breiman, 1994 Freund & Schapire, 1996
Bagging, Boosting Tanto en Bagging y Boosting la idea consiste en combinar varios predictores para construir un predictor más potente. Son métodos que permiten estabilizar algoritmos inestables de regresión y/o clasificación, como por ejemplo árboles de decisión.
Los árboles son algoritmos inestables
Bagging Bootstrap AGGregatING El clasificador bagging combina los outputs de varios clasificadores construidos utilizando remuestras (muestras bootstrap) del conjunto de entrenamiento. La clase que recibe más votos entre los clasificadores es la clase asignada por el clasificador bagging.
Qué es una remuestra? Se le asigna a cada observación el mismo peso (1/n) X 1, X 2,..,X n ~ F Se muestrea de forma aleatoria y con reemplazo obteniendo B nuevas muestras: cada una de las cuales tiene distribución asintótica próxima a la empírica de la muestra original.
Qué probabilidad tiene cada observación de salir en la remuestra? Para valores de n grandes esta cantidad se aproxima a: Es decir cada observación tiene un 63% de salir sorteada en la remuestra.
Ejemplo de muestras bootstrap s=randsample(1:10,10,true) s = 10 8 2 5 10 10 5 9 1 4 s = 9 1 2 3 2 7 3 2 1 8 s = 5 10 5 5 9 6 3 7 9 1 s = 7 4 9 6 8 5 4 2 2 7 s = 4 6 2 7 4 9 9 6 5 9
Algoritmo Bagging Paso1: conjunto de entrenamiento Paso2: elección del estimador Paso3: construcción de las remuestras Paso4: para cada remuestra se calcula el estimador Paso5: construcción del estimador Bagging, por ejemplo si el modelo es de regresión
Boosting Boosting es un proceso iterativo que combina los output de varios clasificadores débiles para obtener un clasificador más eficiente. Los clasificadores que muestran mejor desempeño en la fase de entrenamiento tienen mayor peso en la votación final. Ejemplo de algoritmo de Boosting: Adaboost.M1 (Freund & Schapire, 1997)
Adaboost.M1 Algoritmo de boosting más conocido para bases de datos con dos clases. Bajo desempeño en problemas de varias clases. Al inicio se considera una distribución uniforme para los pesos de las observaciones, en las sucesivas iteraciones esta distribución cambia, asignando mayor peso a las observaciones mal clasificadas en el paso anterior (remuestras ponderadas) Los clasificadores que muestran mejor performance en el entrenamiento tienen mayor peso en la votación final.
Ejemplo de remuestras ponderadas vector de pesos w=[.3.3.05.05.05.05.05.05.05.05] s=randsample(1:10, 10, true, w) s= 1 2 7 1 1 1 1 3 1 1 s= 1 5 2 9 2 2 7 2 1 4 s= 7 1 4 2 7 2 5 2 2 1 s= 1 4 2 2 1 4 2 8 8 2 s= 1 1 8 1 1 4 1 2 1 10
Adaboost.M1
Bagging vs Adaboost.M1 Bagging 3 iteraciones Adaboost.M1 3 iteraciones Árbol 1 Clase 1 Árbol 2 Clase 1 Árbol 3 Clase 2 Árbol 1 Clase 1 Score=0.6 Árbol 2 Clase 1 Score=0.8 Árbol 3 Clase 2 Score=1.7 Votos clase 1: 2 Votos clase 2: 1 Predicción Bagging: clase 1 Votos clase 1: 2 Votos ponderados clase 1: 1.4 Votos clase 2: 1 Votos ponderados clase 2 : 1.7 Predicción Adaboost.M1: clase 2
Validación cruzada 1. división del conjunto de entrenamiento en k partes iguales (folds) 2. entrenamiento del modelo con k-1 partes 3. evaluación del modelo con la parte que no fue utilizada en el paso anterior 4. se repite el proceso para cada una de las k partes 5. el error se calcula como el promedio de los errores calculados en cada paso
Validación cruzada En este ejemplo 8-fold se entrena el modelo con los datos amarillos y se evalúa con los de color rojo. En cada paso se calcula el error y el error total se define como el promedio de los errores cometidos en cada paso.
Bibliografía Breiman, L. Bagging predictors. Machine Learning, 24, 123-140 (1996) Defeo, O. & Gomez, J. (2005) Morphodynamics and habitat safety in sandy beaches: life history adaptations ni a supralittoral amphipod. Mar Ecol Prog Ser, 293: 143-153 Devroye, L. Györfi, L. Lugosi, G. 1996. A Probability Theory of Pattern Recognition. Springer. Hastie, T.J; Tibshirani, R.J. 1990. Generalized Additive Models. Chapman & Hall. Hastie, T.J, Tibshirani, R.J, Friedman, J. 2001. Elements of Statistical Learning: data mining, inference and prediction. Springer & Verlag. Vapnik, V. 1998, Statistical Learning Theory. Wiley. Wood, S. N. 2006. Generalized Additive Models, An Introduction with R. Chapman & Hall.