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 senaryoyu göz önünde bulundurun: özellikler:

  • X özelliği 154 ile 24.917.482 aralığı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:

  • Modellerin eğitim sırasında daha hızlı birleşmesine 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, performans yönetimi gibi daha gelişmiş Adagrad ve Adam bu soruna karşı koruma sağlayarak ve etkili öğrenme hızının zamanla değiştirilmesidir.
  • 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, İngilizcedeki sayı değil. Bir modeldeki değer kayan nokta hassasiyeti sınırı. Sistem, bunun yerine değeri NaN olarak ayarlar anlamına gelir. 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 olmadığında modelin çok dikkat etmesi gerekir veya farklı dillerdeki özelliklere yeterli düzeyde ilgi göstermeyen dar aralıklar.

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 normalleştirmenizi öneririz. city population. gibi

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 +5,0'dır.

A özelliği ve B özelliği nispeten dar olabilir. 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 toplam hasar nispeten küçük olacaktır; ancak, Yine de A Özelliği ile B Özelliğinin aynı ölçekte normalleştirilmesini öneririz. belki -1,0 ile +1,0 arasında bir değer olabilir.

Ş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
  • logaritma ölçeklendirme

Bu bölümde ayrıca kaydırma. Doğru olmasa da normalleştirme tekniğidir, kırpmak ahlaksız sayısal özellikleri aralıklarında görüntülenebilir.

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.

Doğrusal ölçeklendirme, aşağıdaki koşulların tamamı karşılandığında iyi bir seçimdir:

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

İnsan age değerinin 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, görece küçük bir aykırı değer yüzdesini içeriyor. Yaklaşık% 0,3'ü nüfus 100'ün üzerinde.
  • Bazı yaşlar diğerlerinden biraz daha iyi temsil edilse de, veri kümesinde tüm yaşlardan yeterli sayıda örnek bulunmalıdır.

Öğrendiklerinizi sınayın

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 olduğu standart sapmaların sayısıdır. Örneğin, ortalamadan büyük olan 2 standart sapma olan bir değer Z puanı +2,0. Ş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 adet histogramlar:

  • Solda, klasik bir normal dağılım.
  • 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. İkinci
           ilk grafiğin Z puanlı sürümünü içeren histogram
           dağılımının ortalaması 0, standart sapması ise 1'dir.
4. Şekil. Normal bir kampanya için ham veriler (sol) ve Z-puanı (sağ) karşılaştırması ya da

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ı da gerçekleşir. Bir histogram
            ham verilerin dağıtımı; diğer histogram ise
            dağılımını (ör. Z-puanı ölçeklendirmesiyle normalleştirildiğinde)
            İ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 bir dağılıma sahipse Z puanı iyi bir seçenektir veya dağılım normal dağılıma benzer.

Bazı dağılımların, büyük hacimleri içinde normal olabileceğini ancak yine de aşırı aykırı değerler içeriyor. Ö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 bu durumu ele almak için başka bir normalleştirme türünü (genellikle kırpma) kullanır.

Alıştırma: Öğrendiklerinizi sınayın

Modelinizin, yetişkinleri barındıran height adlı bir özellik üzerinde eğitildiğini varsayalım. 10 milyon kadının boyu. Z-puanı ölçeklendirmesi iyi bir normalleştirme olur mu height? 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 bir güç yasası dağıtımına uygun olduğunda günlük ölçeklendirme yararlı olur. 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 de hızlı bir şekilde düşer. 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 olan en düşük değerler yüksek Y.)
  • Çoğu filme verilen kullanıcı derecelendirmesi çok azdır. (X için yüksek değerler, düşük değerlere) Y.)

Günlük ölçeklendirme, dağıtımı değiştirir. Bu da modelin eğitilmesine daha iyi tahminlerde bulunmanıza olanak tanır.

Şekil 6. Ham veri ile ham veri günlüğünü karşılaştıran iki grafik.
            Ham veri grafiği, başta başlıkta verilen kullanıcı puanlarını, ardından
            bir soru geliyor. Günlük grafiğindeki dağılım daha eşittir.
