Riepilogo: riparazioni di skateboard
Fa parte della sezione Apprendimento supervisionato del percorso Machine Learning di Coddy. Lezione 40 di 58.
Sfida
MedioIl banco noleggi di uno skate park vuole un modello che individui le tavole restituite che necessitano di riparazioni. Il programma legge il valore massimo di k da provare.
- Separa il 25% dei dati come righe di test (
random_state=0). - Per ogni k in
ks, esegui la convalida incrociata di k-NN sulle righe di training (cv=5). Disegna le medie come barre e stampa il valore migliore di k. - Con una ricerca a griglia, cerca il valore migliore di
max_depthper un albero tra i valori didepths(cv=5,random_state=0). - Vince la media più alta: stampa
Winner: k-NNoppureWinner: treecon la relativa accuratezza sul test.
Per un altro parco e con 13:
Best k: 13 (mean 0.785)
Best depth: 5 (mean 0.763)
Winner: k-NN, test accuracy 0.822Coddy poi descrive il tuo grafico. Il loro è simile a questo:
Provalo tu
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
# Il valore massimo di k da provare, ad esempio 15
max_k = int(input())
# Una riga per ogni skateboard restituito: noleggi dall'ultima manutenzione, punteggi di usura da 0 a 10
# e crepe nella tavola; 1 in repair indica che è stato portato in officina
boards = pd.read_csv("skateboards.csv")
features = ["rentals", "wheel_wear", "bearing_noise", "grip_wear", "truck_wobble", "deck_cracks"]
X = boards[features]
y = boards["repair"]
# Ogni caratteristica è un conteggio o un punteggio basso, quindi qui k-NN non richiede uno scaler
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) # parte da 0.6 per rendere visibili le piccole differenze
# Scrivi il tuo codice qui sotto
Tutte le lezioni di Apprendimento supervisionato
1Il tuo primo modello
Imparare dagli esempiInsiemi di addestramento e testAdattare e prevedereValutare un modelloRiepilogo: Ordinatore di semi4Regressione logistica
Previsioni sì o noLa soglia decisionaleI pesi come evidenzePiù classiRiepilogo: filtro antispam2Vicini più prossimi
Come decide k-NNScegliere kConfini decisionaliNormalizzare le scale per i viciniRiepilogo: vicini del vino5Misurare i classificatori
La matrice di confusionePrecisione e richiamoIl punteggio F1Classi sbilanciateCurve ROCRiepilogo: test di screening8Convalida incrociata
Validazione K-foldConfronto equo tra modelliRicerca a grigliaRiepilogo: riparazioni di skateboard11Progetto: specie di pinguini
Incontra i pinguiniPrepara i datiScegli un modelloOttimizza il miglioreDistribuisci il modello3Regressione lineare
Prevedere numeriPiù caratteristicheMisurare gli erroriGrafici dei residuiRiepilogo: noleggio di biciclette6Alberi decisionali
Gli alberi fanno domandeLeggere un alberoProfondità dell’alberoImportanza delle caratteristicheRiepilogo: decisioni sui prestitiEsercitati da solo: Compilatore Python online