Sayısal veri: Normalleştirme

Verilerinizi istatistiksel ve görselleştirme teknikleriyle inceledikten sonra verilerinizi, modelinizin eğitilmesine yardımcı olacak şekilde dönüştürmelisiniz. çeşitliliğini dikkate almıyor. Amacı normalleştirme, benzer bir ölçekte olmasını sağlıyor. Örneğin, aşağıdaki iki özelliği ele alalım:

  • X özelliği 154 ile 24.917.482 arasındadır.
  • Y özelliği, 5 ila 22 aralığını kapsar.

Bu iki özellik çok farklı aralıkları kapsar. Normalleştirme sizi etkileyebilir X ve Y, böylece benzer bir aralığı (belki 0 ile 1 arasında) kapsarlar.

Normalleştirme şu faydaları sağlar:

  • Eğitim sırasında modellerin daha hızlı yakınlaşmasına yardımcı olur. Farklı özelliklerin farklı aralıkları olduğunda, gradyan iniş "geri dönen" daha yavaş yakınlaşma anlamına gelir. Bununla birlikte, Adagrad ve Adam gibi daha gelişmiş optimizatörler, etkili öğrenme hızını zaman içinde değiştirerek bu soruna karşı koruma sağlar.
  • Modellerin daha iyi tahminler elde etmesine yardımcı olur. Farklı özelliklerin farklı aralıkları olduğunda, bu, biraz daha az yararlı tahminlerde bulunabilir.
  • Özellik değerleri çok yüksek olduğunda "NaN tuzağından" kaçınmanıza yardımcı olur. NaN, not a number (sayı değil) ifadesinin kısaltmasıdır. Bir modeldeki değer, kayan nokta hassasiyet sınırını aştığında sistem, değeri bir sayı yerine NaN olarak ayarlar. Modeldeki bir sayı NaN olduğunda, model de sonunda NaN'ye dönüşür.
  • Modelin her özellik için uygun ağırlıkları öğrenmesine yardımcı olur. Özellik ölçeklendirmesi olmadan model, geniş aralıklara sahip özelliklere çok fazla, dar aralıklara sahip özelliklere ise yeterince dikkat etmez.

Sayısal özellikleri, farklı alanları kapsayacak şekilde normalleştirmenizi öneririz. farklı aralıklar (örneğin, yaş ve gelir) olabilir. Ayrıca, geniş bir aralığı kapsayan tek bir sayısal özelliği (ör. city population.) normalleştirmenizi öneririz.

Aşağıdaki iki özelliği göz önünde bulundurun:

  • A özelliğinin en düşük değeri -0,5, en yüksek değeri +0,5'tir.
  • B özelliğinin en düşük değeri -5,0, en yüksek değeri ise +5,0'tır.

A ve B özellikleri nispeten dar aralıklara sahiptir. Ancak, B adlı özelliğin aralığı, A Özelliğinin süresinden 10 kat daha geniştir. Bu nedenle:

  • Eğitimin başında model, A Özelliğinin on kat daha fazla olduğunu varsayar daha "önemli" Özellikten B daha fazla.
  • Eğitim olması gerekenden daha uzun sürer.
  • Elde edilen model yetersiz olabilir.

Normalleştirme yapılmamasından kaynaklanan genel hasar nispeten küçük olsa da A ve B özelliklerini aynı ölçeğe (ör. -1,0 ila +1,0) normalleştirmenizi öneririz.

Şimdi, aralıklar arasında daha fazla uyumsuzluk olan iki özelliği düşünün:

  • C özelliğinin en düşük değeri -1, en yüksek değeri +1'dir.
  • D özelliğinin en düşük değeri +5000, en yüksek değeri +1.000.000.000'dur.

C ve D özelliğini normalleştirmezseniz modeliniz olabileceğini unutmayın. Ayrıca eğitim, süreç boyunca birbirinden tamamen uzaklaşmak zorunda kalabilirsiniz.

Bu bölümde, üç popüler normalleştirme yöntemi ele alınmaktadır:

  • doğrusal ölçeklendirme
  • Z puanını ölçeklendirme
  • günlük ölçeklendirme

Bu bölümde ayrıca kaydırma. Gerçek bir normalleştirme tekniği olmasa da kırpma, düzensiz sayısal özellikleri daha iyi modeller oluşturan aralıklara dönüştürür.

Lineer ölçeklendirme

