blog posts

Python’da özellik ölçeklendirmeyi öğrenme — Özellik Ölçeklendirme kılavuzu

Python ölçeklendirmeyi Mevcut verilerin çoğunun kullanılmadan önce işlenmesi gerekir ve doğrudan kullanılamaz.Python ölçeklendirmeyi Veri madenciliği ve makine öğrenimi projelerinde veri ön işleme içinsıklıkla kullanılan süreçlerden biri de “Feature Scaling” ya da “Data Normalization” olarak adlandırılan “Feature Scaling”dir.) Bu yazıda, Python’da özellik ölçeklendirmenin eğitimi ve uygulanması ele alınmıştır.

Özellik ölçeklendirme nedir ve kullanımı nedir?

Özellik ölçeklendirme kavramını daha iyi anlamak ve özellik ölçeklendirmenin ne olduğu sorusuna cevap verebilmek için bir örnek vermek daha doğru olacaktır.

Bu örnekte aşağıdaki gibi 3 sütun ve 10 satırdan oluşan bir veri kümesi olduğu varsayılmıştır:

Yaş Ağırlık Yükseklik
23 154.25 67.75
22 173,25 72.25
22 154 66.25
26 184.75 72.25
24 184.25 71.25
24 210.25 74.75
26 181 69.75
25 176 72.5
25 191 74
23 198.25 73.5

Bu veri seti üzerinde genel bir kontrol yapılırsa, ilk sütunun 23 ile 26 arasında sayılar içerdiği anlaşılır; İkinci sütun ise 154 ile 210.45 arasındaki sayıları içerir.

Verilerin ölçeği arasındaki bu fark, genellikle verilerin yeniden ölçeklendirilmesini veya bunları çözmek için özellik ölçeklemesini gerektiren sorunlar yaratır.

Özellik ölçeklendirme yöntemleri nelerdir?

Özellik ölçeklendirme için en sık kullanılan yöntemlerden 3 tanesi şu şekildedir:

  • Minimum-Maksimum Ölçeklendirme (Min Maks Ölçeklendirme | Min-Maks Normalleştirme)
  • Standart Ölçeklendirme
  • Güçlü Ölçeklendirme

Şimdi, Python’daki özellik ölçekleme yöntemlerinin her biri tanıtıldı.

Min Maks özellik ölçeklendirmesi nedir?

Min Max özellik ölçeklendirme yönteminde, verinin çarpılıp 2 sayıya bölünmesi ile özellik ölçeklendirmesi 0 ile 1 arasında ayarlanır ve bu değer aşağıdaki şekilde açıklanabilir:

=BenBen

Bu şekilde, veri kümesindeki bir özellik için tüm veriler sıfır ile bir arasında ayarlanır. Şimdi Python’da özellik ölçeklendirme eğitimi yazısının devamında standart ölçeklendirme yönteminin tanıtımı ve açıklaması ele alınmıştır.

Standart özellik ölçeklendirmeyle tanışın

Standart özellik ölçekleme yönteminde varyans ve ortalama kullanılır. Veriler standart şekilde değişiklik yapılarak ortalaması sıfır, varyansı bir olan bir dağılıma ulaşır. Her özellik verisinin ölçeklendirilmesi, standart özellik ölçeklendirme yöntemiyle aşağıdaki şekilde yapılır:

=Ben

Ölçekleme yönteminde, minimum ve maksimum verilerin standart özelliği belirli bir sayıya ayarlanmaz ve ortalama ve varyansın ayarlanmasına odaklanır.

  • Önerilen makale: Varyans ve standart sapma Sade bir dille (+ ücretsiz eğitim videosu)

Tutarlı özellik ölçeklendirme nedir?

Robust ölçeklendirme yönteminde verilerin birinci, ikinci ve üçüncü çeyrekleri kullanılır. Bu ölçeği değiştirme veya özelliği ölçeklendirme yöntemi, aykırı verilerin olduğu durumlarda çok verimli olacaktır. Bu dönüşüm için matematiksel ilişki aşağıdaki gibidir:

Bu yöntemde medyan sıfır olarak alınır ve birinci çeyrek ile üçüncü çeyrek arasındaki mesafe bir birime eşit olur.

Şimdi Python programlama ortamına atlamanın ve özellik ölçeklendirme yöntemlerinin her birini incelemenin zamanı geldi.

Python’da özellik ölçeklendirmenin uygulanması

