Menu
CoddyTech

Wariancja i odchylenie standardowe

Część sekcji Statystyka w uczeniu maszynowym ścieżki Machine Learning w Coddy. Lekcja 3 z 64.

.std() to typowa odległość od średniej. Tutaj obliczono ją ręcznie dla pięciu espresso:

Pięć espresso jako kropki wokół pomarańczowej linii średniej na poziomie 26 sekund. Szary odcinek łączy każdą kropkę z linią i jest opisany odchyleniem: -2, +1, -1, +4 i -2

Każda różnica względem średniej to odchylenie. Odchylenia znoszą się do 0, więc podnieś je do kwadratu, a następnie oblicz ich średnią: to wariancja.

shots = np.array([24, 27, 25, 30, 24])
deviations = shots - shots.mean()
variance = (deviations ** 2).mean()
print(deviations)
print(variance, np.round(np.sqrt(variance), 2))

To wyświetla:

[-2.  1. -1.  4. -2.]
5.2 2.28

Jej pierwiastek kwadratowy, czyli odchylenie standardowe, zamienia sekundy do kwadratu z powrotem na sekundy: 2.28. np.var(a) i np.std(a) obliczają każdą z tych wartości w jednym wywołaniu.

Cecha o odchyleniu standardowym równym 0 nigdy się nie zmienia, więc nie przekazuje modelowi żadnych informacji.

challenge icon

Wyzwanie

Łatwy

Kontrola jakości sprawdza, jak równomiernie maszyna napełnia butelki sokiem. Kod startowy odczytuje sześć objętości w ml i wyświetla wynik zwracany przez spread_by_hand(a) obok wyniku np.std. Uzupełnij tę funkcję tak, aby zwracała:

  1. wariancję: średnią kwadratów odchyleń od średniej wartości a,
  2. odchylenie standardowe, czyli pierwiastek kwadratowy z wariancji.

Dla objętości 1004, 996, 1011, 993, 1002 i 998:

Variance: 34.56 ml squared
Std: 5.88 ml
Same as np.std: True

Spróbuj swoich sił

import numpy as np

values = []
for i in range(6):
    values.append(int(input()))
volumes = np.array(values)


# Zwraca wariancję i odchylenie standardowe tablicy a
def spread_by_hand(a):
    # Wpisz tutaj swój kod, a następnie zwróć obie wartości zamiast 0, 0
    return 0, 0


# Nie zmieniaj poniższych wierszy
variance, std = spread_by_hand(volumes)
print(f"Variance: {np.round(variance, 2)} ml squared")
print(f"Std: {np.round(std, 2)} ml")
print("Same as np.std:", np.round(std, 2) == np.round(np.std(volumes), 2))
quiz iconSprawdź się

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

Wszystkie lekcje w sekcji Statystyka w uczeniu maszynowym

Poćwicz samodzielnie: Kompilator Python online