Avaliar um modelo
Parte da seção Aprendizado supervisionado do Journey de Machine Learning da Coddy. Lição 4 de 58.
Um modelo é bom? Sua acurácia, a proporção de linhas de teste que ele acerta, diz. Compare-a com um palpite simplista:
78% dos empréstimos de teste desta biblioteca foram devolvidos no prazo, então responder “no prazo” todas as vezes resulta em 0.78. Essa é a linha de base.
from sklearn.metrics import accuracy_score
pred = model.predict(X_test)
print(accuracy_score(y_test, pred))
print(model.score(X_test, y_test))
common = y_train.value_counts().index[0]
print((y_test == common).mean())Isso imprime 0.88, 0.88, 0.78. score prevê e conta em uma única chamada; a linha de base sempre responde com o rótulo mais comum do conjunto de treinamento.
Um modelo só merece seu lugar se superar o modelo de referência.
Desafio
FácilOs sensores de uma apicultora monitoram 160 colmeias em hives.csv; swarm indica se cada colmeia enxameou. Um sensor pode alertá-la? O código inicial lê o nome de um sensor e ajusta um modelo usando apenas esse sensor.
- Imprima a acurácia de teste, arredondada para 3 casas decimais.
- Imprima a linha de base, indicando o rótulo que ela sempre prevê.
- Imprima se o modelo supera essa linha de base.
Para outro apiário e weight_change_kg:
Model on weight_change_kg: 0.775
Always "no": 0.7
Beats the baseline: yesExperimente você mesmo
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
# Uma linha por colmeia: seus sensores e se ela enxameou
hives = pd.read_csv("hives.csv")
sensor = input()
X = hives[[sensor]]
y = hives["swarm"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
model = KNeighborsClassifier()
model.fit(X_train, y_train)
# 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