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/pagutierrez/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/pagutierrez/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 3.8. 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 env create -f environment.yml
conda activate sklearn-env
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/javier/miniconda3/envs/sklearn-env
3.8.8 (default, Apr 13 2021, 19:58:26)
[GCC 7.3.0]
[ OK ] numpy version 1.20.1
[ OK ] scipy version 1.6.2
[ OK ] matplotlib version 3.3.4
[ OK ] IPython version 7.22.0
[ OK ] sklearn version 0.24.1
[ OK ] pandas version 1.2.4
[ OK ] PIL version 8.2.0
[ OK ] ipympl version 0.7.0
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.
- 01. Introducción a aprendizaje automático en Python [notebook][html]
- 02. Herramientas científicas en Python [notebook][html]
- 03. Representación y visualización de datos [notebook][html]
- 04. Aprendizaje supervisado: entrenamiento y test [notebook][html]
- 05. Aprendizaje supervisado: clasificación [notebook][html]
- 06. Aprendizaje supervisado: regresión [notebook][html]
- 07. Aprendizaje no supervisado: transformación [notebook][html]
- 08. Aprendizaje no supervisado: agrupamiento [notebook][html]
- 09. Un resumen de la interfaz Estimator de scikit-learn [notebook][html]
- 10. Caso de estudio - Supervivencia en el Titanic [notebook][html]
- 11. Extracción de características de un texto mediante Bag-of-Words (bolsas de palabras) [notebook][html]
- 12. Caso de estudio - Clasificación de texto para detección de spam en SMS [notebook][html]
- 13. Validación cruzada y métodos de evaluación de rendimiento [notebook][html]
- 14. Selección de parámetros, validación y test [notebook][html]
- 15. Encadenamiento con tuberías [notebook][html]
- 16. Aprendizaje supervisado: evaluación de modelos, métricas de puntuación y manejo de conjuntos de datos no balanceados [notebook][html]
- 17. Aprendizaje supervisado: modelos lineales [notebook][html]
- 18. Aprendizaje supervisado: árboles de decisión y bosques aleatorios [notebook][html]
- 19. Selección de características [notebook][html]
- 20. Aprendizaje no supervisado: agrupamiento jerárquico y métodos basados en densidades [notebook][html]
- 21. Aprendizaje no supervisado: reducción de la dimensionalidad no lineal [notebook][html]
- 22. Aprendizaje no supervisado: detección de anomalías [notebook][html]
- 23. Out-of-core learning [notebook][html]
Este tutorial es una traducción del 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