Doğrusal ölçeklendirme (daha yaygın olarak ölçeklendirme olarak kısaltılmış), kayan nokta değerlerinin doğal aralıklarını standart bir aralığa böler (genellikle 0 ila 1 veya -1'den +1'e getirin.

Aşağıdaki koşulların tümü karşılanıyorsa doğrusal ölçeklendirme iyi bir seçimdir:

  • Verilerinizin alt ve üst sınırları zamanla fazla değişmez.
  • Özellik çok az sayıda aykırı değer içerir veya hiç aykırı değer içermez ve bu aykırı değerler aşırı değildir.
  • Özellik, içerdiği aralıkta yaklaşık olarak eşit bir şekilde dağıtılmıştır. Yani histogram, çoğu değer için kabaca eşit çubuklar gösterir.

age adlı kullanıcının bir özellik olduğunu varsayalım. Doğrusal ölçeklendirme, iyi bir normalleştirmedir age için teknik çünkü:

  • Yaklaşık alt ve üst sınırlar 0 ile 100 arasındadır.
  • age, aykırı değerlerin nispeten küçük bir yüzdesini içeriyor. Nüfusun yalnızca yaklaşık %0,3'ü 100 yaşın üzerinde.
  • Belirli yaş grupları diğerlerinden biraz daha iyi temsil edilse de büyük bir veri kümesi tüm yaş gruplarına ait yeterli sayıda örnek içermelidir.

Alıştırma: Anladığınızdan emin olun

Modelinizde, ağda bulunan net_worth adlı bir özelliğin değer katarlar. Doğrusal ölçeklendirme iyi bir normalleştirme olur mu net_worth? Neden evet veya neden hayır?

Z puanını ölçeklendirme

Z puanı, bir değerin ortalamadan sapma sayısını ifade eder. Örneğin, ortalamadan 2 standart sapma daha büyük bir değerin Z puanı +2,0'dır. Şundan küçük 1,5 standart sapma olan bir değer: ortalamanın Z puanı -1,5'tir.

Bir özelliği Z-puanı ölçeklendirme ile temsil etmek, o özelliğin Özellik vektörindeki Z puanı. Örneğin, aşağıdaki şekilde iki histogram gösterilmektedir:

  • Sol tarafta klasik bir normal dağılım gösterilmektedir.
  • Sağda, aynı dağılım Z puanı ölçeklendirmesiyle normalleştirilmiştir.
Şekil 4. İki histogram: her ikisi de
           görebilirsiniz. Ham içeren ilk histogram
           verilerinin ortalaması 200, standart sapma değeri ise 30'dur. İlk dağılımın Z puanı sürümünü içeren ikinci histogramin ortalaması 0 ve standart sapması 1'dir.
Şekil 4. Normal dağılım için ham veri (sol) ve Z puanı (sağ).

Z-puanı ölçeklendirmesi de bu tür veriler için iyi bir seçimdir. , son derece normal bir dağılıma sahiptir.

Şekil 5. Aynı şekle sahip, her biri dik bir şekilde iki histogram
            bir platoya yükselir ve ardından görece hızlı bir inişi izler.
            azalması gerekir. Bir histogram, ham verilerin dağılımını gösterir. Diğer histogram ise Z puanı ölçeğiyle normalleştirildiğinde ham verilerin dağılımını gösterir.
            İki histogramın X eksenindeki değerler çok farklıdır.
            Ham veri histogramı,0 ile 29.000 arasında bir alanı kapsarken,
            Z puanı ölçeklendirilmiş histogram -1 ile yaklaşık +4,8 aralığında değişir.
Şekil 5. Bir için ham veri (sol) ve Z puanı ölçeklendirmesi (sağ) klasik olmayan normal dağılım kullanılır.

Veriler normal dağılım veya normal dağılıma benzer bir dağılım izliyorsa z-skoru iyi bir seçimdir.

Bazı dağılımların, aralıklarının büyük kısmında normal olsa bile aşırı aykırı değerler içerebileceğini unutmayın. Örneğin, geleneksel projelerin neredeyse bir net_worth özelliğindeki puanlar 3 standart sapmaya sorunsuz bir şekilde sığabilir, ancak bu özelliğe verilebilecek birkaç örnek, yüzlerce standart sapma yardımcı olur. Bu gibi durumlarda, Z puanı ölçeklendirmesini başka bir normalleştirme biçimiyle (genellikle kırpma) birleştirerek bu durumu çözebilirsiniz.

Alıştırma: Anladığınızdan emin olun

Modelinizin, on milyon yetişkin kadının boylarını içeren height adlı bir özellik üzerinde eğitildiğini varsayalım. Z puanı ölçeklendirmesi, height için iyi bir normalleştirme tekniği mi? Neden evet veya neden hayır?

Günlük ölçeklendirme

Günlük ölçeklendirme, ham değerin logaritmasını hesaplar. Teoride, logaritma herhangi bir taban olabilir; pratikte, günlük ölçeklendirmesi genellikle doğal logaritma (ln).

Veriler kuvvet yasası dağılımına uygun olduğunda günlük ölçeklendirme faydalıdır. Basitçe ifade etmek gerekirse güç yasası dağılımı aşağıdaki gibi görünür:

  • Düşük X değerleri, Y gibi çok yüksek değerlere sahip.
  • X değerleri arttıkça Y değerleri hızla azalır. Sonuç olarak, X yüksek değerleri Y çok düşük olur.

Film derecelendirmeleri, güç yasası dağılımına iyi bir örnektir. Sonraki şekil, bildirim:

  • Bazı filmler çok sayıda kullanıcı oyu alır. (X'ün düşük değerleri Y'un yüksek değerlerine sahiptir.)
  • Çoğu filme verilen kullanıcı derecelendirmesi çok azdır. (X için yüksek değerler, düşük değerlere) Y.)

