Co je “ jednotka ” standardní odchylka?

Běžnou praxí je normalizace dat pro trénování neurální sítě na nulovou střední hodnotu a „jednotkovou“ směrodatnou odchylku ke snížení explodujících a mizejících efektů gradientu atd.

Co zde znamená „jednotka“? Příklad by byl opravdu užitečný.

Komentáře

  • Znamená to rovné 1. Chcete-li získat, vydělíte hodnoty standardní odchylkou původních dat . (Nulový průměr pochází z odečtení průměru.)

Odpověď

Znamená to, že převádíte své datové funkce z původních jednotek (míle, dolary, uplynulý čas, …) na jednotky standardní odchylky. Jak jste požadovali, následuje velmi jednoduchý příklad:

Předpokládejme, že chcete předpovědět ceny domů ze dvou funkcí: počet pokojů (celá jednotka) a velikost (v jednotkách čtverečních metrů), jako jsou fiktivní data níže:

import numpy as np X = np.array([[1, 65],[3, 130],[2, 80],[2, 70],[1, 50]]) 

Všimněte si, že každá funkce má velmi odlišnou střední a standardní odchylku

print("mean={}, std{}".format(X.mean(axis=0), X.std(axis=0)) 

Výstupy: mean=[ 1.83333333, 78.33333333]), std=[ 0.68718427, 24.94438258])

Všimněte si, že velikost objektu má průměr a je více než 30x větší než počet ložnic, což při některých výpočtech algoritmů (jako jsou neuronové sítě, svm) způsobí zkreslení , knn atd.), kde některé funkce s vyššími hodnotami zcela dominují ostatním s menšími hodnotami. Běžným a velmi efektivním postupem je transformace dat na jednotky standardní odchylky s nulovým průměrem, to znamená, že odečtete průměr a vydělíte směrodatnou odchylku, například níže:

X_t = (X - X.mean(axis=0))/X.std(axis=0) 

Proměnná X_t (transformovaná X) obsahuje vaše funkce ve standardních odchylkách jednotek s nulovým průměrem, tiskne X_t dostanete:

array([[-1.21267813, -0.53452248], [ 1.69774938, 2.07127462], [ 0.24253563, 0.06681531], [ 0.24253563, -0.33407655], [-1.21267813, -1.13586028], [ 0.24253563, -0.13363062]]) 

Podívejte se, jak mají čísla v obou funkcích stejnou velikost. Pokud vytisknete X_t mean a std, dostanete

mean=[ 1.11022302e-16 2.08166817e-16], std=[ 1. 1.] 

podle očekávání.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *