Está en la página 1de 88

Aprendizaje

Automático

Ing. Luis Martínez, MSc


Contenido
▪ Introducción
▪ Generalidades de los Modelos
▪ Clasificación
▪ Regresión
▪ Clustering
▪ Reglas de asociación
2
Libros sugeridos para lectura personal

3
¿Alguna pregunta?
Pueden encontrarme en:
luisadrianml
(829)712-6429
@ lmartinez2@outlook.com
4
1.
¿Qué es Aprendizaje
Automático?
Programación Tradicional

6
Programación Tradicional

Si tiene cuernos

& es blanca y negra O marrón

& mide ~1.5 metros de altura

& mide ~2.5

es una vaca
7
Programación Tradicional

Necesidad de cambiar de
enfoque ahora

8
¿Qué es IA?
IA General conocida como IA fuerte
Un poco en el área de ciencia ficción
IA Específica (Narrow) conocida como IA débil
Casi toda el IA implementado
Perro con un solo truco
… Machine Learning
9
Inteligencia Artificial

10
11
“ Campo de estudio que les
da a la computadora la
habilidad de aprender sin
ser explícitamente
programadas.

12 - Arthur Samuel*

Es un programa de computador que
aprende de la Experiencia E, respecto a
alguna tarea T y con medida de
rendimiento P, si el desempeño sobre la
tarea T, medido por P, mejora con la
experiencia E.

13 - Tom Mitchell
Breve Pregunta
Tu programa válida transacciones fraudulentas o
no. El cliente deja saber que es fraudulenta cuando
llama a reportar que fue así (de esta manera,
nuestro programa aprende).
¿Cuál es la tarea T?
¿Cuál es la experiencia E?
¿Cuál es la medida P?
14
Machine Learning puede:
Estimar relaciones significativas entre variables
Predicciones en base a entrenamientos
Explicar qué factores afectan a un determinado
proceso
Estructurar datos con características relevantes
Toma de decisiones óptimas automáticamente
Generar nuevos datos en base a otros
15
¿Qué es un modelo?
Una representación simplificada de un proceso o
sistema
Una representación matemática de un proceso del mundo real

16
17
2.
Usos de Aprendizaje
Automático
Algunos casos:
▪ Customer Churn
▪ Facilitador de Prestamos
▪ Asistentes Personales Virtuales
▪ Predicción de Tráfico
▪ Reconocimiento facial
▪ Detección de SPAM y Malware
▪ Chatbots
▪ Recomendador de Productos
▪ Entre otros…
19
3.
Tipos de Aprendizaje
Automático
Tipos de Aprendizaje

Sin Re-
Supervisado
supervisión forzamiento

▪ Aprendizaje de data ▪ Descubrir estructura en ▪ Aprendiendo al hacer


etiquetada data sin etiquetado con feedback
▪ Ej. Clasificación de ▪ Ej. Agrupación de ▪ Ej. Juego de Ajedrez
21
SPAM documentos
Supervisado

Clasificación

Regresión

22
Sin
Supervisión
Reducción

Clustering

23
Reinforcement Learning

24
Reinforcement Learning

25
Reinforcement Learning

26
4.
Librerías
Datos como numpy o pandas
Características continuas
No valores perdidos en data

4a. Scikit-learn
Librería para Machine Learning
Scikit Learn import sklearn

Popular librería para Machine Learning

Diseñada para estar bien documentada y accesible a no-


especialistas

Características:
- Diseñada sobre NumPy y SciPy
- Datos de entrada como NumPy o Pandas
- Variables continuas
- No valores perdidos en la data
29
Funciones de algebra linear
Fancy Indexing
Mayor Rápidez

4b. NumPy
Construida alrededor de un arreglo C
NumPy import numpy as np

Construida alrededor de un arreglo C


Paquete fundamental para la computación científica con
Python

Características:
- Funciones de algebra linear
- Fancy Indexing
- Mayor Rapidez
- Arreglos multidimensionales y matrices

31
4c. Pandas & Matplotlib
Manipulación de datos, análisis y
visualizaciones
Pandas & Matplotlib
Manipulación de datos, análisis y visualizaciones

Permite ver datos en forma de tablas

