3. Tema 3: Aprendizaje Automático Supervisado
Overfitting o
sobrejuste
Introducción
Clasificación y
Regresión
Ejemplos en
Python
Algoritmos de
Machine
Learning
Supervisado
Conceptos principales
4. Aprendizaje Automático Supervisado
4
• El aprendizaje automático Supervisado es uno de los
más utilizados y exitosos entre los distintos tipos de
machine learning. Incluye un conjunto variado de
algoritmos, como veremos durante el tema. En el
Tema 2 anterior hemos visto un caso práctico
precisamente de este tipo
• En el aprendizaje Supervisado queremos realizar una
predicción del resultado a partir de unos datos de
entrada o input, basándonos en ejemplos de pares
entrada-resultado ya conocidos
• Construimos un modelo en base a estos datos ya
etiquetados, con un conjunto de ejemplos del
resultado correspondiente a una variable o input de
entrada, que nos sirven para entrenar el algoritmo.
Nuestro objetivo es poder aplicar luego el modelo
para nuevos datos de entrada, de los cuales no se
conoce el resultado previamente
• Estos modelos requieren la participación humana
para ser entrenados, pero después permiten
automatizar y eficientar tareas
5. Clasificación vs Regresión
5
Clasificación Regresión
• Dependiendo del tipo de etiqueta, dentro del aprendizaje supervisado existen dos tipos de modelos:
• Los modelos de clasificación, que producen como salida una etiqueta discreta dentro de un conjunto finito de
etiquetas posibles. A su vez, los modelos de clasificación pueden ser binarios si tenemos que predecir entre dos
clases(enfermedad o no enfermedad, clasificación de correos como “spam” o no “spam”) o multiclase, cuando
se tiene que clasificar más de dos clases (clasificación de imágenes de animales, análisis de sentimientos, etc.)
• Los modelos de regresión, que producen como salida un valor numérico
6. Overfitting
6
• El modelo decimos que es capaz de generalizar si hace predicciones correctas con datos nuevos, a
partir de los datos de entrenamiento
• En el entrenamiento del algoritmo, construimos un modelo que realiza predicciones precisas sobre los
datos de entrenamiento. Si el modelo que construimos es muy complejo, puede ocurrir que sea muy
preciso con estos datos de entrenamiento, pero que luego no sea tan preciso con datos nuevos o los
datos de test. Veremos ejemplos de esto. Decimos en estos casos que tenemos un sobreajuste o
overfitting
7. Ejemplo: underfitting y overfitting
7
• Vamos a estudiar un ejemplo sencillo con casos de underfitting y de overfitting
• Consideramos un problema sencillo del tipo y=f(x) (dos variables, una independiente, y la otra la dependiente
(que queremos modelizar)
8. Ejemplo: underfitting y overfitting
8
• Construimos los
modelos de
aprendizaje
automático
polinómicos para el
ejemplo (Regresión
polinómica
utilizando
LinearRegression):
9. Ejemplo: underfitting y overfitting
9
• El modelo de algoritmo de aprendizaje está sobregeneralizado (con desajuste o underfitting) si no puede generalizar
correctamente ni los datos de entrenamiento ni nuevas observaciones. En el ejemplo, para el caso de grado=1, usamos
una hipótesis lineal simple, que no representa los datos de entrenamiento reales y tendrá un rendimiento muy bajo
• Si nuestro algoritmo recuerda cada observación que se le mostró entonces tendrá un bajo rendimiento con nuevas
observaciones que estén fuera del set de datos de entrenamiento. A esto se le llama sobreajuste (overfitting). Por
ejemplo, un modelo polinómico de trigésimo grado (grado=30) pasa por la mayoría de los puntos y tiene una buena
puntuación en el set de entrenamiento pero cualquier otro dato fuera de esto tendrá un mal rendimiento.
10. Ejemplo: Complejidad y Overfitting
10
• Vamos a investigar otro ejemplo sobre la relación entre la complejidad y el sobreajuste. Utilizaremos los datos
del Breast Cancer dataset
11. Ejemplo: Complejidad y Overfitting
11
• La base de datos Wisconsin Breast Cancer se encuentra en los datasets de la librería scikit-learn. Contiene registros
médicos de tumores de pecho con cáncer. Están estiquetados (machine learning supervisado) con las clases benigno o
maligno. Los algortimos construidos aprenden a predecir si un tumor es cancerígeno a partir de varias variables o
características del tumor
12. Ejemplo: Complejidad y Overfitting
12
• En este ejemplo utilizaremos el algoritmo supervisado de k-NN (los k vecinos más cercanos, o k-Nearest Neighbors)
Nuevo
elemento a
clasificar
13. Ejemplo: Complejidad y Overfitting
13
• Utilizamos el algoritmo supervisado de k-NN (los k
vecinos más cercanos, o k-Nearest Neighbors). En los
ejercicios de evaluación del Tema 4 vamos a realizar una
práctica similar con otro algoritmo, los árboles de
decisión
• El gráfico calculado muestra la precisión (en %), según
el número de vecinos k de los distintos modelos. A
mayor valor de k, más complejidad del algoritmo
(utilizamos más elementos para definir la predicción del
modelo)
• Observamos que el modelo es muy preciso para los
datos de train con k=1 (cada elemento del dataset de
entrenamiento es parte del modelo), aunque no sirve
para predecir con datos nuevos de test. Se produce
claramente un sobreajuste o overfitting
• En cambio, en el otro extremos, si k es elevado (modelo
más simple, menos vecindarios), el modelo se
comporta mal en datos de train y de set. En este caso
tenemos un underfitting
14. Algoritmos de ML Supervisado
14
• A continuación algunos de los principales algoritmos utilizados en aprendizaje automático supervisado
• Algoritmos de Regresión Lineal
• Algoritmos de Regresión Logística
• Algoritmos de Naïve Bayes
• Máquinas de Vectores Soporte
• Árboles de Decisión
• kNN (k-Nearest Neighbor)
• Bosques Aleatorios (Random Forest)
• Algoritmos de Potenciación del Gradiente (Gradient Boost)
• Redes Neuronales
• Veremos el detalle de funcionamiento e implementación de algunos de estos algoritmos durante el curso
15. Algoritmos de Regresión Lineal
15
• Los algoritmos de regresión lineal muestran o predicen la relación
entre dos variables o factores ajustando o construyendo como
modelo una línea recta continua a los datos. La línea suele calcularse
con la función de coste del error cuadrático. La regresión lineal es
uno de los tipos de análisis de regresión más populares
• Aunque no vamos a ver los detalles de la formulación matemática
(en el Tema 4 podéis encontrar todo el proceso para otra categoría
de algoritmo), la función de coste o optimización en este caso es la
fórmula del error cuadrático de la ecuación. Se resuelve
numéricamente con la técnica de descenso por gradiente (gradient
descent)
https://youtu.be/MFXKcEeT-M0
16. Algoritmos de Regresión Logística
16
• En muchas ocasiones el problema real consiste en predecir datos
categóricos para obtener respuestas a preguntas como:
ü ¿Es un perro o un gato?
ü ¿Este tumor es maligno o benigno?
ü ¿Este email es spam o no?
• O incluso:
ü ¿Qué número está en esta foto?
• Todas estas preguntas son específicas del problema de clasificación. Y el
algoritmo de clasificación más sencillo se llama regresión logística, el cual
es muy similar a la regresión lineal excepto que tiene una hipótesis
diferente
• Regresión Logística Binaria: la variable objetivo tiene solo dos resultados
posible, Llueve o NO Llueve, Sube o Baja.
• Regresión Logística Multinomial: la variable objetivo tiene tres o más
categorías nominales, como predecir el tipo de vino.
• Regresión Logística Ordinal: la variable objetivo tiene tres o más categorías
ordinales, como clasificar un restaurante o un producto del 1 al 5
https://youtu.be/NgXNOlrYRh0
17. Algoritmos de Regresión Logística
17
• La Regresión Logística lleva el nombre de la función utilizada en el núcleo del método, la función
logística es también llamada función Sigmoide. Esta función es una curva en forma de S que puede
tomar cualquier número de valor real y asignar a un valor entre 0 y 1
• Si la salida de la función Sigmoide es mayor que 0.5, podemos clasificar el resultado como 1 o SI, y si es
menor que 0.5 podemos clasificarlo como 0 o NO. Por su parte si el resultado es 0.75, podemos decir en
términos de probabilidad como, hay un 75% de probabilidades
19. Algoritmos de Naïve Bayes
19
• Los algoritmos de clasificación Naïve Bayes son similares a los
modelos lineales. Pero se centran en las estadísticas o
probabilidades de cada clase o categoría de etiqueta con cada
característica o variable independeiente por separado (supone
independencia entre las características)
• Asumir que el efecto de las características es independiente es una
simplificación (naïve), aunque facilita el cálculo para problemas
con datasets muy grandes
• Hay tres tipos principales: Gaussiana, Bernoulli i Multinomial,según
la hipótesis de distribbución de probabilidad p(xi | y)
https://youtu.be/949tYJgRvRg
20. Algoritmos de Naïve Bayes: ejemplo
20
• La fórmula de Bayes nos permite obtener las probabilidades condicionales
con cada variable
• Y, en base a estas, podremos hacer predicciones con nuevos datos:
¿Jugaremos hoy a golf?
21. Algoritmos de Naïve Bayes: ejemplo
21
• Y, en base a estas, podremos hacer predicciones con nuevos datos: ¿Jugaremos hoy a golf?
23. Máquinas de Vectores Soporte (SVM)
23
• Los algoritmos Support Vector Machines (o SVM) utilizan un hiperplano
(lineal) para clasificar de manera óptima. El uso de kernels permiten
generalizaciones
• El objetivo sería crear un límite de decisión (una línea que separa las dos
clases de nuestros puntos de datos, como la línea dibujada)
• Buscamos el mejor límite de decisión como aquél que maximiza su
distancia desde cualquiera de los vectores de soporte. Los vectores de
soporte son puntos de datos de cada clase más cercanos a la clase
opuesta. Presentan el mayor riesgo de clasificación errónea debido a su
proximidad a la otra clase
• El entrenamiento de una máquina de vectores de soporte consiste en
encontrar una línea que maximice (optimice) el margen entre los vectores
de soporte
https://youtu.be/GOaIZqMh5PE
24. Máquinas de Vectores Soporte (SVM): kernels
24
• En los algoritmos Support Vector Machines (o SVM) existe una técnica avanzada que permite transformar los datos
originales mediante una función (kernel), de modo que la clasificación mediante SVM tenga mayor precisión
• Lo podemos ver en el siguiente ejemplo, dónde los datos no se separan fácilmente con una función lineal con los datos
originales. Pero si aplicando una transformación con la función kernel z
• Podéis ver el vídeo en el enlace para aprender más
https://youtu.be/YO1yAEKDA64
𝑧!
= 𝑥!
+ 𝑦!
25. Algoritmos kNN
25
• Los algoritmos de K vecinos más cercanos o kNN (k Nearest Neighbors) almacenan todos los puntos de
datos disponibles y clasifican cada punto de datos nuevo en función de los puntos de datos más
cercanos a él, medidos por una función de distancia
https://youtu.be/FHHuo7xEeo4
26. Redes Neuronales
26
• Una Red Neuronal (Neural network o NN) procesa los
datos de entrenamiento simulando el comportamiento
de un cerebro humano, mediante capas de nodos o
neuronas. Cada nodo consta de: inputs, pesos, un
escalón de activación (threshold), y un output. Si el valor
de salida o output supera el escalón o nivel de
activación, el nodo se activa, pasando los datos a la
siguiente capa de la red. Esta función de mapeo se
entrena con datos etiquetados. Utilizan funciones de
pérdida y métodos numéricos de gradiente
descendiente. Cuando la función de pérdida es cercana a
cero, el modelo es correcto
• Pueden utilizarse, además, en algunos problemas de
aprendizaje no-supervisado
https://youtu.be/dlxhyt8m0wo
27. Tema 3: Ejercicios de Clasificación y Regresión
• Ejercicio: consideramos las siguientes características de algoritmos. Para cada afirmación o
sentencia, indicar si corresponde a un algoritmo de Clasificación o Regresión
1. En el problema a resolver, las variables objetivo o dependientes son discretas
2. El resultado del modelo son valores continuos
3. El objetivo es predecir categorías o etiquetas de clases
4. Ejemplos de estos modelos son: predicción del precio de una acción en bolsa; predecir
el precio de un inmueble; predecir la cantidad de demanda de un producto
5. A este grupo pertenecen las regresiones lineales y no-lineales
28. Tema 3: Ejercicios de Clasificación y Regresión
• Ejercicio: consideramos el siguiente algoritmo en Python que implementa el modelo de aprendizaje
automático k-NN visto en el Tema 3. El programa nos muestra los resultados del modelo k-NN con
un número de parámetros n_neighbors creciente. Es decir, podemos observar en el gráfico la
precisión de los modelos ajustados, a medida que aumentamos la complejidad del algoritmo (más
parámetros n_neighbors)
29. Tema 3: Ejercicios de Clasificación y Regresión
• Comentar estos resultados. ¿Los modelos generalizan mejor a mayor complejidad?
Explicar brevemente
30. Sede Universitat Carlemany
Av. Verge de Canòlich, 47
AD600 Sant Julià de Lòria
Principat d’Andorra
Linkedin Facebook
+376 878 300