On yleistä käytäntöä normalisoida tiedot hermoverkon kouluttamiseksi nollakeskiarvoon ja ”yksikön” keskihajonta vähentämään räjähtäviä ja katoavia kaltevuusvaikutuksia jne.
Mitä ”unit” std tarkoittaa tässä? Esimerkki olisi todella hyödyllinen.
Kommentit
- Se tarkoittaa yhtä kuin 1. Saadaksesi että jaat arvot alkuperäisten tietojen keskihajonnalla . (Nollakeskiarvo saadaan vähentämällä keskiarvo.)
Vastaa
Se tarkoittaa, että muunnat dataominaisuuksiasi. alkuperäisistä yksiköistään (mailit, dollarit, kulunut aika, …) keskihajonnan yksikköihin. Pyyntöösi seuraa hyvin yksinkertainen esimerkki:
Oletetaan, että haluat ennustaa asuntojen hinnat kahdesta ominaisuudesta: makuuhuoneiden lukumäärä (kokonaislukuyksikkö) ja koko (neliömetriyksikköinä), kuten kuvitteellinen datakuva:
import numpy as np X = np.array([[1, 65],[3, 130],[2, 80],[2, 70],[1, 50]])
Huomaa, että jokaisella ominaisuudella on hyvin erilaiset keskiarvot ja keskihajonta
print("mean={}, std{}".format(X.mean(axis=0), X.std(axis=0))
Lähdöt: mean=[ 1.83333333, 78.33333333]), std=[ 0.68718427, 24.94438258])
Huomattu, että ominaisuuden koko on keskimäärin ja vakio yli 30 kertaa suurempi kuin makuuhuoneen määrä, tämä aiheuttaa vääristymiä joissakin algoritmilaskelmissa (kuten hermoverkot, svm , knn jne.), joissa jotkut ominaisuus, joilla on suuremmat arvot, hallitsevat täysin muita, joilla on pienemmät arvot. Sen ratkaisemiseksi, että yleinen ja erittäin tehokas käytäntö on muuntaa tiedot keskihajonnan yksiköiksi nollakeskiarvolla, eli vähennät keskiarvon ja jaat sen keskihajonnalla, kuten karjua:
X_t = (X - X.mean(axis=0))/X.std(axis=0)
Muuttuja X_t
(X muunnettu) sisältää ominaisuutesi yksikön keskihajonnoissa nollakeskiarvolla, tulostamalla X_t
saat:
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]])
Katso, kuinka molempien ominaisuuksien luvuilla on kaikki sama suuruusluku. Jos tulostat X_t
mean ja std, saat nyt
mean=[ 1.11022302e-16 2.08166817e-16], std=[ 1. 1.]
odotetulla tavalla.