import pandas as pd

import matplotlib.pyplot as plt

33
Otras librerías
Keras from tensorflow import keras

Keras es una librería escrita en Python, diseñada específicamente


para hacer experimentos con redes neuronales. Utiliza TensorFlow
por debajo.

PyTorch import torch

Pytorch es un framework de Python que permite el crecimiento


rápido del Deep Learning, con una fuerte aceleración de la GPU.

TensorFlow import tensorflow as tf

una librería de computación numérica que computa gradientes


automáticamente, esto quiere decir que está a un nivel más bajo y
34 profundo que Keras o Pytorch.
5.
Flujo de un Proyecto
de Aprendizaje
Automático
Flujo

36
Proceso KDD

Breve KDD
Flujo: CRISP-DM

38
1. Obtención de Datos

39
2. Pre-procesamiento de Datos
▪ Limpieza de datos (valores perdidos, etc)
▪ Duplicados, inconsistentes, sorpresas…
▪ Análisis Exploratorios
▪ Compresión de datos, pueden salir P&R
▪ Creación de atributos (características)
▪ Selección de atributos y generación de nuevos
▪ Reducción de atributos (compresión de dimensiones)

40
▪ 4. Entrenar
▫ Empieza el modelado
▪ 5. Probar
▫ Optimización del entrenamiento
▫ Validación de resultados, métricas de evaluación
▪ 6. Deploy
▫ Lanzar el modelo a producción (escalabilidad,
mantenimiento, entornos de trabajos, integración
continua)

41
Deploy

42
Forbes

43
“ No tenemos
mejores algoritmos.
Solo tenemos más
datos.
“We don’t have better algorithms. We just have
more data.”

- Peter Norving
44
Google’s Research Director
“ Más datos superan
algoritmos
inteligentes, pero
mejores datos
superan más datos.
“More data beats clever algorithms, but better data beats
more data.”

- Peter Norving
45
Google’s Research Director
Black Box versus White Box

46
Medidas de Evaluación
▪ Precisión (Accuracy)
▪ Matrix de Confusión
▪ Area debajo de la Curva
▪ Valor F1
▪ Error Medio Absoluto
▪ Error Cuadrático Medio

47
Precisión (Accuracy)
▪ Es lo que usualmente llamamos la Precisión
(Accuracy) del Modelo

𝑁ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑃𝑟𝑒𝑑𝑖𝑐𝑐𝑖𝑜𝑛𝑒𝑠 𝐶𝑜𝑟𝑟𝑒𝑐𝑡𝑎𝑠


𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 =
𝑇𝑜𝑡𝑎𝑙 𝑛ú𝑚𝑒𝑟𝑜 𝑑𝑒 𝑃𝑟𝑒𝑑𝑖𝑐𝑐𝑖𝑜𝑛𝑒𝑠 ℎ𝑒𝑐ℎ𝑎𝑠

▪ Funciona si existe número igual de ejemplos para


cada clase.

48
Matriz de Confusión
▪ Describe el rendimiento de nuestro modelo
▪ Funciona si existe número igual de ejemplos
para cada clase.

49
¿Qué pregunta (s) estoy tratando de responder? ¿Creo que los
datos recopilados pueden responder esa pregunta?
¿Cuál es la mejor manera de formular mis preguntas como un
problema de aprendizaje automático?
¿He recopilado suficientes datos para representar el problema
que quiero resolver?
¿Qué características de los datos extraje, y estas permitirán la
correcta predicciones?
¿Cómo mediré el éxito en mi solicitud?

50
6.
Representación de
Data
IRIS Data
Clasificación de Flores (IRIS)

52
Datos de la base de Flores Iris
▪ Consiste en 150 ejemplos (flores individuales)
que tienen 4 características: largo del sépalo,
ancho del sépalo, largo de pétalos y ancho de
pétalos (todo en cm).

▪ Data es accesible gratis desde UCI Machine


Learning Repository

53
Representación
Ejemplos, casos, observaciones…

Clase, etiqueta, objectivo…


54
Atributos, características, dimensiones…
Base de Entrenamiento y Prueba

55
Base de Entrenamiento y Prueba

56
7.
Scikit-learn
Flujo de trabajo en Supervisado

