Python'da veriler nasıl standartlaştırılır: örneklerle
Bir veri kümesini standartlaştırmak, veri kümesindeki tüm değerlerin ortalama değer 0 ve standart sapma 1 olacak şekilde ölçeklenmesi anlamına gelir.
Bir veri kümesindeki değerleri normalleştirmek için aşağıdaki formülü kullanırız:
x yeni = (x ben – x ) / s
Altın:
- x i : veri kümesinin i’inci değeri
- x : Örnek şu anlama gelir:
- s : numunenin standart sapması
Python’da bir pandas DataFrame’deki tüm sütunları hızlı bir şekilde normalleştirmek için aşağıdaki sözdizimini kullanabiliriz:
(df- df.mean ())/df. std ()
Aşağıdaki örnekler bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir.
Örnek 1: tüm DataFrame sütunlarını standartlaştırın
Aşağıdaki kod, bir pandas DataFrame’deki tüm sütunların nasıl standartlaştırılacağını gösterir:
import pandas as pd #create data frame df = pd. DataFrame ({' y ': [8, 12, 15, 14, 19, 23, 25, 29], ' x1 ': [5, 7, 7, 9, 12, 9, 9, 4], ' x2 ': [11, 8, 10, 6, 6, 5, 9, 12], ' x3 ': [2, 2, 3, 2, 5, 5, 7, 9]}) #view data frame df y x1 x2 x3 0 8 5 11 2 1 12 7 8 2 2 15 7 10 3 3 14 9 6 2 4 19 12 6 5 5 23 9 5 5 6 25 9 9 7 7 29 4 12 9 #standardize the values in each column df_new = (df- df.mean ())/df. std () #view new data frame df_new y x1 x2 x3 0 -1.418032 -1.078639 1.025393 -0.908151 1 -0.857822 -0.294174 -0.146485 -0.908151 2 -0.437664 -0.294174 0.634767 -0.525772 3 -0.577717 0.490290 -0.927736 -0.908151 4 0.122546 1.666987 -0.927736 0.238987 5 0.682756 0.490290 -1.318362 0.238987 6 0.962861 0.490290 0.244141 1.003746 7 1.523071 -1.470871 1.416019 1.768505
Her sütunun ortalamasının ve standart sapmasının sırasıyla 0 ve 1’e eşit olduğunu doğrulayabiliriz:
#view mean of each column df_new. mean () y 0.000000e+00 x1 2.775558e-17 x2 -4.163336e-17 x3 5.551115e-17 dtype:float64 #view standard deviation of each column df_new. std () y 1.0 x1 1.0 x2 1.0 x3 1.0 dtype:float64
Örnek 2: Belirli DataFrame sütunlarını normalleştirin
Bazen bir DataFrame’de yalnızca belirli sütunları normalleştirmek isteyebilirsiniz.
Örneğin, birçok makine öğrenimi algoritması için, belirli bir modeli verilere uydurmadan önce yalnızca tahmin değişkenlerini standartlaştırmak isteyebilirsiniz.
Aşağıdaki kod, bir pandas DataFrame’deki belirli sütunların nasıl standartlaştırılacağını gösterir:
import pandas as pd #create data frame df = pd. DataFrame ({' y ': [8, 12, 15, 14, 19, 23, 25, 29], ' x1 ': [5, 7, 7, 9, 12, 9, 9, 4], ' x2 ': [11, 8, 10, 6, 6, 5, 9, 12], ' x3 ': [2, 2, 3, 2, 5, 5, 7, 9]}) #view data frame df y x1 x2 x3 0 8 5 11 2 1 12 7 8 2 2 15 7 10 3 3 14 9 6 2 4 19 12 6 5 5 23 9 5 5 6 25 9 9 7 7 29 4 12 9 #define predictor variable columns df_x = df[[' x1 ', ' x2 ', ' x3 ']] #standardize the values for each predictor variable df[[' x1 ',' x2 ',' x3 ']] = (df_x- df_x.mean ())/df_x. std () #view new data frame df y x1 x2 x3 0 8 -1.078639 1.025393 -0.908151 1 12 -0.294174 -0.146485 -0.908151 2 15 -0.294174 0.634767 -0.525772 3 14 0.490290 -0.927736 -0.908151 4 19 1.666987 -0.927736 0.238987 5 23 0.490290 -1.318362 0.238987 6 25 0.490290 0.244141 1.003746 7 29 -1.470871 1.416019 1.768505
“y” sütununun değişmeden kaldığını ancak “x1”, “x2” ve “x3” sütunlarının hepsinin standartlaştırıldığını unutmayın.
Tahmin edici değişkenlerin her sütununun ortalama ve standart sapmasının sırasıyla 0 ve 1’e eşit olduğunu doğrulayabiliriz:
#view mean of each predictor variable column df[[' x1 ', ' x2 ', ' x3 ']]. mean () x1 2.775558e-17 x2 -4.163336e-17 x3 5.551115e-17 dtype:float64 #view standard deviation of each predictor variable column df[[' x1 ', ' x2 ', ' x3 ']]. std () x1 1.0 x2 1.0 x3 1.0 dtype:float64
Ek kaynaklar
Pandas DataFrame’deki sütunlar nasıl normalleştirilir?
Python’da Aykırı Değerler Nasıl Kaldırılır
Standardizasyon veya normalizasyon: fark nedir?