Menu
CoddyTech

Ocena modelu

Część sekcji Uczenie nadzorowane ścieżki Machine Learning w Coddy. Lekcja 4 z 58.

Czy model jest dobry? Mówi o tym jego dokładność, czyli odsetek wierszy testowych, które klasyfikuje poprawnie. Porównaj ją z leniwym zgadywaniem:

Dwa słupki pokazujące dokładność na 50 testowych pożyczkach: zawsze zgadując, że płatność będzie terminowa, uzyskuje się wynik 0.78, a model k-NN uzyskuje wynik 0.88

78% wypożyczeń w ramach testu tej biblioteki zwrócono w terminie, więc wynik za odpowiadanie w terminie za każdym razem wynosi 0.78. To jest wartość bazowa.

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

To wypisuje 0.88, 0.88, 0.78. score przewiduje i zlicza w jednym wywołaniu; model bazowy zawsze podaje najczęściej występującą etykietę treningową.

Model zasługuje na swoje miejsce tylko wtedy, gdy osiąga lepsze wyniki niż punkt odniesienia.

challenge icon

Wyzwanie

Łatwy

Czujniki pszczelarki monitorują 160 uli w pliku hives.csv; swarm określa, czy w danym ulu doszło do rójki. Czy jeden czujnik może ją ostrzec? Kod początkowy odczytuje nazwę czujnika i dopasowuje model wyłącznie na podstawie danych z tego czujnika.

  1. Wypisz dokładność modelu na zbiorze testowym, zaokrągloną do 3 miejsc po przecinku.
  2. Wypisz wynik bazowy, podając etykietę, którą model zawsze przewiduje.
  3. Wypisz, czy model osiąga lepszy wynik.

Dla innej pasieki i zmiennej weight_change_kg:

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

Spróbuj swoich sił

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

# Jeden wiersz na ul: dane z jego czujników oraz informacja, czy doszło do rójki
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)

# Napisz swój kod poniżej
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Uczenie nadzorowane

Poćwicz samodzielnie: Kompilator Python online