Está en la página 1de 42

DIPLOMA EN CIENCIA DE DATOS AVANZADO

Analítica de Datos
Módulo 4: Aprendizaje Computacional
Aprendizaje supervisado
Julio Godoy Del Campo

Presentación basada en libro: Artificial Intelligence: A Modern Approach (Russell y Norvig) 3ra edición

UNIDAD DE Departamento de Ing. Informática y


DATA SCIENCE Cs. de la Computación
Aprendizaje supervisado - kNN

● kNN: los k vecinos más cercanos


○ Asume que elementos similares existen en proximidad, unos de otros.
○ Si este supuesto es verdad, el algoritmo tiene buen desempeño

Departamento de Ing. Informática y


imagen: towardsdatascience.com
Cs. de la Computación
Aprendizaje supervisado - kNN

● Pasos:
a. Cargar los datos
b. Inicializar K (número de vecinos a considerar)
c. Para cada dato i
■ Calcular distancia entre dato a evaluar y el dato i
■ Añadir la distancia a una lista
■ Ordenar la lista de distancia de menor a mayor
■ Escoger los primeros k datos en la lista ordenada
■ Obtener la clase/etiqueta de cada dato y retornar su moda

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - kNN

● ¿Cómo determinar el valor de k?


○ Ejecutar kNN varias veces, buscando minimizar el error
○ ¿Cómo se debería comportar el método a medida que se disminuye/aumenta k?
■ Muy bajo : predicciones más inestables
■ Muy alto: predicciones más estables hasta cierto punto.
○ Para evitar empates, k se suele escoger con un valor impar

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - kNN

● Ventajas:
○ Simple, fácil de entender e implementar
○ Aparte del valor de k, no se necesita hacer tuning de más parámetros, ni hacer
supuestos restrictivos
○ Sirve para clasificación y regresión

● Desventajas:
○ Puede ser muy lento

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - kNN

● En la práctica:
○ su uso en dominios donde se requiere respuesta rápida es limitado

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Naive Bayes

● Método probabilístico para clasificación


● Se basa en el teorema de Bayes

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Naive Bayes

● Método probabilístico para clasificación


● Se basa en el teorema de Bayes

A = hipótesis

B = evidencia

Supuesto: los atributos son independientes (de ahí “Naive”)

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Naive Bayes

● Método probabilístico para clasificación


● Se basa en el teorema de Bayes

A = hipótesis

B = evidencia

● Supuestos:
○ los atributos son independientes (de ahí “Naive”)
○ los atributos tienen el mismo efecto en el resultado

Departamento de Ing. Informática y


Cs. de la Computación
Departamento de Ing. Informática y
Cs. de la Computación
Aprendizaje supervisado - Naive Bayes

y = variable de clase (jugar golf o no)

X = atributos

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Naive Bayes

y = variable de clase (jugar golf o no)

X = atributos

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Naive Bayes

y = variable de clase (jugar golf o no)

X = atributos

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Naive Bayes

y = variable de clase (jugar golf o no)

X = atributos

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Naive Bayes

y = variable de clase (jugar golf o no)

X = atributos

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Naive Bayes

● Usados en análisis de sentimientos, filtros spam, sistemas de


recomendación

● Fáciles de implementar y rápidos

● Desventajas: requerimiento de independencia entre atributos

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Random Forest

● Recordando árboles de decisión

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Random Forest

● Recordando árboles de decisión


¿Qué característica ayuda a dividir las
observaciones tal que los grupos
resultantes sean tan diferentes como
posible, (y los miembros de cada
subgrupo, lo más similar entre sí
como sea posible)?

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Random Forest

● Random forest: gran número de árboles de decisión, operando en conjunto


○ Cada árbol tiene como output una predicción de clase
○ La clase con la mayor cantidad de “votos” es la predicción del modelo

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Random Forest
● Random forest: ¿por qué es mejor que un solo árbol?
○ “Sabiduría de la multitud”: Un gran número de modelos sin correlación, operando como
un “comité”, tiene mejor performance que cada uno de los modelos constituyentes

○ Los árboles se “protegen” mutuamente de errores individuales.

○ Requisitos para buen funcionamiento de random forest:


■ Los atributos deberían ser capaces de predecir de alguna forma la clase objetivo
■ Las predicciones (y los errores) de árboles individuales deben tener poca
correlación con las de otros árboles

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Random Forest

● Random forest: ¿cómo forzar la “diversidad”?


○ Bagging: en lugar de usar el mismo dataset en cada árbol, se escogen datos al azar
(pero del mismo tamaño del dataset).

