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).
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/tutorial-sklearn.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 (https://github.com/ayrna/tutorial-sklearn) 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.
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.
Para aquellos usuarios que no tengan las dependencias instaladas, una forma relativamente sencilla de conseguirlas es utilizar una distribución de Python como Anaconda CE, 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.4-3.6. 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
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.
En algunas instalaciones de Linux hemos visto que la dependencia argparse
no se instala automáticamente, puedes arreglarlo así:
$ pip install argparse
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 /home/ayrna/anaconda3
3.6.1 |Anaconda 4.4.0 (64-bit)| (default, May 11 2017, 13:09:58)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]
[ OK ] ipywidgets version 7.1.1
[ OK ] scipy version 1.0.0
[ OK ] PIL version 1.1.7
[ OK ] IPython version 5.4.1
[ OK ] numpy version 1.14.0
[ OK ] pandas version 0.22.0
[ OK ] matplotlib version 2.1.2
[ OK ] sklearn version 0.19.1
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
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.
Para cargar cualquier sesión debes iniciar jupyter notebook
.
- 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]
Nota: Mantenemos la numeración de los cuadernos con el curso original de sklearn para quién quiera hacer la versión completa del curso.
- 2.02. Aprendizaje no supervisado: agrupamiento [notebook][html]
- 2.01. Aprendizaje no supervisado: transformación [notebook][html]
- 2.05. Encadenamiento con tuberías [notebook][html]
Nota: Mantenemos la numeración de los cuadernos con el curso original de sklearn para quién quiera hacer la versión completa del curso.
- 3.01. Extracción de características de un texto mediante Bag-of-Words (bolsas de palabras) [notebook][html]
- 3.02. Caso de estudio - Clasificación de texto para detección de spam en SMS [notebook][html]
- 3.05. Aprendizaje supervisado: árboles de decisión y bosques aleatorios [notebook][html]
- 3.06. Selección de características [notebook][html]
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:
- An introduction to machine learning with scikit-learn. Documentación oficial de
scikit-learn
. http://scikit-learn.org/stable/tutorial/basic/tutorial.html. - A tutorial on statistical-learning for scientific data processing. Documentación oficial de
scikit-learn
. http://scikit-learn.org/stable/tutorial/statistical_inference/index.html.
Por último, para aprender la sintaxis básica de Python en menos de 13 horas, se recomienda el siguiente curso de CodeAcademy:
- Curso de Python de CodeAcademy. https://www.codecademy.com/es/learn/python