Aprender los conceptos clave

1

Todo lo que aprenderás sobre MA con Scikit-Learn

2

¿Cómo aprenden las máquinas?

3

Problemas que podemos resolver con Scikit-learn

4

Las matemáticas que vamos a necesitar

Iniciar un proyecto con sklearn

5

Configuración de nuestro entorno Python

6

Instalación de librerías en Python

7

Datasets que usaremos en el curso

Optimización de features

8

¿Cómo afectan nuestros features a los modelos de Machine Learning?

9

Introducción al PCA

10

Preparación de datos para PCA e IPCA

11

Implementación del algoritmo PCA e IPCA

12

Kernels y KPCA

13

¿Qué es la regularización y cómo aplicarla?

14

Implementación de Lasso y Ridge

15

Explicación resultado de la implementación

16

ElasticNet: Una técnica intermedia

Regresiones robustas

17

El problema de los valores atípicos

18

Regresiones Robustas en Scikit-learn

19

Preparación de datos para la regresión robusta

20

Implementación regresión robusta

Métodos de ensamble aplicados a clasificación

21

¿Qué son los métodos de ensamble?

22

Preparación de datos para implementar métodos de ensamble

23

Implementación de Bagging

24

Implementación de Boosting

Clustering

25

Estrategias de Clustering

26

Implementación de Batch K-Means

27

Implementación de Mean-Shift

Optimización paramétrica

28

Validación de nuestro modelo usando Cross Validation

29

Implementación de K-Folds Cross Validation

30

Optimización paramétrica

31

Implementación de Randomized

32

Bonus: Auto Machine Learning

Salida a producción

33

Revisión de nuestra arquitectura de código

34

Importar y exportar modelos con Sklearn

35

Creación de una API con Flask para el modelo

36

Cierre del curso

37

Material adicional para consultar

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Optimización paramétrica

30/37
Recursos

Aportes 9

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Optimización de hiperparametros | Hyperparameter Optimization

Familiarizados con el concepto de Cross Validation vamos a utilizar este mismo principio de fondo para lograr automatizar un poco la selección y optimización de nuestros modelos.

Problema: Parece que encontramos un modelo de aprendizaje que parece funcionar, pero esto puede implicar que ahora tenemos que encontrar la optimización de cada uno de los parámetros de este modelo, encontrar el que mejor se ajuste y el que mejor resultado nos de.

  1. Es facil perderse entre los conceptos de tantos parámetros. Tenemos flexibilidad para algoritmos básicos de Machine Learning, pero facil perderse.
  2. Es difícil medir la sensibilidad de los mismos manualmente.
  3. Es COSTOSO, en tiempo humano y computacionalmente.

Scikit Learn nos ofrece enfoques para automatizar el proceso de optimización paramétrica. Existen 3 enfoques principales, estos son:

  1. Optimización manual

  2. Optimizacion por grilla de parámetros | GridSearchCV

  3. Optimizacion por búsqueda aleatorizada |
    .
    .
    Optimización manual

  4. Escoger el modelo que queremos ajustar.

  5. Buscar en la documentación de Scikit-Learn

  6. Identificar parámetros y ajustes. Parámetros que vamos a necesitar y cuáles son los posibles ajustes que vamos a requerir para cada uno de estos parámetros.

  7. Probar combinaciones una por una iterando a través de listas.
    .
    .
    Optimizacion por grilla de parámetros | GridSearchCV

Es una forma organizada, exhaustiva y sistematica de probar todos los parametros que le digamos que tenga que probar, con los respectivos rangos de valores que le aportemos.

  1. Definir una o varias métricas que queremos optimizar.
  2. Identificar los posibles valores que pueden tener los parámetros.
  3. Crear un diccionario de parámetros.
  4. Usar Cross Validation.
  5. Entrenar el modelo (e ir por un café)

La grilla de parámetros nos define GRUPOS DE PARÁMETROS que serán probados en todas sus combinaciones (Un grupo a la vez)

Ejemplo:


.
.

Optimizacion por búsqueda aleatorizada | RandomizedSearchCV

Si no tenemos tanto tiempo para una prueba tan exhaustiva o queremos combinaciones aleatorias usaremos este metodo. Es lo mismo que el caso anterior, pero busca de forma aleatoria los parametros y Scikit Learn selecciona los mejores de las combinaciones aleatorias que se hicieron.

En este método, definimos escalas de valores para cada uno de los parámetros seleccionados, el sistema probará varias iteraciones (Configurables según los recursos) y mostrará la mejor combinación encontrada.

Ejemplo:


.
.

GridSearchCV vs RandomizedSearchCV

  • GridSearchCV

    • Cuando se quiera realizar un estudio a fondo sobre las implicaciones de los parámetros.
    • Se tenga tiempo.
    • Se tenga poder de procesamiento.
  • RandomizedSearchCV

    • Cuando se quiera explorar posibles optimizaciones.
    • Haya poco tiempo.
    • Haya poco poder de procesamiento.

Todo super claro! Excelente explicación

También existen las alternativas HalvingGridSearch y HalvingRandomSearch. En resumen, son implantaciones que usan menos recursos al no entrenar con todos los datos en cada iteración. Mas información en: 11 Times Faster Hyperparameter Tuning with HalvingGridSearch.

En la imagen de busqueda por guillas, me parece que el parametro C debe cambiar a 1,10 y 100.

En el uso de GridSearch se puede iterar por distintos modelos y proporciones de Train/Test como en por ejemplo es ente clasificador obteniendo resultados como el siguiente:
.

En ingles, pero es un excelente canal:

https://www.youtube.com/watch?v=Gol_qOgRqfA&t=1182s

Esta genial la clase! Además en recursos hay otras clases relacionadas con este tema. Vale la pena explorar las

Optimización por Grilla de Parámetros (GridSearchCV):

La optimización por parrilla de parámetros es una técnica que automatiza la búsqueda de la mejor combinación de hiperparámetros para un modelo. Se proporciona una cuadrícula de valores posibles para cada hiperparámetro que se desea optimizar, y se realiza una búsqueda exhaustiva de todas las combinaciones posibles mediante validación cruzada para determinar cuál proporciona el mejor rendimiento.

Optimización por Búsqueda Aleatorizada (RandomizedSearchCV):

La optimización por búsqueda aleatoria es una técnica similar a la optimización por grilla de parámetros, pero en lugar de buscar todas las combinaciones posibles, selecciona aleatoriamente un subconjunto de combinaciones para evaluar. Esto es útil cuando la cuadrícula de búsqueda es muy grande y realizar una búsqueda exhaustiva sería costosa en términos de tiempo y recursos computacionales.

  • La optimización manual es un enfoque práctico pero laborioso, mientras que GridSearchCV y RandomizedSearchCV automatizan la búsqueda de hiperparámetros, siendo RandomizedSearchCV más eficiente cuando la búsqueda es costosa. Estas técnicas son esenciales para ajustar los modelos de aprendizaje automático para obtener un rendimiento óptimo.

Una pregunta a la hora de trabajar profesionalmente usando Machine Learning, ¿se deja de lado utilizar el enfoque de Hold-Out y solo nos concentramos en Cross Validation, para aquellos que apenas estamos aprendiendo?