○ Como los datos (escogidos al azar) no son iguales en cada caso, los árboles
resultantes son diferentes.
■ ejemplo: si el dataset de entrenamiento fuese [1, 2, 3, 4, 5, 6], uno de los árboles
podría utilizar [2, 2, 2, 4, 5, 5]

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Random Forest

● Random forest: ¿cómo forzar la “diversidad”?


○ Aleatoriedad en los atributos

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Random Forest

● En resumen
○ Random forest es un método de clasificación que utiliza un conjunto de árboles de
decisión
○ Utiliza bagging y randomización de características al construir cada árbol, intentando
construir un “forest” de árboles de baja correlación, cuya predicción es más exacta que
la de cada árbol individual.
○ Se requiere:
■ atributos que tengan algo de “poder predictivo”
■ baja correlación entre los árboles (y entre sus decisiones)

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - SVM

● SVM: Support Vector Machines


● Ejemplo: incrementar seguridad vial mediante bandejón central en
autopistas

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - SVM

● Idea: encontrar un límite de separación para separar las clases y maximizar


el margen entre ellas.
○ Margen: líneas perpendiculares entre el límite de separación y los puntos más
cercanos

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - SVM

● Caso 1: datos son linealmente separables


○ Hay muchas posibles líneas - llamadas hiperplanos
○ ¿Cuál es la mejor línea/hiperplano?
■ Considerar sólo aquellas que separan correctamente las clases
■ Escoger aquella que maximiza el margen

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - SVM

● ¿Qué es un hiperplano?
○ subespacio de n-1 dimensiones (donde n es la dimensión de los datos)
○ Ejemplo en 2 dimensiones:

Puntos sobre la línea Puntos bajo la línea

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - SVM

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - SVM

● ¿Qué es un hiperplano separador?


○ Supongamos una etiqueta de 1 (para green/verde) y de -1 (para red/rojo)

Generalizando:

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - SVM

● ¿Qué es un margen?
○ Dado un hiperplano - una línea X
○ Calcular la distancia perpendicular desde cada punto a la línea X
○ La distancia más pequeña es el margen
○ SVM trata de encontrar el hiperplano que maximiza este margen

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - SVM

● Caso 2: datos NO son linealmente separables


○ ¿Qué se puede hacer?
■ Soft margin
■ “Truco” Kernel

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - SVM

● Caso 2: datos NO son linealmente separables


○ ¿Qué se puede hacer?
■ Soft margin: SVM tolera algunos ejemplos mal clasificados, tratando de buscar
una línea que maximice el margen y minimice las clasificaciones erróneas

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - SVM

● Caso 2: datos NO son linealmente separables


○ ¿Qué se puede hacer?
■ “Truco” Kernel

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - SVM

● Caso 2: datos NO son linealmente separables


○ ¿Qué se puede hacer?
■ “Truco” Kernel : trata de encontrar un límite de decisión no lineal

Departamento de Ing. Informática y


Cs. de la Computación
Departamento de Ing. Informática y
Cs. de la Computación
Aprendizaje supervisado - Regresión

El problema:

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Regresión

● Técnica para analizar las relaciones entre variables y cómo contribuyen a


producir un resultado en conjunto.
● Varios tipos de regresión:
○ Lineal
○ Polinomial
○ Logística
○ ..

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Regresión lineal

● Busca una relación lineal entre lo que se quiere predecir y los atributos
○ Ejemplo: horas de estudio vs nota obtenida

Horas de estudio Nota obtenida

4 2.3

24 7.0

14 5.4

7 3.3

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Regresión lineal

● y = b0 + b1*x
○ y es el valor a predecir
○ x se obtiene de los datos
○ ¿qué valores usar para b0 y b1?

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Regresión lineal

● y = b0 + b1*x
○ y es el valor a predecir
○ x se obtiene de los datos
○ ¿qué valores usar para b0 y b1? → aquellos que minimicen el “error”

Departamento de Ing. Informática y


Cs. de la Computación
Aprendizaje supervisado - Regresión lineal

● y = b0 + b1*x
○ y es el valor a predecir
○ x se obtiene de los datos
○ ¿qué valores usar para b0 y b1? → aquellos que minimicen el “error”

● ¿cómo se calcula el error?

Error = ∑i (y’i - yi)2

donde y es la el valor real de la función, y’ es la predicción hecha por el


modelo
Departamento de Ing. Informática y
Cs. de la Computación
Aprendizaje supervisado - Regresión lineal

¿Cómo minimizamos el error? (Error = ∑i (y’i - yi)2)

→ descenso de gradiente!

Demo

Departamento de Ing. Informática y


Cs. de la Computación

También podría gustarte