Sobes.tech
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:

  1. 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.
  2. 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į.
  3. 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ą.