Introducción al aprendizaje automático con scikit-learn
Esta serie de videos le enseñará cómo resolver problemas de aprendizaje automático utilizando la popular biblioteca scikit-learn de Python. Hay 10 videotutoriales con una duración total de 4,5 horas, cada uno con su cuaderno Jupyter correspondiente.
Puede ver la serie completa en YouTube y ver todos los cuadernos usando nbviewer.
La serie también está disponible como curso en línea gratuito que incluye contenido actualizado, cuestionarios y un certificado de finalización.
Nota: Los cuadernos de este repositorio se han actualizado para usar Python 3.9.1 y scikit-learn 0.23.2. Los cuadernos originales (que se muestran en el video) usaban Python 2.7 y scikit-learn 0.16, y se pueden descargar desde la rama de archivo. Puedes leer sobre cómo actualicé el código en esta publicación de blog.
Tabla de contenido
¿Qué es el aprendizaje automático y cómo funciona? (vídeo, cuaderno)
- ¿Qué es el aprendizaje automático?
- ¿Cuáles son las dos categorías principales de Machine Learning?
- ¿Cuáles son algunos ejemplos de aprendizaje automático?
- ¿Cómo "funciona" el aprendizaje automático?
Configuración de Python para aprendizaje automático: scikit-learn y Jupyter Notebook (vídeo, cuaderno)
- ¿Cuáles son los beneficios y desventajas de scikit-learn?
- ¿Cómo instalo scikit-learn?
- ¿Cómo uso el cuaderno Jupyter?
- ¿Cuáles son algunos buenos recursos para aprender Python?
Comenzando en scikit-learn con el famoso conjunto de datos de iris (video, cuaderno)
- ¿Qué es el famoso conjunto de datos del iris y cómo se relaciona con el aprendizaje automático?
- ¿Cómo cargamos el conjunto de datos del iris en scikit-learn?
- ¿Cómo describimos un conjunto de datos utilizando la terminología de aprendizaje automático?
- ¿Cuáles son los cuatro requisitos clave de scikit-learn para trabajar con datos?
Entrenamiento de un modelo de Machine Learning con scikit-learn (video, cuaderno)
- ¿Qué es el modelo de clasificación de K-vecinos más cercanos?
- ¿Cuáles son los cuatro pasos para el entrenamiento y la predicción de modelos en scikit-learn?
- ¿Cómo puedo aplicar este patrón a otros modelos de Machine Learning?
Comparación de modelos de aprendizaje automático en scikit-learn (vídeo, cuaderno)
- ¿Cómo elijo qué modelo usar para mi tarea de aprendizaje supervisado?
- ¿Cómo elijo los mejores parámetros de ajuste para ese modelo?
- ¿Cómo calculo el rendimiento probable de mi modelo con datos fuera de la muestra?
Canalización de ciencia de datos: pandas, seaborn, scikit-learn (vídeo, cuaderno)
- ¿Cómo uso la biblioteca pandas para leer datos en Python?
- ¿Cómo uso la biblioteca seaborn para visualizar datos?
- ¿Qué es la regresión lineal y cómo funciona?
- ¿Cómo entreno e interpreto un modelo de regresión lineal en scikit-learn?
- ¿Cuáles son algunas métricas de evaluación para problemas de regresión?
- ¿Cómo elijo qué características incluir en mi modelo?
Validación cruzada para ajuste de parámetros, selección de modelo y selección de características (vídeo, cuaderno)
- ¿Cuál es el inconveniente de utilizar el procedimiento de división tren/prueba para la evaluación del modelo?
- ¿Cómo supera esta limitación la validación cruzada K-fold?
- ¿Cómo se puede utilizar la validación cruzada para seleccionar parámetros de ajuste, elegir entre modelos y seleccionar funciones?
- ¿Cuáles son algunas posibles mejoras a la validación cruzada?
Búsqueda eficiente de parámetros de ajuste óptimos (vídeo, portátil)
- ¿Cómo se puede utilizar la validación cruzada K-fold para buscar un parámetro de ajuste óptimo?
- ¿Cómo se puede hacer este proceso más eficiente?
- ¿Cómo se buscan múltiples parámetros de ajuste a la vez?
- ¿Qué haces con esos parámetros de ajuste antes de hacer predicciones reales?
- ¿Cómo se puede reducir el gasto computacional de este proceso?
Evaluación de un modelo de clasificación (vídeo, cuaderno)
- ¿Cuál es el propósito de la evaluación de modelos y cuáles son algunos procedimientos de evaluación comunes?
- ¿Cuál es el uso de la precisión de la clasificación y cuáles son sus limitaciones?
- ¿Cómo describe una matriz de confusión el desempeño de un clasificador?
- ¿Qué métricas se pueden calcular a partir de una matriz de confusión?
- ¿Cómo se puede ajustar el rendimiento del clasificador cambiando el umbral de clasificación?
- ¿Cuál es el propósito de una curva ROC?
- ¿En qué se diferencia el área bajo la curva (AUC) de la precisión de la clasificación?
Creación de un flujo de trabajo de aprendizaje automático (vídeo, cuaderno)
- ¿Por qué debería utilizar un Pipeline?
- ¿Cómo se codifican funciones categóricas con OneHotEncoder?
- ¿Cómo se aplica OneHotEncoder a columnas seleccionadas con ColumnTransformer?
- ¿Cómo se construye y valida de forma cruzada un Pipeline?
- ¿Cómo se hacen predicciones sobre nuevos datos utilizando un Pipeline?
- ¿Por qué debería utilizar scikit-learn (en lugar de pandas) para el preprocesamiento?
Vídeo extra
En la conferencia PyCon 2016, impartí un tutorial de 3 horas que se basa en esta serie de videos y se centra en datos basados en texto . Puedes ver el vídeo tutorial en YouTube.
Estos son los temas que cubrí:
- Construcción de modelos en scikit-learn (actualización)
- Representar texto como datos numéricos
- Leer un conjunto de datos basado en texto en pandas
- Vectorizando nuestro conjunto de datos
- Construyendo y evaluando un modelo
- Comparando modelos
- Examinar un modelo para obtener más información
- Practicando este flujo de trabajo en otro conjunto de datos
- Ajuste del vectorizador (discusión)
Visite este repositorio de GitHub para acceder a los cuadernos de tutoriales y muchos otros recursos recomendados.