Cara menstandarkan data dengan python: dengan contoh
Menstandarkan suatu kumpulan data berarti menskalakan semua nilai dalam kumpulan data sedemikian rupa sehingga nilai rata-ratanya adalah 0 dan simpangan bakunya adalah 1.
Kami menggunakan rumus berikut untuk menormalkan nilai dalam kumpulan data:
x baru = ( xi – x ) / s
Emas:
- x i : nilai ke-i dari kumpulan data
- x : Maksud sampel
- s : simpangan baku sampel
Kita dapat menggunakan sintaks berikut untuk dengan cepat menormalkan semua kolom di pandas DataFrame dengan Python:
(df- df.mean ())/df. std ()
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.
Contoh 1: standarisasi semua kolom DataFrame
Kode berikut menunjukkan cara menstandardisasi semua kolom di pandas DataFrame:
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
Kita dapat memverifikasi bahwa mean dan deviasi standar setiap kolom masing-masing sama dengan 0 dan 1:
#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
Contoh 2: Normalisasikan kolom DataFrame tertentu
Terkadang Anda mungkin hanya ingin menormalkan kolom tertentu di DataFrame.
Misalnya, untuk banyak algoritme pembelajaran mesin, Anda mungkin hanya ingin menstandarkan variabel prediktor sebelum menyesuaikan model tertentu ke data.
Kode berikut menunjukkan cara menstandardisasi kolom tertentu di pandas DataFrame:
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
Perhatikan bahwa kolom “y” tetap tidak berubah, tetapi kolom “x1”, “x2” dan “x3” semuanya terstandarisasi.
Kita dapat memverifikasi bahwa mean dan deviasi standar setiap kolom variabel prediktor masing-masing sama dengan 0 dan 1:
#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
Sumber daya tambahan
Cara menormalkan kolom di Pandas DataFrame
Cara Menghapus Pencilan dengan Python
Standardisasi atau normalisasi: apa bedanya?