Validação K-Fold
Parte da seção Aprendizado supervisionado do Journey de Machine Learning da Coddy. Lição 37 de 58.
Este capítulo torna suas pontuações confiáveis. Ao final, você ajustará um modelo com gráficos como este:
Uma única divisão de teste pode dar sorte. A validação cruzada K-fold divide as linhas em folds, aqui em 5, e testa cada fold por vez, treinando com o restante:
Uma chamada executa as cinco, aqui para uma árvore com as flores de íris:
from sklearn.model_selection import cross_val_score
tree = DecisionTreeClassifier(random_state=0)
scores = cross_val_score(tree, X, y, cv=5)
print(np.round(scores, 3))
print(f"{scores.mean():.3f} {scores.std():.3f}")Isto imprime:
[0.967 0.967 0.9 0.967 1. ]
0.960 0.033Informe a média como a pontuação e o desvio padrão como o quanto ela oscila.
Desafio
MédioUma cervejaria de kombucha prevê quais lotes estragaram com base em 5 leituras de laboratório. Quão consistente é o modelo? O programa lê o número de folds; o código inicial gera os dados e o modelo.
- Faça a validação cruzada do modelo com esse número de folds.
- Imprima a acurácia de cada fold e, em seguida, a média e o desvio padrão, tudo com 3 casas decimais.
- Imprima o número do fold mais fraco, começando a contagem em 1.
Para outros lotes e 4:
Fold 1: 0.917
Fold 2: 0.933
Fold 3: 0.883
Fold 4: 0.917
Mean 0.912, std 0.018
Weakest fold: 3Experimente você mesmo
import numpy as np
from sklearn.datasets import make_classification
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
n_folds = int(input())
# Não altere as linhas abaixo: 240 lotes de kombucha, com 5 medições de laboratório cada; o rótulo 1 significa estragado
X, y = make_classification(n_samples=240, n_features=5, n_informative=3, n_redundant=0,
flip_y=0.08, class_sep=0.9, random_state=2)
model = LogisticRegression(max_iter=1000)
# Escreva seu código abaixo
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Aprendizado supervisionado
1Seu primeiro modelo
Aprendendo com exemplosConjuntos de treino e testeAjustar e preverAvaliar um modeloRecapitulação: classificador de sementes4Regressão logística
Previsões de sim ou nãoO limiar de decisãoPesos como evidênciasVárias classesRevisão: filtro de spam2Vizinhos Mais Próximos
Como o k-NN DecideEscolhendo kLimites de DecisãoEscalonamento para VizinhosRevisão: Vizinhos do Vinho5Avaliando Classificadores
A Matriz de ConfusãoPrecisão e RevocaçãoA Pontuação F1Classes DesbalanceadasCurvas ROCRecapitulação: Teste de Triagem8Validação Cruzada
Validação K-FoldComparando Modelos de Forma JustaBusca em GradeRevisão: Consertos de Skate11Projeto: Espécies de Pinguins
Conheça os PinguinsPrepare os DadosEscolha um ModeloAjuste o VencedorColoque o Modelo em Produção3Regressão Linear
Prevendo númerosVárias característicasMedindo errosGráficos de resíduosRevisão: aluguel de bicicletas6Árvores de Decisão
Árvores fazem perguntasLendo uma árvoreProfundidade da árvoreImportância das característicasRevisão: decisões de empréstimoPratique por conta própria: Compilador de Python online