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)kque deseja usar. - Depois, você pode gerar os índices dos subconjuntos de treinamento e teste usando o método
split(X, y). - A função
splitgera índices para treinamento e teste para cada uma daskpartes.
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.