كيفية توحيد البيانات في بايثون: مع أمثلة
يعني توحيد مجموعة البيانات قياس جميع القيم في مجموعة البيانات بحيث تكون القيمة المتوسطة 0 والانحراف المعياري هو 1.
نستخدم الصيغة التالية لتطبيع القيم في مجموعة البيانات:
x جديد = (x i – x ) / s
ذهب:
- x i : القيمة i لمجموعة البيانات
- x : تعني العينة
- s : الانحراف المعياري للعينة
يمكننا استخدام بناء الجملة التالي لتطبيع جميع الأعمدة بسرعة في pandas DataFrame في Python:
(df- df.mean ())/df. std ()
توضح الأمثلة التالية كيفية استخدام بناء الجملة هذا عمليًا.
المثال 1: توحيد جميع أعمدة DataFrame
يوضح الكود التالي كيفية توحيد جميع الأعمدة في 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
يمكننا التحقق من أن المتوسط والانحراف المعياري لكل عمود يساوي 0 و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
المثال 2: تسوية أعمدة DataFrame محددة
في بعض الأحيان قد ترغب فقط في تسوية أعمدة معينة في DataFrame.
على سبيل المثال، بالنسبة للعديد من خوارزميات التعلم الآلي، قد ترغب فقط في توحيد متغيرات التوقع قبل ملاءمة نموذج معين للبيانات.
يوضح الكود التالي كيفية توحيد أعمدة معينة في 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
لاحظ أن العمود “y” يظل بدون تغيير، ولكن الأعمدة “x1″ و”x2″ و”x3” كلها موحدة.
يمكننا التحقق من أن المتوسط والانحراف المعياري لكل عمود من متغيرات التوقع يساوي 0 و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
مصادر إضافية
كيفية تطبيع الأعمدة في Pandas DataFrame
كيفية إزالة القيم المتطرفة في بايثون
التوحيد أو التطبيع: ما الفرق؟