Log ölçeklendirme, dağılımı değiştirir. Bu da daha iyi tahminler yapacak bir modelin eğitilmesine yardımcı olur.

Şekil 6. Ham veri ile ham veri günlüğünü karşılaştıran iki grafik.
            Ham veri grafiğinde, başında çok sayıda kullanıcı derecelendirmesi ve ardından uzun bir kuyruk gösterilir. Günlük grafiğindeki dağılım daha eşittir.
Şekil 6. Ham bir dağıtımı günlük kaydıyla karşılaştırma.

İkinci örnek olarak kitap satışları, güç yasası dağılımına uygundur çünkü:

  • Yayınlanan çoğu kitabın çok az sayıda kopyası satılır. Bu sayı belki bir veya iki yüzdür.
  • Bazı kitaplar binlerce olmak üzere orta sayıda kopya satar.
  • Yalnızca birkaç çok satan kitap bir milyondan fazla satabilir.

İlişkiyi bulmak için doğrusal bir modeli eğittiğinizi Örneğin, kitap kapakları gibi. Ham değerler üzerine eğitilen bir doğrusal model milyonlarca satış yapan kitapların kapaklarıyla ilgili bir şeyler bulmak zorundayız. bu da yalnızca 100 kopya satan kitap kapaklarından 10.000 daha güçlüdür. Ancak tüm satış rakamlarını logaritmik ölçeklendirmek, görevi çok daha uygulanabilir hale getirir. Örneğin, 100 sayısının logaritması:

  ~4.6 = ln(100)

1.000.000 sayısının logaritması ise:

  ~13.8 = ln(1,000,000)

Yani 1.000.000'un günlüğü, 100'ün logaritmasından yalnızca üç kat daha büyüktür. En çok satan bir kitabın kapağının, az satan bir kitabın kapağına kıyasla (bir açıdan) yaklaşık üç kat daha güçlü olabileceğini tahmin edebilirsiniz.

Kırpma

Kırpma, bir teknikle Aşırılıkların etkisini en aza indirmenize yardımcı olabilir. Özetlemek gerekirse, kırpma genellikle aykırı değerlerin değerini belirli bir maksimum değerle sınırlandırır (azaltır). Kırpma, tuhaf bir fikir olsa da çok etkili olabilir.

Örneğin, çeşitli evlerdeki oda sayısını (toplam oda sayısı, ev sakinlerinin sayısına bölünür) temsil eden roomsPerPerson adlı bir özellik içeren bir veri kümesi düşünün. Aşağıdaki grafik, özellik değerlerinin %99'unun normal dağılıma (yaklaşık 1,8 ortalama ve 0,7 standart sapma) uygun olduğunu gösterir. Ancak bu özellikte, bazıları aşırı olan birkaç aykırı değer bulunur:

Şekil 7. Neredeyse tüm değerlerin 0 ile 4 arasında gruplandırıldığı ancak kişi başına 17 odaya kadar uzanan çok uzun bir kuyruğun bulunduğu roomsPerPerson grafiği
Şekil 7. Çoğunlukla normaldir ancak tamamen normal değildir.

Bu uç değerlerin etkisini nasıl en aza indirebilirsiniz? Bu histogram eşit dağılım, normal dağılım veya kuvvet yasası dağılımı değildir. Maksimum değeri sınırlar veya klip eklerseniz ne olur? roomsPerPerson isteğe bağlı bir değerde mi, örneğin 4,0 mı?

Tüm değerlerin 0 ile 0 arasında olduğu odaPerPerson grafiği
            4.0. Nokta grafiği çan şeklindedir ancak 4,0 değerinde anormal bir tepe vardır
Şekil 8. Özellik değerlerini 4,0'ta kırpma.

Özellik değerinin 4.0'da kırpılması, modelinizin tüm 4,0'dan büyük değerlere sahiptir. Bunun yerine, 4,0'dan büyük olan tüm değerlerin 4,0 olduğu anlamına gelir. Bu, 4,0'taki tuhaf tepeyi açıklar. Karşılığında ölçeklenmiş özellik kümesi artık orijinal verilere göre daha kullanışlı hale geliyor.

