Sobes.tech
Middle

Sayısal değerleri nasıl normalize eder ve uç değerlerin etkisini nasıl azaltırsınız?

sobes.tech yapay zeka

AI'dan gelen yanıt

Sayısal verileri normalize etmek ve aykırı değerlerin etkisini en aza indirmek için birkaç yaklaşım uygulanır:

  1. Veri dönüşümleri:

    • Logaritmik dönüşüm (log(x)) — asimetriyi azaltır ve büyük değerleri sıkıştırır.
    • Karekök veya ters dönüşüm — dağılımı normalize etmeye yardımcı olur.
    • Box-Cox dönüşümü — parametriktir, normal dağılıma yaklaşmak için en uygun parametreyi seçer.
    • Yeo-Johnson dönüşümü — Box-Cox’a benzer, negatif değerlerle de çalışır.
  2. Aykırı değerlerin işlenmesi:

    • Kısıtlama (capping) — değerleri yüzde 1 ve 99 periyotlarına sınırlar.
    • Aykırı değerlerin yerine koyma — medyan veya en yakın "normal" değerle değiştirme.
    • Dayanıklı ölçeklendirme yöntemleri kullanma — örneğin, sklearn’de RobustScaler, medyan ve çeyrekler arası uzaklığı kullanır.
  3. Ölçeklendirme ve normalize etme:

    • Dönüşümlerden sonra, ortalamayı çıkarıp standart sapmaya bölerek sıfır ortalamalı ve birim varyanslı veriler elde etmek için standartlaştırma uygulanabilir.

Python ve sklearn kütüphanesi kullanılarak örnek:

from sklearn.preprocessing import PowerTransformer, RobustScaler
import numpy as np

# Aykırı değer içeren örnek veriler
data = np.array([[1], [2], [3], [4], [100]])

# Normal dağılıma yaklaşmak için dönüşüm
pt = PowerTransformer(method='yeo-johnson')
data_transform = pt.fit_transform(data)

# Aykırı değerleri dikkate alan ölçeklendirme
scaler = RobustScaler()
data_scaled = scaler.fit_transform(data_transform)

print(data_scaled)

Bu şekilde, dönüşümler ve aykırı değerleri işleme yöntemleri kombinasyonu ile veriler daha normal bir dağılıma yaklaştırılabilir ve uç değerlerin etkisi azaltılabilir.