Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Validação Cruzada | Modelagem
Introdução ao Aprendizado de Máquina com Python

bookValidação Cruzada

A divisão treino-teste possui duas desvantagens:

  1. Menos dados de treinamento, o que pode reduzir a qualidade do modelo;
  2. Dependência da divisão aleatória, causando resultados instáveis. Para superar isso, utilizamos a validação cruzada.

Primeiro, divida todo o conjunto de dados em 5 partes iguais, conhecidas como folds.

Em seguida, utilize um fold como conjunto de teste e combine os folds restantes para formar o conjunto de treinamento.

Como em qualquer processo de avaliação, o conjunto de treinamento é utilizado para treinar o modelo, enquanto o conjunto de teste é utilizado para medir seu desempenho.

O processo é repetido para que cada partição sirva como conjunto de teste uma vez, enquanto as demais partições formam o conjunto de treinamento.

A validação cruzada produz múltiplas pontuações de acurácia—uma para cada divisão. Sua média representa o desempenho médio do modelo. Em Python, isso é calculado com cross_val_score().

Note
Nota

Você pode escolher qualquer número de divisões. Por exemplo, usar 10 divisões significa treinar em 9 partes e testar em 1. Isso é definido pelo parâmetro cv em cross_val_score().

1234567891011
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import cross_val_score df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Print the cross-val scores and the mean for KNeighborsClassifier with 5 neighbors scores = cross_val_score(KNeighborsClassifier(), X, y) print(scores) print(scores.mean())
copy

A validação cruzada é mais confiável, porém mais lenta, pois o modelo é treinado e avaliado n vezes. É amplamente utilizada na otimização de hiperparâmetros, onde a validação cruzada é repetida para cada valor de hiperparâmetro—por exemplo, testando múltiplos valores de k no k-NN. Isso auxilia na escolha da opção que apresenta o melhor desempenho de forma consistente.

question mark

Por que a validação cruzada pode ser preferida em relação à divisão treino-teste para avaliar o desempenho de um modelo de aprendizado de máquina?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 4

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 3.13

bookValidação Cruzada

Deslize para mostrar o menu

A divisão treino-teste possui duas desvantagens:

  1. Menos dados de treinamento, o que pode reduzir a qualidade do modelo;
  2. Dependência da divisão aleatória, causando resultados instáveis. Para superar isso, utilizamos a validação cruzada.

Primeiro, divida todo o conjunto de dados em 5 partes iguais, conhecidas como folds.

Em seguida, utilize um fold como conjunto de teste e combine os folds restantes para formar o conjunto de treinamento.

Como em qualquer processo de avaliação, o conjunto de treinamento é utilizado para treinar o modelo, enquanto o conjunto de teste é utilizado para medir seu desempenho.

O processo é repetido para que cada partição sirva como conjunto de teste uma vez, enquanto as demais partições formam o conjunto de treinamento.

A validação cruzada produz múltiplas pontuações de acurácia—uma para cada divisão. Sua média representa o desempenho médio do modelo. Em Python, isso é calculado com cross_val_score().

Note
Nota

Você pode escolher qualquer número de divisões. Por exemplo, usar 10 divisões significa treinar em 9 partes e testar em 1. Isso é definido pelo parâmetro cv em cross_val_score().

1234567891011
import pandas as pd from sklearn.neighbors import KNeighborsClassifier from sklearn.model_selection import cross_val_score df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins_pipelined.csv') # Assign X, y variables (X is already preprocessed and y is already encoded) X, y = df.drop('species', axis=1), df['species'] # Print the cross-val scores and the mean for KNeighborsClassifier with 5 neighbors scores = cross_val_score(KNeighborsClassifier(), X, y) print(scores) print(scores.mean())
copy

A validação cruzada é mais confiável, porém mais lenta, pois o modelo é treinado e avaliado n vezes. É amplamente utilizada na otimização de hiperparâmetros, onde a validação cruzada é repetida para cada valor de hiperparâmetro—por exemplo, testando múltiplos valores de k no k-NN. Isso auxilia na escolha da opção que apresenta o melhor desempenho de forma consistente.

question mark

Por que a validação cruzada pode ser preferida em relação à divisão treino-teste para avaliar o desempenho de um modelo de aprendizado de máquina?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 4
some-alt