Skip to content

Material para taller sobre scikit-learn del Aula de Software Libre (curso 2018/2019)

License

Notifications You must be signed in to change notification settings

ayrna/taller-sklearn-asl-2019

Repository files navigation

Talleres de ciencia de datos y aprendizaje automático para el aula de software libre (ASL)

Este repositorio contiene una serie de material sobre un breve tutorial sobre scikit-learn en Python. Está basado en el tutorial de scikit-learn realizado en la conferencia Scipy2017 (ver referencias).

Presentación

Comenzaremos introduciendo algunos conceptos teóricos a través de la siguiente presentación.

Conseguir el material para el tutorial

Si tienes una cuenta de Github, la forma más conveniente de bajar el material es realizar un clone del repositorio GitHub o hacer un fork. Puedes clonar el repositorio con el comando:

git clone https://github.com/ayrna/taller-sklearn-asl-2019.git

Si no estás familiarizado con GitHub o no tienes cuenta, también puedes bajar todo el repositorio como un archivo .zip, accediendo a Clone or download en la cabecera del repositorio y pulsando sobre Download ZIP.

Por favor, ten en cuenta que los contenidos del repositorio pueden cambiar a última hora, así que recomendamos que intentes actualizar los contenidos antes de cada sesión. Si tienes una cuenta de GitHub y has clonado el repositorio, solo tienes que usar el comando:

git pull origin master

En otro caso, tendrás que descargar de nuevo el .zip cada vez que quieras actualizar los ficheros.

Notas de instalación

Este tutorial requiere tener instalaciones lo más recientes posibles de:

Este último es importante. Si lo tienes correctamente instalado, deberías poder teclear:

    jupyter notebook

en tu terminal de comandos y ver el panel de carga de libros de notas en tu navegador web. Intenta abrir y ejecutar cualquiera de los libros que contiene este curso, para ver si funciona todo correctamente.

Instalación en equipos personales

Para aquellos usuarios que no tengan las dependencias instaladas, una forma relativamente sencilla de conseguirlas es utilizar una distribución de Python como Anaconda, que incluye los paquetes de Python más relevantes para ciencia, matemáticas, ingeniería y análisis de datos. Anaconda puede descargarse e instalarse de forma libre, incluyendo el uso comercial y la redistribución. Los códigos incluidos en este tutorial deberían ser compatibles con Python 2.7 y Python 3.7. Suponiendo que tengas Anaconda instalado, los siguientes comandos crean un entorno nuevo llamado sklearn-env e instalan todas las dependencias:

conda update conda
conda update anaconda
conda create --prefix ~/sklearn-env scikit-learn
source activate sklearn-env
conda install matplotlib
conda install ipython
conda install pandas
conda install Pillow

Preparación de equipos en la UCO (ThinkStation)

Los equipos de la UCO están provistos de todo el material necesario para crear un entorno donde trabajaremos durante todas las sesiones de los talleres. Con el comando pip instalamos las bibliotecas necesarias para trabajar:

$ pip install --user --upgrade scikit-learn pandas

Como puedes observamos, instalamos las librerías con la opción --user, ya que si no requeriríamos permisos de administración. Si tienes algún tipo de problema durante la instalación, puedes limpiar la carpeta $HOME/.local/lib/python2.7/site-packages, pero vigila previamente que no tengas librerías que quieras mantener. Si os quedáis sin espacio durante la instalación, también podéis vaciar el directorio $HOME/.cache/pip. Esta última carpeta puede borrarse tras la instalación.

En algunas instalaciones de Linux hemos visto que la dependencia argparse no se instala automáticamente, puedes arreglarlo así:

$ pip install --user --upgrade argparse

Revisión de una correcta instalación

Tras obtener el material, recomendamos encarecidamente abrir y ejecutar el libro de notas check_env.ipynb, que se encuentra en la raíz del repositorio. Para ello, ejecuta el comando:

jupyter notebook check_env.ipynb

Una vez dentro del libro, ejecuta la única celda de código pulsando sobre el botón "Run Cells", tal y como muestra esta figura:

Si tu entorno satisface todos los requisitos para el tutorial, el código ejecutado debería mostrar una salida como la siguiente:

Using python in /usr/local
2.7.11 (default, Feb 11 2016, 10:11:51)
[GCC 5.3.0]

[ OK ] PIL version 1.1.7
[ OK ] matplotlib version 2.1.2
[ OK ] scipy version 1.2.1
[ OK ] IPython version 4.0.0
[ OK ] numpy version 1.16.1
[ OK ] pandas version 0.24.1
[ OK ] sklearn version 0.20.2

Aunque no sea un requisito, te recomendamos actualizar los paquetes Python a su ultima versión, para así asegurar la mejor compatibilidad con el material didáctico. Puedes actualizar los paquetes con los comandos:

pip install [package-name] --upgrade

Descarga de las bases de datos

Los datos para este tutorial no están incluidos en el repositorio. Vamos a utilizar varios datasets: muchos vienen en scikit-learn, el cuál descarga y guarda los datos.

Debido a que la red puede fallar, sería una buena idea descargar algunos de los datasets (los más pesados) antes de las clases. Por favor, ejecuta:

python fetch_data.py

para descargar estos datasets.

El tamaño de la descarga de los ficheros es, aproximadamente, 280MB y, una vez extraídos en disco ocuparán unos 480MB de tu disco duro.

Sesiones y temas

Para cargar cualquier sesión debes iniciar jupyter notebook.

1. Visualización, aprendizaje supervisado y métodos de evaluación (jueves 21 febrero)

  • 1.01. Introducción a aprendizaje automático en Python [notebook][html]
  • 1.02. Herramientas científicas en Python [notebook][html]
  • 1.03. Representación y visualización de datos [notebook][html]
  • 1.04. Aprendizaje supervisado: entrenamiento y test [notebook][html]
  • 1.05. Aprendizaje supervisado: clasificación [notebook][html]
  • 1.06. Aprendizaje supervisado: regresión [notebook][html]
  • 1.07. Caso de estudio - Supervivencia en el Titanic [notebook][html]
  • 1.08. Validación cruzada y métodos de evaluación de rendimiento [notebook][html]
  • 1.09. Selección de parámetros, validación y test [notebook][html]

2. Aprendizaje no supervisado (jueves 14 marzo)

  • 2.01. Aprendizaje no supervisado: agrupamiento [notebook][html]
  • 2.02. Aprendizaje no supervisado: transformación [notebook][html]
  • 2.03. Encadenamiento con tuberías [notebook][html]
  • 2.04. Extracción de características de un texto mediante Bag-of-Words (bolsas de palabras) [notebook][html]
  • 2.05. Caso de estudio - Clasificación de texto para detección de spam en SMS [notebook][html]
  • 2.06. Aprendizaje supervisado: árboles de decisión y bosques aleatorios [notebook][html]
  • 2.07. Selección de características [notebook][html]

Referencias

Este tutorial es una versión reducida del tutorial original de sklearn por Pedro A. Gutiérrez, que a su vez se baja en el tutorial de Alex Gramfort y Andreas Mueller [Github][Youtube1][Youtube2]

Se recomiendan los siguientes tutoriales adicionales para aprender más sobre el manejo de la librería:

Por último, para aprender la sintaxis básica de Python en menos de 13 horas, se recomienda el siguiente curso de CodeAcademy:

About

Material para taller sobre scikit-learn del Aula de Software Libre (curso 2018/2019)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published