Python'da Verilerin Normalleştirilmesi

Normalization Data Python



Verilerin normalleştirilmesi, makinenin daha küçük bir veri aralığını işlemesi gerektiğinden sonucun daha hızlı alınmasına yardımcı olan bir tekniktir. Normalleştirme kolay bir iş değildir çünkü tüm sonuçlarınız normalleştirme yönteminizin seçimine bağlıdır. Dolayısıyla, verilerinizi normalleştirmek için yanlış yöntemi seçtiyseniz, beklentilerinizden farklı bir sonuç elde edebilirsiniz.

Normalleştirme aynı zamanda resim, metin, sayısal vb. veri türlerine de bağlıdır. Dolayısıyla, her veri türünün normalleştirme için farklı bir yöntemi vardır. Bu nedenle, bu yazıda sayısal verilere odaklanıyoruz.







Yöntem 1: sklearn'i kullanma

Sklearn yöntemi, verileri normalleştirmek için çok ünlü bir yöntemdir.





[83] numaralı hücrede : Gerekli tüm kütüphaneleri, NumPy ve sklearn'i içe aktarıyoruz. Ön işlemeyi sklearn'in kendisinden içe aktardığımızı görebilirsiniz. Bu yüzden sklearn normalleştirme yöntemi budur.





[84] numaralı hücrede : Aynı olmayan bir tamsayı değerine sahip bir NumPy dizisi oluşturduk.

[85] numaralı hücrede : Önişlemeden normalize yöntemini çağırdık ve parametre olarak az önce oluşturduğumuz numpy_array'i geçtik.



[86] numaralı hücrede : Sonuçlardan görebiliyoruz, tüm tamsayı verilerimiz artık 0 ile 1 arasında normalize edilmiş durumda.

Yöntem 2: sklearn kullanarak bir veri kümesindeki belirli bir sütunu normalleştirin

Belirli veri kümesi sütununu da normalleştirebiliriz. Bu konuda, bunun hakkında tartışacağız.


[87] numaralı hücrede : Kütüphane pandalarını ve sklearn'i içe aktarıyoruz.

[88] numaralı hücrede : Sahte bir CSV dosyası oluşturduk ve şimdi o CSV dosyasını pandas (read_csv) paketinin yardımıyla yüklüyoruz.

[89] numaralı hücrede : Son yüklediğimiz CSV dosyasını yazdırıyoruz.

[90] numaralı hücrede : CSV dosyasının belirli sütununu np kullanarak okuruz. dizi ve sonucu value_array'de saklayın.

[92] numaralı hücrede , ön işlemeden normalize yöntemini çağırdık ve value_array parametresini geçtik.

Yöntem 3: Diziye sütunları kullanmadan normalleştirmeye dönüştürün (sklearn kullanarak)

Önceki yöntem 2'de, normalize edebileceğimiz belirli bir CSV dosyası sütununun nasıl yapıldığını tartıştık. Ancak bazen tüm veri kümesini normalleştirmemiz gerekir, ardından tüm veri kümesini normalize ettiğimiz ancak sütun bazında (eksen = 0) aşağıdaki yöntemi kullanabiliriz. Eksen = 1'den bahsedersek, satır bazında normalleştirme yapacaktır. Eksen = 1 varsayılan değerdir.


[93] numaralı hücrede : Kütüphane pandalarını ve sklearn'ı içe aktarıyoruz.

[94] numaralı hücrede : Sahte bir CSV dosyası (demo_numeric.csv) oluşturduk ve şimdi o CSV dosyasını pandas (read_csv) paketi yardımıyla yüklüyoruz.

[95] numaralı hücrede : Son yüklediğimiz CSV dosyasını yazdırıyoruz.

[96] numaralı hücrede : Şimdi, kütüphaneye kullanıcının tüm veri setini sütun bazında normalleştirmek istediğini söyleyen bir ekstra parametre axis =0 ile birlikte tüm CSV dosyasını iletiyoruz.

[97] numaralı hücrede , sonucu yazdırır ve verileri 0 ile 1 arasında bir değerle normalleştiririz.

Yöntem 4: MinMaxScaler() Kullanımı

Sklearn ayrıca MinMaxScalar olarak adlandırdığımız başka bir normalleştirme yöntemi de sağlar. Bu da kullanımı kolay olduğu için oldukça popüler bir yöntemdir.


[98] numaralı hücrede : Gerekli tüm paketleri içe aktarıyoruz.

[99] numaralı hücrede : Sahte bir CSV dosyası (demo_numeric.csv) oluşturduk ve şimdi o CSV dosyasını pandas (read_csv) paketi yardımıyla yüklüyoruz.

[100] numaralı hücrede : Son yüklediğimiz CSV dosyasını yazdırıyoruz.

[101] numaralı hücrede : Önişleme yönteminden MinMaxScalar'ı çağırdık ve bunun için bir nesne (min_max_Scalar) oluşturduk. 0 ile 1 arasındaki verileri normalleştirmemiz gerektiği için herhangi bir parametre geçmedik. Ama isterseniz sonraki yöntemde göreceğiniz değerlerinizi ekleyebilirsiniz.

[102] numaralı hücrede : Sonuçları görüntülemek için daha fazla kullanım için önce sütunların tüm adlarını okuruz. Ardından oluşturulan min_max_Scalar nesnesinden fit_tranform'u çağırıyoruz ve CSV dosyasını buna aktarıyoruz.

[103] numaralı hücrede : 0 ile 1 arasında normalleştirilmiş sonuçları elde ederiz.

Yöntem 5: MinMaxScaler'ı Kullanma(feature_range=(x,y))

Sklearn, istediğiniz şeyin normalleştirilmiş değerini değiştirme seçeneği de sunar. Varsayılan olarak, 0 ile 1 arasındaki değeri normalleştirirler. Ancak, normalize edilmiş değeri gereksinimlerimize göre ayarlayabilen, feature_range dediğimiz bir parametre vardır.

[104] numaralı hücrede : Gerekli tüm paketleri içe aktarıyoruz.

[105] numaralı hücrede : Sahte bir CSV dosyası (demo_numeric.csv) oluşturduk ve şimdi o CSV dosyasını pandas (read_csv) paketi yardımıyla yüklüyoruz.

[106] numaralı hücrede : Son yüklediğimiz CSV dosyasını yazdırıyoruz.

[107] numaralı hücrede : Önişleme yönteminden MinMaxScalar'ı çağırdık ve bunun için bir nesne (min_max_Scalar) oluşturduk. Ancak MinMaxScaler'ın (feature_range) içine başka bir parametre de iletiyoruz. Bu parametre değerini 0'dan 2'ye ayarladık. Şimdi, MinMaxScaler 0 ile 2 arasındaki veri değerlerini normalleştirecek.

[108] numaralı hücrede : Sonuçları görüntülemek için daha fazla kullanım için önce sütunların tüm adlarını okuruz. Daha sonra oluşturulan min_max_Scalar nesnesinden fit_tranform'u çağırıyoruz ve CSV dosyasını buna geçiriyoruz.

[109] numaralı hücrede : 0 ile 2 arasında normalleştirilmiş sonuçları elde ederiz.

Yöntem 6: Maksimum mutlak ölçeklemeyi kullanma

Ayrıca pandaları kullanarak verileri normalleştirebiliriz. Bu özellikler, verileri normalleştirmede de oldukça popülerdir. Maksimum mutlak ölçekleme 0 ile 1 arasındaki değerleri normalleştirir. Burada .max() ve .abs()'ı aşağıda gösterildiği gibi uyguluyoruz:

[110] numaralı hücrede : Pandaların kütüphanesini içe aktarıyoruz.

[111] numaralı hücrede : Sahte bir veri çerçevesi oluşturduk ve bu veri çerçevesini yazdırdık.

[113] numaralı hücrede : Her sütunu çağırır ve ardından sütun değerlerini .max() ve .abs() ile böleriz.

[114] numaralı hücrede : Sonucu yazdırıyoruz ve sonuçtan verilerimizin 0 ile 1 arasında normalleştiğini onaylıyoruz.

Yöntem 7: z-skor yöntemini kullanma

Tartışacağımız bir sonraki yöntem, z-skor yöntemidir. Bu yöntem bilgiyi dağıtıma dönüştürür. Bu yöntem, her sütunun ortalamasını hesaplar ve ardından her sütundan çıkarır ve sonunda bunu standart sapma ile böler. Bu, verileri -1 ile 1 arasında normalleştirir.

[115] numaralı hücrede : Sahte bir veri çerçevesi oluşturduk ve bu veri çerçevesini yazdırdık.

[117] numaralı hücrede : Sütunun ortalamasını hesaplayıp sütundan çıkarıyoruz. Ardından sütun değerini standart sapmaya böleriz.

[118] numaralı hücrede : Normalize edilmiş verileri -1 ile 1 arasında yazdırıyoruz.

Sonuç: Farklı türde normalleştirilmiş yöntemler gördük. Bunlar arasında sklearn, makine öğrenimini desteklemesi nedeniyle çok ünlüdür. Ancak bu, kullanıcının gereksinimlerine bağlıdır. Bazen pandaların verileri normalleştirme özelliği yeterlidir. Sadece yukarıdaki normalleştirme yöntemleri olduğunu söyleyemeyiz. Görüntüler, sayısal, metin vb. gibi veri türünüze de bağlı olarak veri normalleştirme yapmak için sayısız yöntem vardır. Bu sayısal verilere ve Python'a odaklanıyoruz.