Tag Archives: IA

Anaconda y Jupyter Notebook como plataforma de Machine Learning en Python

3 Dic , 2017,
Jose Nunez
, , , , ,
No Comments

¿Qué es Anaconda?

Anaconda es una de las plataformas más prominentes de ciencia de datos para Python. Se puede descargar Anaconda de este enlace: http://www.continuum.io/downloads 


Distribución Anaconda

Expanda para ver Distribución ANACONDA

La distribución gratuita incluye una serie de librerías y programas utilitarios avanzados tales como

Image tomada de https://www.anaconda.com/distribution/

Dentro de los paquetes que me han resultado más interesantes podemos mencionar:

  1. Numpy: Librería de Python para computación científica
  2. Scipy: Meta-librería de computación científica para Python
  3. Pandas: Librerías para estructuras de datos y analítica de datos para Python
  4. Jupyter Notebook: Es un IDE que permite crear documentación “activa/viva” incluyendo visualizaciones, scripts, ejemplos, etc

Jupyter Notebook

Expanda para ver ¿Cómo iniciar con Jupyter Notebook?

Jupyter Notebook perimte generar documentación viva que incluya scripts, datos y visualizaciones de ejemplo.

En Windows, para ejecutar Jupyter Notebook se abre la consola de Anaconda (Windows > Anaconda Prompt) y se ejecuta el comando jupyter notebook

Este comando levanta un servidor jupyter y una ventana de navegador apuntando a http://localhost:8888 (el puerto puede variar)

Cada línea del documento puede ser de tipo Markup, Titulo o Código.

En las líneas que son de tipo código puede ejecutarse este con solo presionar [CTRL] [ENTER]

Desde esa ventana web se pueden crear o modificar proyectos Jupyter que incluyan código de ejemplo Python que puede ser ejecutado en el documento.


Flujo de Trabajo para Aprendizaje de Máquinas

Expanda para ver más sobre Machine Learning Workflow

Machine Learning Workflow: Es un patrón repetible y orquestado que permite la transformación y el procesamiento sistemático de informació para crear soluciones de predicción.

  1. Definir la pregunta a responder
  2. Preparar los datos
  3. Seleccionar un algoritmo
  4. Entrenar un modelo
  5. Validar el modelo
  6. Retro-alimentación

 

Inteligencia Artificial o Aprendizaje de Máquinas

12 Nov , 2017,
Jose Nunez
, , , , ,
No Comments

Flor IRIS

Haciendo un resumen exagerado, podemos decir que la Inteligencia Artificial y/o el Aprendizaje de Máquinas son la forma en que hemos logrado que los sistemas artificiales (máquinas) logren aprender más o menos igual como nosotros los seres humanos lo hacemos: mediante el análisis de un conjunto de observaciones (o muestras) de forma que una vez realizado el aprendizaje, el sistema pueda realizar inferencias ya sea prediciendo un resultado basado en un conjunto de datos.

Las tareas de aprendizaje pueden ser de dos tipos: aprendizaje supervisado (cuando se tiene disponible el resultado durante el aprendizaje) y aprendizaje no-supervisado cuando no se tiene un resultado disponible.

A su vez, las tareas de parendizaje pueden incluir problemas de:

  1. Clasificación: cuando se necesita clasificar un conjunto de características en clases pre-definidas como valores discretos; por ejemplo determinar qué clase de planta está representada en un conjunto de datos.
  2. Regresión: cuando se necesita establecer un valor continuo como resultado de analizar un conjunto de características. Por ejemplo establecer el precio de un producto.
  3. Agrupamiento: cuando se necesita encontrar características comunes entre si que denoten grupos de datos. Por ejemplo la identificación de patrones en una imagen.

El proceso de aprendizaje de máquinas en general se puede definir en los siguientes pasos:

  1. Determinación del Problema: Identificar el objetivo, qué es lo que se quiere lograr (clasificación, regresión o agrupamiento) e identificar las características o atributos de datos relevantes (“features”); así como el tipo de proceso (supervisado o no-supervisado)
  2. Escogencia del algoritmo de aprendizaje: Existen diversos algoritmos para tomar una serie de datos y generar modelos de aprendizaje de máquinas. Estos algoritmos difieren uno de otro en su aplicabilidad para diferentes tipos de problemas. En este enlace se presenta un tutorial bastante sencillo sobre diferentes algoritmos y su evaluación para un problema determinado.
  3. Entrenamiento de un Modelo: Consiste en ejecutar el o los algoritmos elegidos usando el 80% de los datos conocidos (en el caso de aprendizaje supervisado) para generar un modelo que pueda hacer futuras inferencias con datos nuevos. Esto da como resultado un modelo entrenado.
  4. Validación del modelo entrenado: Consiste en ejecutar el algoritmo sobre el modelo entrenado usando el 20% restante y comparando los resultados con los valores conocidos para ese 20% de datos.
  5. Uso del modelo y refuerzo: Una vez alcanzada una precision deseada en los resultados (tal vez > 90%) se puede ya utilizar el modelo entrenado y validado para realizar nuevas inferencias a partir de nuevos datos donde no se tenga un resultado predefinido.

Como una nota final podemos decir que los conceptos de Aprendizaje de Máquinas y de Inteligencia Artificial se pueden separar citando un artículo reciente en la revista Forbes:

Inteligencia artificial (IA) es el concepto amplio de máquinas que son capaces de realizar tareas en una forma que se pueda considerar “inteligente”

y,

Aprendizaje de máquinas es la aplicación de paradigmas de IA al rededor de la idea de que deberia ser posibe que simplemente demos datos a las máquinas y que estas puedan aprender por sí mismas.

Acá algunos conceptos más avanzados que hemos logrado aprender: http://costaricamakers.com/?p=1455

______________________________________________

Referencias

Intel Edison – Análisis de Datos con Lenguaje “R” mediante UBILINUX (nota rápida)

21 Ene , 2017,
Jose Nunez
, , , , , , , , , , , ,
No Comments

IMG_20170120_183547Durante 2016 hicimos varios proyectos interesantes con Intel Edison.

Uno de ellos fue un proyecto de colaboración con nuestros colegas de UNED en la investigación de sonido ambiente mediante tecnologías IoT.

Una de las cosas más interesantes que pudimos experimentar fue esta idea de hacer análisis de grabaciones de sonido mediante la plataforma Intel Edison y el lenguaje de “Machine Learning” llamado “R”

Esperamos detallar más aun el proceso en próximas entregas. Por lo pronto les dejamos con un tutorial de Sparkfun sobre cómo instalar UBULINUX, una versión de LINUX para IoT basada en DEBIAN en el Edison. La ventaja de esto es que se puede usar el sistema de paquetes APT-GET para instalar el lenguaje “R”

https://learn.sparkfun.com/tutorials/loading-debian-ubilinux-on-the-edison

Pese a que los desarrolladores de UBILINUX se lamentan de no tener soporte suficiente para esta herramienta; creo que vale la pena probar y ayudar un poco a generar ese ecosistema.