Entrenamiento

Generalización

59
Estimadores en Scikit-learn
▪ Algoritmos son implementados como clases
estimadoras
▪ Cada Algoritmo está bien documentado, usos y
ejemplos

60
Estimadores en Scikit-learn

61
Estimadores en Scikit-learn

62
Flujo de trabajo en Supervisado
estimador = ModeloXYZ()
estimador.fit(X_train, y_train)

Entrenamiento

estimador.predict(X_test)

Generalización

estimador.score(X_test, y_test)
63
8. Clasificación
64
Clasificación
Intuición: Asignar cosas a un caja o categoría
Objetivo: categórico
Entradas: numéricas, categóricas,

65
Clasificación
▪ Decision Tree (Árbol de decisiones)
▪ RandomForest
▪ Support Vector Machine
▪ K-Nearest Neighbour
▪ Naive Bayes

67
Clasificación
Dada una colección de filas (training set)
Encuentra un modelo que mapee las filas a una
clase.

Por ejemplo:
Predecir si un tumor es dañino o benigno.
Predecir si lloverá hoy o no. Predecir si un
empleado renunciará o no. Predecir si es gato o
no.
68
69
Árbol de Decisiones
▪ Idea es separar de manera secuencial una base
de entrenamiento al preguntar un serie de
preguntas

70
Partes de un árbol

71
72
División de Nodos
Idea es buscar que
los nodos sean lo
más puros
posibles

GINI
ENTROPY

73
Árbol de Decisiones
▪ Ventajas:
1. Sencillo de entender y visualizar
2. Pequeña preparación de datos
3. Maneja datos numéricos y categóricos
▪ Desventajas:
1. Crear arboles complejos que no generaliza
bien
2. Inestables (Un cambio en los datos puede
generar nuevo árbol)
74
Notebook
Visitar Google Colab

75
K-Nearest Neighbor
▪ Un objeto se clasifica por el voto mayoritario de
sus vecinos, asignándose el objeto a la clase
más común en sus k vecinos más cercanos (k
es un numero entero positivo, típicamente
pequeño)

76
K-Nearest Neighbor

77
Desventajas
▪ Sensible a atributos irrelevantes
▪ Sensible a ruido
▪ Lento si hay mucha data de entrenamiento
▪ Necesita determina valor de K

78
¿Qué elegir como K?
▪ Largo K = Modelo menos complejo
▪ Pequeño K = Modelo más complejo

Común: K es impar si son 2 clases e igual a raíz cuadrada del


número de clases

79
Notebook
Visitar Google Colab

80
Ensamble

81
Ensamble

82
RandomForest
▪ Método de ensamblado que crea múltiples
arboles y clasifica objetos basado en el voto de
todos los arboles.

▪ Pros:
▫ Maneja mucho datos con mucha dimensiones
▫ Puede manejar datos perdidos
▫ Reducción de Overfitting
▪ Cons:
▫ Puede ser caja negra, poco control en modelo
83
Random Forest

84
Random Forest

85
Mini-Proyecto
Implementar un RandomForest
Entrega: 11:59 PM del 5 Julio 2020
86
Rúbrica
1. ¿Qué problemas trataste de resolver? ¿Qué estas
tratando de predecir? Describe el problema y objetivo.
2. ¿Como evaluaras tus resultados? Especifica que medida
de evaluación y explica brevemente porqué.
3. ¿Qué base de datos usaste? ¿Tuviste que hacer algún
procesamiento? Describe brevemente el proceso y
enlace de la base de datos.
4. ¿Qué herramientas y librerías usaste?
5. Lista referencias de diferentes resultados de esa base de
datos. ¿Cómo se comporta tu resultados contra lo de
otra persona?
87
Rúbrica
1. Uso de Random Forest en Clasificación
2. Uso de 1 métrica de evaluación (adicional a la de
Precisión/Accuracy)
3. Preguntas anteriores respondidas
1. Colocar en Cuaderno en Sección “Preguntas del
Problema”
4. Código con detalle
1. Importante: Detallado y con pasos descritos con
formato
2. Colocar en Cuaderno en Sección “Código”

88
Notebook
Visitar Google Colab

89

También podría gustarte