Validação cruzada usando sklearn
Como explicado no Capítulo 2, sobreajustar o conjunto de dados é um problema comum em analytics. Isso acontece quando um modelo aprende os dados “de cor”: tem ótimo desempenho no conjunto em que foi treinado, mas não generaliza bem fora dele.
Embora a técnica de dividir em treino/teste que você aprendeu no Capítulo 2 garanta que o modelo não sobreajuste o conjunto de treino, a otimização de hiperparâmetros pode levar ao sobreajuste do componente de teste, já que consiste em ajustar o modelo para obter os melhores resultados de previsão no conjunto de teste. Por isso, é recomendável validar o modelo em diferentes conjuntos de teste. A validação cruzada k-fold permite fazer isso:
- divide o conjunto de dados em conjuntos de treino e de teste
- ajusta o modelo, faz previsões e calcula uma métrica (você pode especificar se quer accuracy, precision, recall…)
- repete o processo k vezes no total
- retorna a média das 10 pontuações
Neste exercício, você vai usar validação cruzada no nosso conjunto de dados e avaliar os resultados com a função cross_val_score.
Este exercício faz parte do curso
HR Analytics: prevendo rotatividade de funcionários em Python
Instruções do exercício
- Importe a função para implementar validação cruzada,
cross_val_score(), do módulosklearn.model_selection. - Imprima a pontuação de validação cruzada do seu modelo, especificando 10 folds com o hiperparâmetro
cv.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Import the function for implementing cross validation
from sklearn.model_selection import ____
# Use that function to print the cross validation score for 10 folds
print(____(model,features,target,____=10))