Python’da özellik ölçeklendirmeyi (Python’da Özellik Ölçeklendirme) uygulamak için önce gerekli kitaplıklar çağrılmalıdır. Bu nedenle, bu makalenin bir sonraki bölümünde, kitaplıkların çağrılması ile ilgili kodlar sunulmaktadır.

Python’da özellik ölçeklendirmeyi uygulamak için gerekli kitaplıkları çağırma

Özellik ölçeklendirmeyi kodlamak ve uygulamak için, aşağıdakileri yapmak üzere kitaplıklar çağrılmalıdır:

  1. Dizilerle çalışma
  2. Grafikler
  3. Veri ön işleme

Bu nedenle, Python’da özellik ölçeklendirmeyi uygulamak için aşağıdaki kitaplıklardan herhangi biri çağrılmalıdır:

  1. Numpy kitaplığı
  2. Matplotlib kitaplığı
  3. Scikit-Learn kitaplığı

Python’da özellik ölçeklendirmeyi uygulamak için gerekli kütüphaneleri çağırma ile ilgili kodlar aşağıdaki gibidir:

import numpy as np
import matplotlib.pyplot as plt
import sklearn.preprocessing as pp

Şimdi gerekli kütüphaneleri çağırdıktan sonra programlama ortamında gerekli veri setini oluşturmaya sıra geldi. Bu nedenle aşağıda, Python’da özellik ölçeklendirmenin uygulanması için veri setinin hazırlanması ele alınmıştır.

Python’da özellik ölçeklendirmeyi uygulamak için veri kümeleri oluşturma

Python’da özellik ölçeklendirmeyi uygulamak için veri kümeleri oluşturmak şu şekilde yapılır:

Features = ['Age', 'Weight', 'Height']
X = np.array([[23, 154.25, 67.75],
             [22, 173.25, 72.25],
             [22, 154, 66.25],
             [26, 184.75, 72.25],
             [24, 184.25, 71.25],
             [24, 210.25, 74.75],
             [26, 181, 69.75],
             [25, 176, 72.5],
             [25, 191, 74],
             [23, 198.25, 73.5]])

Yukarıdaki kodlarda görüldüğü gibi gerekli veri seti bir dizi olarak tanımlanmıştır. Ayrıca bir veri dağılım grafiği çizebilirsiniz.

Bir veri dağıtım diyagramı çizin

Python’da özellik ölçeklendirmeyi uygulamak için oluşturulan veri dağıtım şemasının çizilmesi şu şekilde yapılır:

for i, f in enumerate(Features):
    plt.subplot(1, len(Features), i+1)
    plt.hist(X[:, i], bins=4)
    plt.xlabel(f)
    plt.ylabel('N')

plt.show()

Yukarıdaki kodlarda veri setindeki her özellik (sütun) için ayrı bir grafik (Subplot) oluşturulur ve o grafiğe karşılık gelen özelliğin histogramı çizilir. Python’da özellik ölçeklendirmeyi gerçekleştirmek için oluşturulan grafiğin çizilmesi ve verilerin görselleştirilmesi ile ilgili kodların çıktısı aşağıdaki gibidir:

Python'da özellik ölçeklendirmeyi uygulamak için oluşturulan verilerin grafiğini çizin

Verileri göstererek ve bir grafik çizerek, her özelliğin dağılım aralığının ve dağılım şeklinin nasıl olduğu görülebilir. Artık oluşturulan veri setinin her bir özelliği üzerinde “Min Max Scaler” (Min Max Scaler) uygulaması gerçekleştirilmiştir.

Python’daki özelliklerde minimum-maks ölçek ayarlayıcının uygulanması

“Min-Max Scaler” veya “Min-Max Scaler”ın özellikler üzerinde uygulanması şu şekilde yapılır:

Scaler1 = pp.MinMaxScaler()
X1 = Scaler1.fit_transform(X)

Yukarıdaki kodlarda önce bir ölçekleyici oluşturulur ve daha sonra bu ölçek değişikliğinin çıktısı X1’de depolanır . Artık özelliklerdeki değişiklikleri görmek için veri grafiğini yeniden çizebilirsiniz. Yeni tablo şu şekilde:

Python'da Min-Max ölçek ayarlayıcıyı uyguladıktan sonra veri kümesinin grafiği

Yukarıdaki şemada da görülebileceği gibi, tüm özelliklerin değerleri sıfır ile bir arasında değişmektedir. Şimdi Standart Ölçekleyiciyi uygulama zamanı.

Python’daki özniteliklere standart bir ölçekleyici uygulama

Bir önceki yönteme benzer olarak bu kez standart tipte (Standard Scaler) bir terazi ayarlayıcı şu şekilde oluşturulur ve bundan sonra bu terazi ayarlayıcı veri üzerinde gerçeklenecek ve sonuç X 2 değişkeninde saklanacaktır :

Scaler2 = pp.StandardScaler()
X2 = Scaler2.fit_transform(X)

Şimdi yapılan değişiklikleri görmek için veriler bir kez daha görselleştirilebilir ve dağılım grafiği çizilebilir. Bu şema aşağıdaki resimde olacaktır:

Python'da standart ölçeklendirme ayarlayıcıyı uyguladıktan sonra veri kümesi tablosu

Yukarıdaki şemada, standart özellik ölçeklendirmenin uygulanmasıyla, veri kümesindeki her özellik için minimum ve maksimum aralığın farklı olduğu görülebilir. Standart ölçekli veriler için ortalama ve varyans hesaplanarak ortalamaların 0’a çok yakın olduğu ve varyansların 1 olarak ayarlandığı görülmektedir. X 2 için özelliklerin ortalamasının ve varyansının hesaplanması şu şekilde yapılır:

M = np.mean(X2, axis=1)
V = np.var(X2, axis=1)

print(f'{M = }')
print(f'{V = }')

Yukarıdaki kodun çıktısı aşağıdaki gibidir:

=([0.00000000+00,6.66133815-16,1.07691633-15])

=([1.,1.,1.,])

Bu şekilde, belirtildiği gibi, ortalamaların yüksek doğrulukla 0’a yakın olduğu ve varyansların 1’e ayarlandığı görülebilir. Bu yöntemin “Standart Ölçekleyici” olarak adlandırılmasının nedeni, standart dağılım fonksiyonuna eşit olan varyans değeri ve ortalaması ile ilgilidir.

Şimdi Python’da özellik ölçeklemenin üçüncü yöntemini uygulama zamanı. Bu nedenle, aşağıda tutarlı ölçek düzenleyicinin uygulanması tartışılmıştır.

Python’daki özniteliklere tutarlı bir ölçekleyici uygulama

Python’da nitelikler üzerinde tutarlı bir ölçekleyici uygulamak, önceki durumlara benzer. İlk olarak sağlam bir ölçekleyici oluşturulur ve ardından ölçekleyici verilere uygulanır:

Scaler3 = pp.RobustScaler()
X3 = Scaler3.fit_transform(X)

Şimdi, özellikler üzerinde tutarlı ölçeklendirme ayarlayıcıyı uyguladıktan sonra, verilere uygulanan değişiklikleri görmek için X 3 dağılımını çizin :

Python'da standart ölçeklendirme ayarlayıcıyı uyguladıktan sonra veri kümesi tablosu

Bu şekilde, yukarıdaki şemada görülebilir=Ben miktarısıfıra eşit olacaktır.

Robust Scaler ile ilgili önemli olan, dönüştürme için 3 kriterin kullanılması ve aykırı verilere karşı direncidir ki Min Max Scaling gibi yöntemler bu konuda zayıftır. Daha fazla araştırma için Ölçekleyicilerin her birinin ayarlarını değiştirebilir ve her birinin sonuçlar üzerindeki etkisini gözlemleyebilirsiniz. Örneğin, aşağıdaki ayarlar belirleyici olabilir:

  1. Min Maks Ölçekleyici için feature_range faktörü ayarlanabilir.
  2. Standart Ölçekleyici için with_mean ve with_std operatörleri değiştirilebilir.
  3. Robust Scaler için quantile_range faktörü de belirlenebilir.

Bu nedenle, bu makaledeki Python’daki özellik ölçeklendirme öğreticisinin sonu.

Çözüm

Bu eğitici yazıda, özellik ölçeklendirme (Feature Scaling) için yaygın olarak kullanılan doğrusal yöntemler incelenmiş ve her birinin dağılım ve istatistiksel parametreler üzerindeki etkileri incelenmiştir. Bu makalede tanıtılan doğrusal yöntemlere ek olarak, doğrusal olmayan yöntemler de bu amaçlar için kullanılabilir.