Middle
Ինչպես նորմալացնել թվային արժեքները և նվազեցնել արտասովոր արժեքների ազդեցությունը:
sobes.tech AI
Պատասխան AI-ից
Նշանակալու համար թվային տվյալները նորմալ բաշխման և արտակարգ արժեքների ազդեցությունը նվազեցնելու համար կիրառվում են մի քանի մոտեցումներ:
-
Տվյալների փոխակերպումներ:
- Լոգարիթմական փոխակերպում (log(x)) — նվազեցնում է անհամաչափությունը և սեղմում մեծ արժեքները:
- Կвадրատայինարմատ կամ ** հակառակ փոխակերպում** — նույնպես օգնում են նորմալացնել բաշխումը:
- Box-Cox փոխակերպում — պարամետրային, գտնում է օպտիմալ պարամետրը նորմալ բաշխման մոտեցման համար:
- Yeo-Johnson փոխակերպում — նման է Box-Cox-ին, աշխատում է նաև բացասական արժեքների հետ:
-
Արտակարգ արժեքների մշակումը:
- Կտրում (capping) — սահմանափակում է արժեքները վերևից և ներքևից (օրինակ, 1% և 99% պերսենտիլներով):
- Արտակարգ արժեքների փոխարինում — օրինակ, մեդիան կամ ամենամոտ "նորմալ" արժեքը:
- Օգտագործում է ռոբաստ scaller մեթոդներ — օրինակ, sklearn-ում RobustScaler, որը օգտագործում է մեդիան և միջքարտիլային տարածքը:
-
Մասշտաբավորում և նորմալացում:
- Փոխակերպումներից հետո կարելի է կիրառել ստանդարտացում (միջինից հանելը և բաժանումը ստանդարտ շեղումով)՝ ստանալու տվյալներ զրո միջինով և միավոր տարբերությամբ:
Python և sklearn գրադարանի օրինակով՝
from sklearn.preprocessing import PowerTransformer, RobustScaler
import numpy as np
# Օրինակային տվյալներ արտակարգ արժեքներով
data = np.array([[1], [2], [3], [4], [100]])
# Փոխակերպում նորմալ բաշխման մոտեցման համար
pt = PowerTransformer(method='yeo-johnson')
transformed_data = pt.fit_transform(data)
# Մասշտաբավորում արտակարգ արժեքների հաշվարկով
scaler = RobustScaler()
scaled_data = scaler.fit_transform(transformed_data)
print(scaled_data)
Այս կերպ, փոխակերպումների և ռոբաստ scaller մեթոդների համադրությամբ, տվյալները կարող են մոտենալ ավելի նորմալ բաշխման և նվազեցնել արտակարգ արժեքների ազդեցությունը։