Menu
CoddyTech

Ein Modell bewerten

Teil des Abschnitts Überwachtes Lernen der Machine Learning-Journey von Coddy. Lektion 4 von 58.

Ist ein Modell gut? Seine Genauigkeit, also der Anteil der Testzeilen, bei denen es richtig liegt, gibt Aufschluss. Vergleiche sie mit einer einfachen Schätzung:

Zwei Balken zur Genauigkeit bei 50 Testkrediten: Immer pünktlich zu raten ergibt 0.78, das k-NN-Modell erreicht 0.88

78 % der Testausleihen dieser Bibliothek kamen pünktlich zurück, daher ergibt es eine Bewertung von 0,78, immer pünktlich zu antworten. Das ist die Baseline.

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())

Dies gibt 0.88, 0.88, 0.78 aus. score sagt voraus und zählt in einem Aufruf; die Baseline gibt immer das häufigste Trainingslabel aus.

Ein Modell verdient seinen Platz nur, wenn es die Baseline übertrifft.

challenge icon

Aufgabe

Einfach

Die Sensoren einer Imkerin überwachen 160 Bienenstöcke in hives.csv; swarm gibt an, ob ein Bienenstock geschwärmt hat. Kann ein Sensor sie warnen? Der Starter liest den Namen eines Sensors ein und trainiert ein Modell ausschließlich mit diesem Sensor.

  1. Gib dessen Testgenauigkeit, auf 3 Dezimalstellen gerundet, aus.
  2. Gib die Baseline aus und nenne dabei das Label, das sie immer vorhersagt.
  3. Gib aus, ob das Modell die Baseline übertrifft.

Für einen anderen Bienenstand und weight_change_kg:

Model on weight_change_kg: 0.775
Always "no": 0.7
Beats the baseline: yes

Probier es selbst

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

# Eine Zeile pro Bienenstock: seine Sensoren und ob er geschwärmt hat
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)

# Schreibe deinen Code unten
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Überwachtes Lernen

Übe selbstständig: Online-Python-Compiler