Şekil 6. Ham dağıtımı günlüğüyle karşılaştırma.

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

  • Yayınlanan kitapların çoğunda az sayıda, belki bir veya iki yüz kopya satılır.
  • Bazı kitaplar binlerce olmak üzere orta sayıda kopya satar.
  • Yalnızca birkaç çok satan site bir milyondan fazla kopya 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ı logaritmak, görevi çok daha makul kılar. Örneğin, 100'ün günlüğü şu şekildedir:

  ~4.6 = ln(100)

1.000.000'un günlüğü ise şöyle olur:

  ~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 kitap kapağının yaklaşık üç kat daha büyük olduğunu düşünebilirsiniz. çok daha güçlü (bir şekilde) çok satan bir kitap kapağından daha güçlüdür.

Kırpma

Kırpma, Aşırılıkların etkisini en aza indirmenize yardımcı olabilir. Kısacası, kırpma genellikle Aykırı değerlerin değerini belirli bir maksimum değere (düşürür). Kırpma işlemi ancak yine de çok etkili olabilir.

Örneğin, roomsPerPerson adlı bir özellik içeren bir veri kümesi düşünün, oda sayısını (toplam odanın bölünen kişi sayısına göre) gösterilir. Aşağıdaki grafikte, Özellik değerlerinin% 99'u normal bir dağılıma uyuyor (kabaca, 1,8 ve 0,7'lik bir standart sapma). Ancak bu özellik, bazıları aşırı yüksek, birkaç farklılık var:

Şekil 7. Neredeyse tüm değerlerin bulunduğu odaPerPersoni
            0 ve 4 arasında kümelanmıştır, ancak
            kişi başı 17 odaya kadar çıkabiliyor
Şekil 7. Çoğunlukla normaldir ancak tamamen normal değildir.

Aşırılıkçılığın etkisini nasıl en aza indirebilirsiniz? Öncelikle histogram eşit dağılım, normal dağılım veya kuvvet yasası değildir ya da 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. Olay çan şeklindedir ancak 4.0 noktasında anormal bir tepe vardır
Şekil 8. 4,0'da kırpma özelliği değerleri.

Özellik değerinin 4.0'da kırpılması, modelinizin tüm 4,0'dan büyük değerlere sahiptir. Bunun yerine, daha yüksek olan tüm değerlerin 4.0 olan eski sürümler 4.0 oldu. Bu da 4.0 noktasındaki özel tepeyi açıklıyor. 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ğeri rastgele bir üst değere veya eşik değeri nedir? Evet.

Değerleri, diğer normalleştirme biçimlerini uyguladıktan sonra da kırpabilirsiniz. Örneğin, Z-puanı ölçeklendirmesini kullandığınızı ancak birkaç aykırı değerde mutlak değerleri 3'ten çok daha büyüktür. Bu durumda yapabilecekleriniz:

  • Tam olarak 3 olmak için 3'ten büyük olan Z puanlarını kırpın.
  • -3'ten düşük Z puanlarını kesip tam olarak -3 elde edin.

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 kullanıcılar arasında eşit olarak dağıtıldığında sabit bir aralık.
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

Bir özelliği normalleştirmeye en uygun teknik hangisidir? ne anlama geliyor?

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ını ölçeklendirme
Veri noktaları genellikle normal bir dağılıma sahiptir. Bu nedenle Z puanı bu da onları –3 ila +3 aralığına zorlar.
Lineer ölçeklendirme
Bu sayfadaki normalleştirme teknikleriyle ilgili tartışmaları gözden geçirin. yeniden deneyin.
Günlük ölçeklendirme
Bu sayfadaki normalleştirme teknikleriyle ilgili tartışmaları gözden geçirin. yeniden 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 (Santigrat) arasındadır:

  • Yılda bir veya iki kez, aşırı sıcak günlerde, temperature'de 31 ve 45 kaydedilir.
  • temperature aralığındaki her 1.000. nokta 1.000 olarak ayarlandı olduğunu unutmayın.

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

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

1.000 değeri hatadır ve kısaltıldı.

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.

Dikkat çeken içeriklerin fotoğrafını çekin
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.
.