Ajustando Hiperparâmetros de um Estimator

Beginner

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

Introdução

Os hiperparâmetros são parâmetros que não são aprendidos diretamente por um estimador. Eles são passados como argumentos para o construtor das classes de estimador. A afinação dos hiperparâmetros de um estimador é uma etapa importante na construção de modelos de machine learning eficazes. Envolve encontrar a combinação ótima de hiperparâmetros que resulta no melhor desempenho do modelo.

O Scikit-learn fornece várias ferramentas para procurar os melhores hiperparâmetros: GridSearchCV e RandomizedSearchCV. Neste laboratório, iremos percorrer o processo de afinação de hiperparâmetros utilizando estas ferramentas.

Dicas da Máquina Virtual

Após o arranque da máquina virtual, clique no canto superior esquerdo para mudar para a aba Notebook para aceder ao Jupyter Notebook para a prática.

Por vezes, pode ser necessário esperar alguns segundos para o Jupyter Notebook terminar de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se tiver problemas durante o aprendizado, não hesite em contactar o Labby. Forneça feedback após a sessão e resolveremos prontamente o problema para si.

Importar as bibliotecas necessárias

Primeiro, precisamos importar as bibliotecas necessárias para nossa análise. Usaremos sklearn.model_selection para realizar a afinação de hiperparâmetros.

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

Carregar o conjunto de dados

Em seguida, vamos carregar o conjunto de dados com o qual trabalharemos. Podemos usar qualquer conjunto de dados de nossa escolha para este exercício.

from sklearn.datasets import load_iris

## Carregar o conjunto de dados iris
iris = load_iris()

## Dividir os dados em recursos e alvo
X = iris.data
y = iris.target

Definir o estimador e a grade de parâmetros

Agora precisamos definir o estimador que queremos afinar e a grade de parâmetros que queremos pesquisar. A grade de parâmetros especifica os valores que queremos testar para cada hiperparâmetro.

from sklearn.svm import SVC

## Criar uma instância do classificador de vetores de suporte
svc = SVC()

## Definir a grade de parâmetros
param_grid = {'C': [0.1, 1, 10, 100], 'gamma': [0.1, 0.01, 0.001], 'kernel': ['linear', 'rbf']}

Executar busca em grade com validação cruzada

A busca em grade pesquisa exaustivamente todas as combinações possíveis de hiperparâmetros na grade de parâmetros especificada. Avalia o desempenho de cada combinação usando validação cruzada.

## Criar uma instância de GridSearchCV
grid_search = GridSearchCV(svc, param_grid, cv=5)

## Ajustar os dados para executar a busca em grade
grid_search.fit(X, y)

## Imprimir a melhor combinação de hiperparâmetros
print('Melhores hiperparâmetros:', grid_search.best_params_)

Executar busca aleatorizada com validação cruzada

A busca aleatorizada amostra aleatoriamente um subconjunto da grade de parâmetros e avalia o desempenho de cada combinação usando validação cruzada. É útil quando o espaço de parâmetros é grande e a busca exaustiva não é viável.

## Criar uma instância de RandomizedSearchCV
random_search = RandomizedSearchCV(svc, param_grid, cv=5, n_iter=10, random_state=0)

## Ajustar os dados para executar a busca aleatorizada
random_search.fit(X, y)

## Imprimir a melhor combinação de hiperparâmetros
print('Melhores hiperparâmetros:', random_search.best_params_)

Resumo

Neste laboratório, aprendemos como ajustar os hiperparâmetros de um estimador usando GridSearchCV e RandomizedSearchCV. Definimos o estimador e a grade de parâmetros e, em seguida, realizamos a busca em grade e a busca aleatorizada, respectivamente, para encontrar a melhor combinação de hiperparâmetros. O ajuste de hiperparâmetros é uma etapa importante na construção de modelos de aprendizado de máquina para melhorar seu desempenho.