Mi az a “ egység ” szórás?

Gyakori gyakorlat az adatok normalizálása az ideghálózat nulla középértékre és az “egység” szórásra, hogy csökkentse a robbanó és eltűnő gradiens hatásokat stb.

Mit jelent itt az “unit” std? Egy példa nagyon hasznos lehet.

Megjegyzések

  • Ez azt jelenti, hogy egyenlő 1-vel. Ahhoz, hogy megossza az értékeket az eredeti adatok szórásával . (A nulla átlag az átlag kivonásával jön létre.)

Válasz

Ez azt jelenti, hogy átalakítja az adatfunkcióit eredeti mértékegységeitől (mérföld, dollár, eltelt idő, …) a szórás mértékegységéig. Ahogy kérted, nagyon egyszerű példa következik:

Tegyük fel, hogy a ház árait két jellemző alapján kívánja megjósolni: a hálószobák száma (egész egység) és a méret (négyzetméter egységben kifejezve), például a fiktív adatmotor:

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

Figyelje meg, hogy az egyes jellemzőknek nagyon különböző az átlagos és a szórása

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

Kimenetek: mean=[ 1.83333333, 78.33333333]), std=[ 0.68718427, 24.94438258])

Észrevette, hogy a funkció mérete átlagosan több mint 30x nagyobb, mint a hálószoba száma, ez torzulásokat okoz egyes algoritmusok számításában (például ideghálók, svm , knn stb.) ahol egyes nagyobb értékű jellemzők teljesen uralják a többieket kisebb értékekkel. Ennek megoldására egy általános és nagyon hatékony gyakorlat az, ha az adatokat standard deviáció egységekké alakítjuk nulla átlaggal, vagyis kivonjuk az átlagot, és elosztjuk a szórással, mint ordít:

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

A X_t (X átalakítva) változó az Ön jellemzőit egységnyi szórásban, nulla átlaggal tartalmazza, nyomtatva X_t kapsz:

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

Nézd meg, hogy a két funkcióban szereplő számok ugyanolyan nagyságúak. Ha a X_t mean és std szót kinyomtatja, akkor a várt módon

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

kap.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük