NumPy Dizilerini Normalleştirme: Hızlı Kılavuz

Veri analizi veya makine öğrenimi için Python ile çalışıyorsanız, muhtemelen NumPy dizileriyle karşılaşmışsınızdır. Sayısal verileri işlemek için güçlü bir araçtır, ancak bazen, bu dizilerdeki verilerin algoritmalarınızda etkili bir şekilde kullanılması için ayarlanması veya 'normalleştirilmesi' gerekir. Ancak bir diziyi normalleştirmek ne anlama geliyor?

Bir NumPy dizisini normalleştirmek için, dizideki değerleri, tipik olarak 0 ile 1 arasında belirli bir aralıkta kalacak veya ortalama 0 ve standart sapma 1 olan standart bir normal dağılıma sahip olacak şekilde ayarlamanız gerekir. • Bu, tüm girdi özelliklerinin aynı ölçeğe sahip olmasını sağlamak için genellikle makine öğrenimi ve veri analizi alanında yapılır.

NumPy Dizilerini Normalleştirme: Hızlı Kılavuz

Bu makalede, Python'da bir NumPy dizisini nasıl normalleştirebileceğinizi keşfedeceğiz. Bir NumPy dizisini normalleştirmek için kullanabileceğiniz farklı yöntemlere ve kavramı daha iyi anlamanıza yardımcı olacak örneklere bakacağız.

Hadi başlayalım!

İçindekiler

Python'da Normalleştirmenin Temelleri Nelerdir?

Python'da normalleştirmeyi uygulamadan önce, normalleştirmenin ne anlama geldiğini anlamalısınız.

NumPy Dizilerini Normalleştirme: Hızlı Kılavuz

Bu nedenle, bu bölümde normalleşmenin ne olduğunu ve temel kavramlarını inceleyeceğiz.

Normalleşme nedir?

Normalleştirme, verileri ölçekleyen ve standartlaştırılmış bir aralığa dönüştüren bir süreçtir . Bu, verilerin her bir öğesini bir parametreye bölerek yapılır . Parametre, maksimum değer, aralık veya başka bir norm olabilir.

NumPy dizisini Öklid normunu (L2 normu olarak da bilinir) kullanarak normalleştirebilirsiniz. Ayrıca, NumPy dizilerini, değerleri belirli bir aralık arasında, genellikle 0 ila 1 arasında yeniden ölçeklendirerek de normalleştirebilirsiniz.

Python'da NumPy kitaplığı, dizileri normalleştirmenin etkili bir yolunu sağlar. Buna çok boyutlu diziler ve matrisler de dahildir.

Normalleşme Neden Önemli?

Normalleştirme, verileri karşılaştırırken ve analiz ederken farklı özelliklerin eşit şekilde ele alınmasını sağladığı için önemlidir. Farklı ölçeklerden kaynaklanabilecek olası önyargıları veya tutarsızlıkları ortadan kaldırmak için kullanabilirsiniz.

Normlar Nedir?

Normalleştirme için kullandığınız parametre, Öklid normu (L2), Manhattan normu (L1) veya maksimum norm (L_inf) gibi farklı normlar olabilir. Bir vektörün veya matrisin büyüklüğünü hesaplamak için normları kullanırsınız . Bunlar daha sonra verileri normalleştirmek için bir ölçeklendirme faktörü olarak kullanılır.

Matrislerle çalışırken, genellikle çok boyutlu diziler için Öklid normunun bir genellemesi olan Frobenius normunu kullanırız.

Aşağıdaki örnek, Frobenius normunu kullanan bir matrisin normalizasyonunu göstermektedir:

import numpy as np

# Initialize your matrix
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# Calculate the Frobenius norm
frobenius_norm = np.linalg.norm(matrix, 'fro')

# Normalize the matrix
normalized_matrix = matrix / frobenius_norm

print('Original Matrix:')
print(matrix)
print('nFrobenius Norm:')
print(frobenius_norm)
print('nNormalized Matrix:')
print(normalized_matrix)

Bu Python kodu, önce NumPy kitaplığını içe aktaracak ve onu bir matris oluşturmak için kullanacaktır. Daha sonra matrisin Frobenius normunu hesaplar ve matrisi normalleştirmek için matristeki her bir elemanı bu değere böler.

Bu kodun çıktısı aşağıda verilmiştir:

NumPy Dizilerini Normalleştirme: Hızlı Kılavuz

Makine Öğreniminde Normalleştirme Nedir?

Makine öğreniminde normalleştirme , algoritmaların performansını iyileştirdiği için önemli bir ön işleme adımıdır.

Degrade tabanlı optimizasyon teknikleri gerçekleştirirken, optimize edilmiş özelliklerin daha hızlı ve verimli bir şekilde bir araya gelme eğiliminde olduğunu göreceksiniz. Bunun nedeni, zayıf ölçeklendirme veya yok olan gradyan riskini azaltmasıdır.

Python'da Normalleştirme Teknikleri Nelerdir?

NumPy dizilerinin normalizasyonunu çeşitli şekillerde gerçekleştirebilirsiniz . Ancak bazı yöntemler, yüksek verimlilikleri nedeniyle diğerlerinden daha popülerdir.

Bu bölümde, yaygın olarak kullanılan üç normalleştirme tekniğine bakacağız:

  1. Min-Maks Ölçeklendirme

  2. L1 Normalleştirme

  3. L2 Normalleştirme

1. Min-Maks Ölçekleme Nasıl Gerçekleştirilir?

Min-maks ölçeklendirme, doğrusal normalleştirme veya özellik ölçeklendirme olarak da bilinir. Min-maks ölçeklemede, bir NumPy dizisinin değerlerini, tipik olarak 0 ile 1 arasında, belirli bir aralık içinde kalacak şekilde ölçeklendiririz.

Bunu yapmak için, her öğeden minimum değeri çıkarırsınız ve sonucu maksimum ve minimum değerler arasındaki farka bölersiniz.

Min-maks ölçeklendirmeyi matematiksel olarak şu şekilde temsil edebilirsiniz:

x' = (x - min(x)) / (max(x) - min(x))

Aşağıdaki örnek, NumPy kitaplığını kullanarak minimum-maks ölçeklendirmeyi nasıl gerçekleştirebileceğinizi gösterir:

import numpy as np

# Initialize your matrix
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# Perform min-max scaling
min_val = np.min(matrix)
max_val = np.max(matrix)

scaled_matrix = (matrix - min_val) / (max_val - min_val)

print('Original Matrix:')
print(matrix)
print('nMin-Max Scaled Matrix:')
print(scaled_matrix)

Bu kod önce NumPy'yi içe aktaracak ve ardından matristeki minimum ve maksimum değerleri hesaplayacak ve daha sonra tüm değerler 0 (orijinal minimum değere karşılık gelen) ile 1 (orijinal maksimum değere karşılık gelen) arasında olacak şekilde ölçeklendirecektir.

Bu kodun çıktısı aşağıda verilmiştir:

NumPy Dizilerini Normalleştirme: Hızlı Kılavuz

Min-maks ölçeklendirme, makine öğreniminde ve veri ön işlemede çok yaygın bir ölçeklendirme biçimidir.

2. L1 Normalleştirme Nasıl Yapılır?

L1 normalizasyonu , dizi öğelerinin mutlak değerlerinin toplamı olan L1 normunu kullanır. Bu özellikle seyrek matrisler için kullanışlıdır. Normalleştirilmiş dizi öğelerinin mutlak değerlerinin toplamının 1'e eşit olmasını sağlar.

L1 normalleştirme formülü şu şekildedir:

x' = x / sum(|x|)

Aşağıdaki örnek, NumPy kullanarak L1 normalleştirmesini nasıl gerçekleştirebileceğinizi gösterir:

import numpy as np

# Initialize your matrix
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# Perform L1 normalization
l1_norm = np.linalg.norm(matrix, 1, axis=1, keepdims=True)
l1_normalized_matrix = matrix / l1_norm

print('Original Matrix:')
print(matrix)
print('nL1 Normalized Matrix:')
print(l1_normalized_matrix)

Bu kodda, np.linalg.norm (matrix, 1, eksen=1, keepdims=True) her satır için L1 normunu hesaplar (bu, eksen=1 belirtilerek yapılır).

Bu işlem, her öğenin karşılık gelen satırın L1 normu olduğu bir sütun vektörü döndürür. Orijinal matrisi bu normlara bölerek (eleman bazında bölmeyi gerçekleştirerek), matrisin L1 normalleştirilmiş versiyonunu elde ederiz.

Çıktı aşağıda verilmiştir:

NumPy Dizilerini Normalleştirme: Hızlı Kılavuz

3. L2 Normalleştirme Nasıl Yapılır?

L2 normalizasyonu, karesi alınmış dizi öğelerinin toplamının karekökü olan L2 normunu kullanır.

Bu yöntem, normalleştirilmiş diziyi 2-normu 1 olan bir birim vektöre dönüştürür. L2 normalleştirmesi, boyut küçültme için kullanışlıdır ve tüm özellikler için eşit önemde olmasını sağlar.

L2 normalleştirme formülü şu şekildedir:

x' = x / sqrt(sum(x^2))

NumPy kullanarak L2 normalleştirmesini şu şekilde yapabilirsiniz :

import numpy as np

# Initialize your matrix
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

# Perform L2 normalization
l2_norm = np.linalg.norm(matrix, 2, axis=1, keepdims=True)
l2_normalized_matrix = matrix / l2_norm

print('Original Matrix:')
print(matrix)
print('nL2 Normalized Matrix:')
print(l2_normalized_matrix)

Bu kodda, np.linalg.norm(matrix, 2, axis=1, keepdims=True) her satır için L2 normunu (Öklid normu) hesaplar (bu, eksen=1 belirtilerek yapılır). Bu işlem, her öğenin karşılık gelen satırın L2 normu olduğu bir sütun vektörü döndürür.

Orijinal matrisi bu normlara bölerek (bölmeyi eleman bazında gerçekleştirerek), matrisin L2 normalleştirilmiş versiyonunu elde ederiz.

Çıktı aşağıda verilmiştir:

NumPy Dizilerini Normalleştirme: Hızlı Kılavuz

Pekala, NumPy kullanarak normalleştirilmiş bir dizi oluşturmanın popüler yollarını ele aldığımıza göre, bir sonraki bölümde diğer Python kitaplıklarını kullanarak aynı şeyi nasıl yapabileceğinize bir göz atalım.

Python'da Normalleştirme için Scikit-Learn Nasıl Kullanılır?

Scikit-learn, makine öğrenimi için güçlü bir Python kitaplığıdır. Veri ön işleme için çeşitli araçlar sağlar.

Kullanabileceğiniz bir araç , normalleştirme gerçekleştirmek için çeşitli teknikler sunan sklearn.preprocessing modülüdür. Birçok farklı ölçekleyici işlevi, dönüştürücü ve normalleştirici mevcuttur. Ancak, MinMaxScaler ve normalize işlevine odaklanacağız .

Verileri scikit-learn ile önceden işlemek için esasen transformasyon API'sini kullanırsınız. Buna fit , transform ve fit_transform yöntemleri dahildir.

1. MinMaxScaler Kullanarak Diziyi Normalleştirme

MinMaxScaler , verileri belirli bir aralığa, genellikle [0, 1] normalleştiren bir ölçekleyicidir.

MinMaxScalar formülü aşağıda verilmiştir:

scaled_value = (value - min_value) / (max_value - min_value)

MinMaxScaler'ı uygulamak için şu adımları takip edebilirsiniz:

  1. Gerekli kitaplıkları içe aktarın:

    import numpy as np
    from sklearn.preprocessing import MinMaxScaler
  2. Bir NumPy dizisi oluşturun:

    data = np.array([[1., 2., 5.], [3., 6., 8.], [5., 10., 12.]])
  3. MinMaxScaler'ı somutlaştırın ve verilere uydurun:

    scaler = MinMaxScaler()
    scaler.fit(data)
  4. transform veya fit_transform yöntemini kullanarak verileri dönüştürün :

    normalized_data = scaler.transform(data)

Bu kodun çıktısı aşağıda verilmiştir:

NumPy Dizilerini Normalleştirme: Hızlı Kılavuz

Çıktıda da görebileceğiniz gibi MinMaxScalarMatrix sadece 0 ile 1 arasında değişen değerlere sahiptir.

2. Yerinde Satır Normalleştirmesi Nasıl Yapılır?

Normalize işlevini kullanarak yerinde satır normalleştirmesini alternatif olarak da kullanabilirsiniz .

Bu yöntem, vektörü bir birim norma ölçeklendirerek her giriş dizisini veya özelliği bağımsız olarak normalleştirir. Varsayılan olarak normalleştirme işlevi, basit normalleştirme gerçekleştirmek için L2 normunu kullanır, ancak diğer norm seçeneklerini seçebilirsiniz.

Aşağıdaki örnek, yerinde satır normalleştirmesini göstermektedir:

from sklearn.preprocessing import normalize
import numpy as np

# Initialize your matrix
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype=float)

# Apply in-place row normalization
normalize(matrix, norm='l2', copy=False)

print('L2 Normalized Matrix:')
print(matrix)

Bu kodda, sklearn'den normalize işlevini çağırıyoruz , kullanılacak normu (bu durumda 'l2') tanımlıyoruz ve yerinde normalleştirme gerçekleştirmek için copy=False ayarını yapıyoruz.

Bu kodun çıktısı aşağıda verilmiştir:

NumPy Dizilerini Normalleştirme: Hızlı Kılavuz

Python'da makine öğrenimi hakkında daha fazla bilgi edinmek için aşağıdaki videoyu izleyin:

Son düşünceler

Veri bilimi ve makine öğrenimini daha fazla keşfettikçe, normalleştirme sürecinin veri ön işleme hattınızda önemli bir adım olduğunu göreceksiniz.

Birincisi, farklı özellikleri ortak bir ölçeğe yerleştirir. Bu, modellerinizi girdi ölçeğine karşı daha az duyarlı hale getirir. Birçok makine öğrenimi algoritmasının performansını büyük ölçüde artırabilir.

