Rückblick: Skateboard-Reparaturen
Teil des Abschnitts Überwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 40 von 58.
Aufgabe
MittelDer Verleih eines Skateparks möchte ein Modell, das zurückgegebene Boards erkennt, die repariert werden müssen. Das Programm liest das größte auszuprobierende k ein.
- 25 % als Testzeilen abspalten (
random_state=0). - Für jedes k in
ksk-NN anhand der Trainingszeilen kreuzvalidieren (cv=5). Die Mittelwerte als Balken darstellen und das beste k ausgeben. - Für einen Baum eine Gittersuche über
max_depthunddepthsdurchführen (cv=5,random_state=0) und das beste Ergebnis ausgeben. - Der höhere Mittelwert gewinnt:
Winner: k-NNoderWinner: treemit der jeweiligen Testgenauigkeit ausgeben.
Für einen anderen Park und 13:
Best k: 13 (mean 0.785)
Best depth: 5 (mean 0.763)
Winner: k-NN, test accuracy 0.822Coddy beschreibt dann dein Diagramm. Das von Coddy sieht so aus:
Probier es selbst
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
# Der größte auszuprobierende k-Wert, zum Beispiel 15
max_k = int(input())
# Eine Zeile pro zurückgegebenem Skateboard: Ausleihen seit der letzten Wartung, Verschleißwerte von 0 bis 10
# und Risse im Deck; 1 in repair bedeutet, dass es in die Werkstatt kam
boards = pd.read_csv("skateboards.csv")
features = ["rentals", "wheel_wear", "bearing_noise", "grip_wear", "truck_wobble", "deck_cracks"]
X = boards[features]
y = boards["repair"]
# Jedes Feature ist eine kleine Anzahl oder ein Bewertungswert, daher braucht k-NN hier keine Skalierung
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) # beginnt bei 0.6, damit kleine Unterschiede sichtbar werden
# Schreibe deinen Code unten
Alle Lektionen in Überwachtes Lernen
1Dein erstes Modell
Aus Beispielen lernenTrainings- und TestdatensätzeAnpassen und VorhersagenEin Modell bewertenRückblick: Saatgutsortierer4Logistische Regression
Ja-Nein-VorhersagenDie EntscheidungsschwelleGewichte als IndizienMehrere KlassenRückblick: Spamfilter2Nächste Nachbarn
So entscheidet k-NNk wählenEntscheidungsgrenzenSkalierung für NachbarnRückblick: Wein-Nachbarn5Klassifikatoren bewerten
Die KonfusionsmatrixPräzision und TrefferquoteDer F1-ScoreUnausgewogene KlassenROC-KurvenRückblick: Screeningtest8Kreuzvalidierung
K-Fold-ValidierungModelle fair vergleichenGittersucheRückblick: Skateboard-Reparaturen3Lineare Regression
Zahlen vorhersagenMehrere MerkmaleFehler messenResiduenplotsZusammenfassung: Fahrradverleih6Entscheidungsbäume
Bäume stellen FragenEinen Baum lesenBaumtiefeMerkmalswichtigkeitRückblick: Kreditentscheidungen9Ensembleverfahren
Random ForestsWarum Random Forests funktionierenGradient BoostingRückblick: Förster des Waldes12Abschließende Herausforderungen
Diabetes-FortschrittKreditgenehmigungHandgeschriebene ZiffernKundenabwanderungÜbe selbstständig: Online-Python-Compiler