Revisão: Consertos de Skate
Parte da seção Aprendizado supervisionado do Journey de Machine Learning da Coddy. Lição 40 de 58.
Desafio
MédioO balcão de aluguel de um parque de skate quer um modelo que identifique os skates devolvidos que precisam de conserto. O programa lê o maior valor de k a ser testado.
- Separe 25% das linhas para teste (
random_state=0). - Para cada k em
ks, faça validação cruzada do k-NN nas linhas de treinamento (cv=5). Mostre as médias em barras e imprima o melhor k. - Faça uma busca em grade pela
max_depthde uma árvore entre os valores dedepths(cv=5,random_state=0) e imprima o melhor valor. - O que tiver a maior média vence: imprima
Winner: k-NNouWinner: treecom sua acurácia no teste.
Para outro parque e 13:
Best k: 13 (mean 0.785)
Best depth: 5 (mean 0.763)
Winner: k-NN, test accuracy 0.822Em seguida, Coddy descreve seu gráfico. O deles é assim:
Experimente você mesmo
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split, cross_val_score, GridSearchCV
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier
# O maior k a testar, como 15
max_k = int(input())
# Uma linha por skate devolvido: aluguéis desde a última manutenção, pontuações de desgaste de 0 a 10
# e rachaduras no shape; 1 em repair significa que foi para a oficina
boards = pd.read_csv("skateboards.csv")
features = ["rentals", "wheel_wear", "bearing_noise", "grip_wear", "truck_wobble", "deck_cracks"]
X = boards[features]
y = boards["repair"]
# Cada feature é uma contagem ou pontuação pequena, então k-NN não precisa de escalonamento aqui
ks = list(range(1, max_k + 1, 2))
depths = [2, 3, 4, 5, 6, 7, 8]
fig, ax = plt.subplots()
ax.set_title("Skateboard Repairs: Accuracy by k")
ax.set_xlabel("k (neighbors)")
ax.set_ylabel("Mean CV accuracy")
ax.set_xticks(ks)
ax.set_ylim(0.6, 0.9) # começa em 0.6 para que pequenas diferenças fiquem visíveis
# Escreva seu código abaixo
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