Classe “KFold”
A classe KFold
faz parte do módulo sklearn.model_selection
no scikit-learn e é usada para dividir um conjunto de dados em k partes (ou partições) para a realização da validação cruzada. A validação cruzada é uma técnica crucial para avaliar o desempenho de modelos de aprendizado de máquina de forma robusta, especialmente quando há limitação de dados.
Funcionamento da classe KFold
:
- Você instancia a classe
KFold
, especificando o número de partes (fold)k
que deseja usar. - Depois, você pode gerar os índices dos subconjuntos de treinamento e teste usando o método
split(X, y)
. - A função
split
gera índices para treinamento e teste para cada uma dask
partes.
Principais parâmetros:
n_splits
: Número de partes da validação cruzada (k).shuffle
: SeTrue
, os índices são embaralhados aleatoriamente antes de dividir.random_state
: Semente aleatória para garantir a reprodutibilidade.
Exemplo:
from sklearn.model_selection import KFold
# Definindo o número de dobras (partições)
n_splits = 10
# Instanciando a classe KFold
kf = KFold(n_splits=n_splits, shuffle=True, random_state=42)
# Dividindo os dados em subconjuntos de treinamento e teste
for train_index, test_index in kf.split(X):
X_train, X_test = X[train_index], X[test_index]
y_train, y_test = y[train_index], y[test_index]
A classe KFold
é especialmente útil quando se deseja controlar a divisão dos dados em partes personalizadas ou quando se quer combinar a validação cruzada com outras técnicas, como ajuste de hiperparâmetros. Ela permite uma avaliação mais realista e robusta do desempenho do modelo, evitando vieses provenientes da divisão aleatória dos dados.