Standaryzacja
Część sekcji Statystyka w uczeniu maszynowym ścieżki Machine Learning w Coddy. Lekcja 49 z 64.
Wiele modeli uczy się najlepiej, gdy każda cecha jest wyśrodkowana wokół 0 i ma odchylenie standardowe równe 1. Standaryzacja robi właśnie to: każda wartość staje się wynikiem z-score w swojej kolumnie.
Pięć dyń, masa w kg i szerokość w cm:
Operacja broadcasting standaryzuje jednocześnie każdą kolumnę:
pumpkins = np.array([[30, 60],
[8, 30],
[22, 55],
[40, 65],
[15, 40]])
z = (pumpkins - pumpkins.mean(axis=0)) / pumpkins.std(axis=0)
print(np.round(z.mean(axis=0), 2))
print(np.round(z.std(axis=0), 2))To wyświetla:
[0. 0.]
[1. 1.]Zaokrąglij przed sprawdzeniem: niezaokrąglona średnia równa 0 może zostać wyświetlona jako 2.22044605e-17, czyli drobny błąd zaokrąglenia.
W przeciwieństwie do min-max nie ma ustalonego zakresu: większość wartości mieści się między -2 a 2.
Wyzwanie
ŚredniNa farmie mlecznej zauważono nietypowe krowy. Każdy wiersz tablicy cows opisuje jedną krowę: mleko (litry dziennie), wagę (kg) i wiek (lata), nazwane w features. Program odczytuje pozycję krowy k.
- Uzupełnij
standardize(X). Linie sprawdzające wypisują następnie[0. 0. 0.]i[1. 1. 1.]. - Znajdź wynik z dla krowy
k, który jest najdalej od 0 (ignorując znak), i wypisz go w poniższej postaci, z dokładnością do 2 miejsc po przecinku.
Dla krowy z innej farmy:
Column means: [0. 0. 0.]
Column stds: [1. 1. 1.]
Cow 2 stands out by weight: 1.76 std above the herdSpróbuj swoich sił
import numpy as np
features = ["milk", "weight", "age"]
# Jeden wiersz na krowę: ilość mleka w litrach dziennie, masa w kg, wiek w latach
cows = np.array([[28, 610, 6],
[22, 540, 3],
[35, 680, 6],
[31, 590, 9],
[19, 650, 4],
[26, 520, 2],
[30, 600, 7]])
k = int(input())
# Zwraca X ze znormalizowanymi wszystkimi kolumnami: średnia 0 i odchylenie standardowe 1
def standardize(X):
# Zastąp poniższy wiersz kodem normalizującym
return X
# Nie zmieniaj trzech poniższych wierszy: sprawdzają twoją funkcję
z = standardize(cows)
print("Column means:", np.round(z.mean(axis=0), 2))
print("Column stds:", np.round(z.std(axis=0), 2))
# Napisz kod poniżej: co wyróżnia krowę k
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
1Położenie i rozproszenie
Średnia i medianaPercentyle i kwartyleWariancja i odchylenie standardowePróba czy populacja?Najczęściej występująca wartośćPodsumowanie: czasy dostaw4Próby i populacje
Populacja i próbaŚrednie z prób się różniąRozkład próbkowaniaWiększe próby, mniej szumuPodsumowanie: ankietowanie mieszkańców2Rozkłady
Histogramy gęstościKształty danychKrzywa normalnaReguła 68-95-99,7Wyniki standaryzowane (Z-scores)Podsumowanie: czas pracy baterii5Obserwacje odstające
Wykresy pudełkoweReguła IQRReguła Z-scorePostępowanie z obserwacjami odstającymiPodsumowanie: błędy czujników3Prawdopodobieństwo przez symulację
Prawdopodobieństwo jako częstośćPrawo wielkich liczbSumy oczekWartość oczekiwanaPrawdopodobieństwo warunkowePodsumowanie: szanse na stoisku z kośćmi6Relacje
Odczytywanie wykresów punktowychKorelacjaMacierz korelacjiMapy cieplne korelacjiKorelacja nie oznacza przyczynowościPodsumowanie: lody i słońce9Skalowanie cech
Dlaczego skalować cechySkalowanie min–maxStandaryzacjaStandardScalerPodsumowanie: partnerzy we wspinaczcePoćwicz samodzielnie: Kompilator Python online