Bir saniye bekleyin. Her aykırı değer için rastgele bir üst eşiğe inebilir misiniz? Model eğitirken evet.

Değerleri, diğer normalleştirme biçimlerini uyguladıktan sonra da kırpabilirsiniz. Örneğin, Z-skoru ölçeklendirmesini kullandığınızı ancak birkaç aykırı değerin mutlak değerlerinin 3'ten çok daha büyük olduğunu varsayalım. Bu durumda şunları yapabilirsiniz:

  • 3'ten büyük Z puanlarını tam 3 olacak şekilde kırpın.
  • -3'ten düşük Z puanlarını tam olarak -3 olacak şekilde kırpın.

Kırpma, modelinizin önemsiz verileri fazla dizine eklemesini önler. Ancak, Bazı aykırı değerler gerçekten önemlidir; bu nedenle, klipleri dikkatli bir şekilde kırpın.

Normalleştirme tekniklerinin özeti

Normalleştirme tekniğiFormülNe zaman kullanılır?
Lineer ölçeklendirme $$ x' = \frac{x - x_{min}}{x_{max} - x_{min}} $$ Özellik sabit bir aralıkta eşit olarak dağıtıldığında
Z puanını ölçeklendirme $$ x' = \frac{x - μ}{σ}$$ Özellik dağılımının aşırı aykırı değerler içermediğinde.
Günlük ölçeklendirme $$ x' = log(x)$$ Özellik, güç yasasına uygun olduğunda
Kırpma Eğer $x > max$, $x olarak ayarla = maks.$
Eğer $x < min$, $x olarak ayarla = dk.$
Özellik aşırı aykırı değerler içerdiğinde.

Alıştırma: Bilginizi test edin

Aşağıdaki dağılımı olan bir özelliği normalleştirmek için en uygun teknik hangisidir?

0 - 0 aralığında değerlere sahip bir veri kümesini gösteren histogram
          200.000. Aralık için veri noktası sayısı kademeli olarak artar
          0&#39;dan 100.000&#39;e kadar düşer, ardından 100.000&#39;den
          200.000.

Z puanı ölçeklendirmesi
Veri noktaları genellikle normal bir dağılıma uygun olduğundan Z puanı ölçeği bunları -3 ile +3 aralığına zorlar.
Lineer ölçeklendirme
Bu sayfada normalleştirme teknikleriyle ilgili tartışmaları inceleyip tekrar deneyin.
Günlük ölçeklendirme
Bu sayfada normalleştirme teknikleriyle ilgili tartışmaları inceleyip tekrar deneyin.
Kırpma
Bu sayfadaki normalleştirme teknikleriyle ilgili tartışmaları gözden geçirin. yeniden deneyin.

Bir veri merkezinin çalışma kabiliyetini veri merkezi içinde ölçülen sıcaklığa göre verimlilik artışı sağlar. Veri kümenizdeki temperature değerlerinin neredeyse tamamı 15 ile 30 (Celcius) arasındadır. Aşağıdakiler istisnadır:

  • Yılda bir veya iki kez, aşırı sıcak günlerde temperature'te 31 ile 45 arasında birkaç değer kaydedilir.
  • temperature içindeki her 1.000. nokta, gerçek sıcaklık yerine 1.000 değerine ayarlanır.

Bu yaklaşım, müşteri için makul bir normalleştirme temperature silinsin mi?

Aykırı değerleri 31 ile 45 arasında çıkarın ancak aykırı değerleri 1.000 değeri

1.000 olan değerler hatalıdır ve kırpılmak yerine silinmelidir.

31 ile 45 arasındaki değerler geçerli veri noktalarıdır. Kırpma işlemi, bu değerler için iyi bir fikir olabilir; veri kümesi, bu sıcaklık aralığında yeterli sayıda örnek içermiyor doğru tahminlerde bulunacak şekilde eğitilmesidir. Ancak çıkarım sırasında, bu nedenle kırpılan modelin 35 derece, 45 derece.

Tüm aykırı değerleri kırpın
Bu sayfadaki normalleştirme teknikleriyle ilgili tartışmaları gözden geçirin. yeniden deneyin.
Aykırı değerlerin tümünü silin
Bu sayfadaki normalleştirme teknikleriyle ilgili tartışmaları gözden geçirin. yeniden deneyin.
31 ile 45 arasındaki aykırı değerleri silin ancak değerleri görebilirsiniz.
Bu sayfadaki normalleştirme teknikleriyle ilgili tartışmaları gözden geçirin. yeniden deneyin.