Ajuste de Hiperparámetros de un Estimador

Machine LearningMachine LearningBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Los hiperparámetros son parámetros que no se aprenden directamente por un estimador. Se pasan como argumentos al constructor de las clases de estimador. Ajustar los hiperparámetros de un estimador es un paso importante en la construcción de modelos de aprendizaje automático efectivos. Esto implica encontrar la combinación óptima de hiperparámetros que dé como resultado el mejor rendimiento del modelo.

Scikit-learn proporciona varias herramientas para buscar los mejores hiperparámetros: GridSearchCV y RandomizedSearchCV. En este laboratorio, recorreremos el proceso de ajuste de hiperparámetros utilizando estas herramientas.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/svm("Support Vector Machines") sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/model_selection("Model Selection") sklearn/UtilitiesandDatasetsGroup -.-> sklearn/datasets("Datasets") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/svm -.-> lab-71123{{"Ajuste de Hiperparámetros de un Estimador"}} sklearn/model_selection -.-> lab-71123{{"Ajuste de Hiperparámetros de un Estimador"}} sklearn/datasets -.-> lab-71123{{"Ajuste de Hiperparámetros de un Estimador"}} ml/sklearn -.-> lab-71123{{"Ajuste de Hiperparámetros de un Estimador"}} end

Importar las bibliotecas necesarias

Primero, debemos importar las bibliotecas necesarias para nuestro análisis. Utilizaremos sklearn.model_selection para realizar el ajuste de hiperparámetros.

import numpy as np
from sklearn.model_selection import GridSearchCV, RandomizedSearchCV

Cargar el conjunto de datos

A continuación, carguemos el conjunto de datos con el que trabajaremos. Para este ejercicio, podemos utilizar cualquier conjunto de datos que queramos.

from sklearn.datasets import load_iris

## Cargar el conjunto de datos iris
iris = load_iris()

## Dividir los datos en características y objetivo
X = iris.data
y = iris.target

Definir el estimador y la cuadrícula de parámetros

Ahora necesitamos definir el estimador que queremos ajustar y la cuadrícula de parámetros que queremos buscar. La cuadrícula de parámetros especifica los valores que queremos probar para cada hiperparámetro.

from sklearn.svm import SVC

## Crear una instancia del clasificador de vectores de soporte
svc = SVC()

## Definir la cuadrícula de parámetros
param_grid = {'C': [0.1, 1, 10, 100], 'gamma': [0.1, 0.01, 0.001], 'kernel': ['linear', 'rbf']}

Realizar búsqueda en cuadrícula con validación cruzada

La búsqueda en cuadrícula explora exhaustivamente todas las combinaciones posibles de hiperparámetros en la cuadrícula de parámetros especificada. Evalúa el rendimiento de cada combinación utilizando validación cruzada.

## Crear una instancia de GridSearchCV
grid_search = GridSearchCV(svc, param_grid, cv=5)

## Ajustar los datos para realizar la búsqueda en cuadrícula
grid_search.fit(X, y)

## Imprimir la mejor combinación de hiperparámetros
print('Mejores hiperparámetros:', grid_search.best_params_)

Realizar búsqueda aleatorizada con validación cruzada

La búsqueda aleatorizada toma una muestra aleatoria de un subconjunto de la cuadrícula de parámetros y evalúa el rendimiento de cada combinación utilizando validación cruzada. Es útil cuando el espacio de parámetros es grande y no es factible realizar una búsqueda exhaustiva.

## Crear una instancia de RandomizedSearchCV
random_search = RandomizedSearchCV(svc, param_grid, cv=5, n_iter=10, random_state=0)

## Ajustar los datos para realizar la búsqueda aleatorizada
random_search.fit(X, y)

## Imprimir la mejor combinación de hiperparámetros
print('Mejores hiperparámetros:', random_search.best_params_)

Resumen

En este laboratorio, aprendimos cómo ajustar los hiperparámetros de un estimador utilizando GridSearchCV y RandomizedSearchCV. Definimos el estimador y la cuadrícula de parámetros, y luego realizamos búsqueda en cuadrícula y búsqueda aleatorizada, respectivamente, para encontrar la mejor combinación de hiperparámetros. El ajuste de hiperparámetros es un paso importante en la construcción de modelos de aprendizaje automático para mejorar su rendimiento.