İkincisi, eğitim sürecini hızlandırmanıza yardımcı olur. Bazı algoritmalar, özellikle hesaplanan mesafe hesaplamalarına dayalı olanlar, veriler normalleştirildiğinde daha hızlı yakınsar.

Verileri nasıl normalleştireceğinizi öğrenerek, kendinizi çok önemli bir beceri ile donatırsınız. Normalleştirme, gerçek dünya uygulamalarında rutin olarak kullanılan pratik bir araçtır. Aykırı değerler veya birim farklılıkları nedeniyle beklenmeyen sonuç olasılığını azaltmanıza yardımcı olacaktır.

Herhangi bir araç gibi, normalleşmede ustalaşmanın anahtarı pratikte yatmaktadır. Bu nedenle, ellerinizi kirletmekten ve farklı veri kümeleri ve rastgele değerlerle denemeler yapmaktan çekinmeyin. Veri bilimi dünyası istiridyenizdir. Mutlu kodlama!

Leave a Comment

Excel Hücrelerini Metne Sığdırma: 4 Kolay Çözüm

Excel Hücrelerini Metne Sığdırma: 4 Kolay Çözüm

Excel hücrelerini metne sığdırmak için güncel bilgileri ve 4 kolay çözümü keşfedin.

Bir Excel Dosyasının Boyutu Nasıl Küçültülür – 6 Etkili Yöntem

Bir Excel Dosyasının Boyutu Nasıl Küçültülür – 6 Etkili Yöntem

Bir Excel Dosyasının Boyutunu Küçültmek için 6 Etkili Yöntem. Hızlı ve kolay yöntemler ile verilerinizi kaybetmeden yer açın.

Pythonda Self Nedir: Gerçek Dünyadan Örnekler

Pythonda Self Nedir: Gerçek Dünyadan Örnekler

Python'da Self Nedir: Gerçek Dünyadan Örnekler

Rde Bir RDS Dosyası Nasıl Kaydedilir ve Yüklenir

Rde Bir RDS Dosyası Nasıl Kaydedilir ve Yüklenir

R'de bir .rds dosyasındaki nesneleri nasıl kaydedeceğinizi ve yükleyeceğinizi öğreneceksiniz. Bu blog aynı zamanda R'den LuckyTemplates'a nesnelerin nasıl içe aktarılacağını da ele alacaktır.

İlk N İş Günü Tekrar Ziyaret Edildi – Bir DAX Kodlama Dili Çözümü

İlk N İş Günü Tekrar Ziyaret Edildi – Bir DAX Kodlama Dili Çözümü

Bu DAX kodlama dili eğitiminde, GENERATE işlevinin nasıl kullanılacağını ve bir ölçü başlığının dinamik olarak nasıl değiştirileceğini öğrenin.

LuckyTemplatesda Çok İş Parçacıklı Dinamik Görsel Tekniği Kullanarak Öngörüleri Sergileyin

LuckyTemplatesda Çok İş Parçacıklı Dinamik Görsel Tekniği Kullanarak Öngörüleri Sergileyin

Bu eğitici, raporlarınızdaki dinamik veri görselleştirmelerinden içgörüler oluşturmak için Çok Kanallı Dinamik Görseller tekniğinin nasıl kullanılacağını kapsayacaktır.

LuckyTemplatesda İçeriği Filtrelemeye Giriş

LuckyTemplatesda İçeriği Filtrelemeye Giriş

Bu yazıda, filtre bağlamından geçeceğim. Filtre bağlamı, herhangi bir LuckyTemplates kullanıcısının başlangıçta öğrenmesi gereken en önemli konulardan biridir.

LuckyTemplates Çevrimiçi Hizmetindeki Uygulamaları Kullanmak İçin En İyi İpuçları

LuckyTemplates Çevrimiçi Hizmetindeki Uygulamaları Kullanmak İçin En İyi İpuçları

LuckyTemplates Apps çevrimiçi hizmetinin çeşitli kaynaklardan oluşturulan farklı raporların ve içgörülerin yönetilmesine nasıl yardımcı olabileceğini göstermek istiyorum.

Fazla Mesai Kâr Marjı Değişikliklerini Analiz Edin - LuckyTemplates ve DAX ile Analitik

Fazla Mesai Kâr Marjı Değişikliklerini Analiz Edin - LuckyTemplates ve DAX ile Analitik

LuckyTemplates'da ölçü dallandırma ve DAX formüllerini birleştirme gibi teknikleri kullanarak kâr marjı değişikliklerinizi nasıl hesaplayacağınızı öğrenin.

DAX Studioda Veri Önbellekleri İçin Materyalleştirme Fikirleri

DAX Studioda Veri Önbellekleri İçin Materyalleştirme Fikirleri

Bu öğreticide, veri önbelleklerini gerçekleştirme fikirleri ve bunların DAX'ın sonuç sağlama performansını nasıl etkilediği tartışılacaktır.