Middle
Kaip normalizuoti skaitines reikšmes ir sumažinti išskirtinių reikšmių įtaką?
sobes.tech AI
Atsakymas iš AI
Norint paversti skaitinius duomenis į normalųjį pasiskirstymą ir sumažinti išskirtinių reikšmių įtaką, taikomi keli metodai:
-
Duomenų transformacijos:
- Logaritminė transformacija (log(x)) — sumažina asimetriją ir suspaudžia dideles reikšmes.
- Kvadratinis šaknis arba atvirkštinė transformacija — taip pat padeda normalizuoti pasiskirstymą.
- Box-Cox transformacija — parametrinė, parenka optimalų parametrą artėjimui prie normaliojo pasiskirstymo.
- Yeo-Johnson transformacija — analogiška Box-Cox, veikia ir su neigiamomis reikšmėmis.
-
Išskirtinių reikšmių apdorojimas:
- Apribojimas (capping) — reikšmių apribojimas viršuje ir apačioje (pavyzdžiui, 1% ir 99% percentiliais).
- Išskirtinių reikšmių keitimas — pavyzdžiui, mediana arba artimiausia "normalioji" reikšmė.
- Patikimų mastelio keitimo metodų naudojimas — pavyzdžiui, sklearn bibliotekos RobustScaler, kuris naudoja medianą ir tarpinį interkvartilį.
-
Mastelio keitimas ir normalizavimas:
- Po transformacijų galima taikyti standartizaciją (vidurkio atėmimą ir standartinio nuokrypio dalijimą), kad gautume duomenis su nuliniu vidurkiu ir vienodais dispersijos parametrais.
Pavyzdys naudojant Python ir sklearn biblioteką:
from sklearn.preprocessing import PowerTransformer, RobustScaler
import numpy as np
# Duomenys su išskirtinėmis reikšmėmis
data = np.array([[1], [2], [3], [4], [100]])
# Transformacija artėjimui prie normaliojo pasiskirstymo
pt = PowerTransformer(method='yeo-johnson')
ndata_transformed = pt.fit_transform(data)
# Mastelio keitimas atsižvelgiant į išskirtines reikšmes
scaler = RobustScaler()
ndata_scaled = scaler.fit_transform(data_transformed)
print(data_scaled)
Taip sujungus transformacijas ir išskirtinių reikšmių apdorojimo metodus, duomenys gali būti paversti arčiau normaliojo pasiskirstymo ir sumažinti ekstremalių reikšmių įtaką.