Aprendizaje Computacional

Mario Graff (mgraffg@ieee.org, mario.graff@infotec.mx)

https://github.com/ingeotec

https://github.com/mgraffg

CONACYT - INFOTEC

Objetivo

Conocer las características de problemas de aprendizaje supervisado. Conocer las fortalezas y debilidades de diferentes tipos de algoritmos de aprendizaje de tal manera de que se pueda seleccionar el algoritmo mas adecuado al problema planteado. Implementar y analizar el rendimiento de diferentes algoritmos de aprendizaje supervisado.

Temas

  1. Introducción
  2. Aprendizaje supervisado
  3. Métodos paramétricos
  4. Métodos no-paramétricos
  5. Máquinas de kernel
  6. Métodos no convencionales de aprendizaje
  7. Diseño y análisis de experimentos de aprendizaje
  8. Aplicaciones

Introducción

1.1. Inteligencia Computacional - Computational Intelligence
1.2. ¿Dónde está el aprendizaje computacional en Big Data / Ciencia de Datos?
1.3. ¿Qué es aprendizaje computacional?
1.4. ¿Cuáles son los tipos de aprendizaje?
1.5. Herramientas

Inteligencia Computacional

  • A.C. se encuentra en el área de IC
  • Estudio de sistemas inteligentes
  • Entender como se puede generar comportamiento inteligente

Big Data

  • Journal of Big Data
    • Captura de datos y almacenamiento
    • Visualización
    • Algoritmos de aprendizaje para Big Data
    • Herramientas para data mining
  • Big Data Research
    • Todos los aspectos fundamentales a Big Data
    • Artículos en plataformas específicas para tratar Big Data
    • Promover ciencia de datos (Data Science) y colaboración interdisciplinaria
    • Uso de big data en dominios específicos
  • IEEE Transactions on Big Data
    • Investigación interdisciplinaria
    • Manejo de datos
    • Visualización
    • Infraestructura, rendimiento

Data mining

  • Data Mining and Knowledge Discovery
    • Editorial - What to do with all this data?
    • Extraer información de bases de datos
    • Métodos de data mining
    • Algoritmos para data mining
    • Aplicaciones
  • Obtener conocimiento de los datos
  • Técnicas para procesar datos
  • Técnicas de aprendizaje
  • La aplicación de algoritmos de aprendizaje a grandes colecciones

Data Science

  • International Journal of Data Science and Analytics
    • Investigación guiada por los datos
    • Trabajo interdisciplinario
    • Metodología, teorías, tecnologías y aplicaciones para los datos
  • Experto en el dominio
  • Experto en la técnica
  • Capacidad para manejo de información

¿Qué es aprendizaje computacional?

  • Algoritmo - ordenar una conjunto de números
  • Encontrar el camino mas corto entre dos vértices
  • Generar una composición de $\{+, -, \cdot, /, ...\}$ para seguir una serie de puntos
  • Decidir si una noticia es de la sección de deportes

¿Cuáles son los tipos de aprendizaje?

  • Reglas de asociación
  • Aprendizaje Supervisado
  • Aprendizaje no supervisado
  • Aprendizaje por refuerzo

Reglas de asociación

  • $P(Y | X)$
  • ej. $X =$ cerveza y $Y =$ botana
  • ej. $Y =$ pañales
  • $P(Y | X, D)$
  • $D$ - Atributos de un cliente

Aprendizaje Supervisado

  • Se tiene un supervisor
  • Clasificación
    • Se tiene un conjunto de clases
    • ej. Recocimiento de caracteres
    • Análisis médico - tiene un padecimiento
    • Función discriminante
    • Generado un modelo se predice la clases
    • Probabilidad de pertenecer a una clase - $P(Y | X)$
  • Regresión
    • Se predice una variable continua
    • ej. Valor de una acción
    • La temperatura
    • Los costos de bienes inmuebles

Aprendizaje por refuerzo

  • policy conjunto de acciones para llegar al objetivo
  • Juegos
  • Robots
  • Control

Aprendizaje no Supervisado

  • No se cuenta con un supervisor
  • Agrupamiento - Clustering
  • ej. Segmentación de clientes
  • Agrupación de documentos

Herramientas

  • Python
  • numpy
  • scipy
  • scikit-learn - sklearn
  • jupyter notebook
  • matplotlib
  • pandas

Python

  • Distribución de Anaconda
  • miniconda
    cd $HOME
    wget http://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
    chmod 755 miniconda.sh
    ./miniconda.sh -b
    export PATH=$HOME/miniconda3/bin:$PATH
    conda update --yes conda
    conda install --yes pip
    

Librerias - Uso - Graficar

  • Instalar librerías
conda install scikit-learn ipython matplotlib jupyter
  • Graficar la siguiente función
    $f(x) = 12.4 x^2 - 3.4 x + 43$

  • En Python seria:

import numpy as np  

x = np.linspace(-10, 10, 100)  
y = 12.4 * x**2 - 3.4 * x + 43  
plot(x, y)
In [1]:
%pylab inline
import numpy as np

x = np.linspace(-10, 10, 100)
y = 12.4 * x**2 - 3.4 * x + 43
plot(x, y)
Populating the interactive namespace from numpy and matplotlib
Out[1]:
[<matplotlib.lines.Line2D at 0x119fe02b0>]