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" ÖzelliktenB
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 bulunannet_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.
Z-puanı ölçeklendirmesi de bu tür veriler için iyi bir seçimdir. , son derece normal bir dağılıma sahiptir.
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ıranheight
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çaY
değerleri de hızlı bir şekilde düşer. Sonuç olarak,X
yüksek değerleriY
ç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üksekY
.) - Ç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.
İ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:
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ı?
Ö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ği | Formül | Ne 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ıkta. |
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 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
silinsin mi?
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.