كيفية تطبيع البيانات في بايثون


في كثير من الأحيان في الإحصاء والتعلم الآلي نقوم بتطبيع المتغيرات بحيث يكون نطاق القيم بين 0 و 1.

السبب الأكثر شيوعًا لتطبيع المتغيرات هو عندما نقوم بإجراء نوع من التحليل متعدد المتغيرات (أي أننا نريد أن نفهم العلاقة بين العديد من متغيرات التوقع ومتغير الاستجابة) ونريد أن يساهم كل متغير بالتساوي في التحليل.

عندما يتم قياس المتغيرات على مستويات مختلفة، فإنها غالبا لا تساهم بشكل متساو في التحليل. على سبيل المثال، إذا كانت قيم متغير واحد تتراوح من 0 إلى 100000 وقيم متغير آخر تتراوح من 0 إلى 100، فسيتم تعيين وزن أكبر للمتغير ذو النطاق الأكبر في التحليل.

ومن خلال توحيد المتغيرات، يمكننا التأكد من أن كل متغير يساهم بالتساوي في التحليل.

لتطبيع القيم بين 0 و 1 يمكننا استخدام الصيغة التالية:

x المعيار = (x i – x min ) / (x max – x min )

ذهب:

  • x القاعدة : القيمة المقيسة في مجموعة البيانات
  • x i : القيمة i لمجموعة البيانات
  • x max : الحد الأدنى للقيمة في مجموعة البيانات
  • x min : الحد الأقصى للقيمة في مجموعة البيانات

توضح الأمثلة التالية كيفية تسوية متغير واحد أو أكثر في بايثون.

المثال 1: تطبيع مصفوفة NumPy

يوضح الكود التالي كيفية تسوية كافة القيم في مصفوفة NumPy:

 import numpy as np 

#create NumPy array
data = np. array ([[13, 16, 19, 22, 23, 38, 47, 56, 58, 63, 65, 70, 71]])

#normalize all values in array
data_norm = (data - data. min ())/ (data. max () - data. min ())

#view normalized values
data_norm

array([[0. , 0.05172414, 0.10344828, 0.15517241, 0.17241379,
        0.43103448, 0.5862069, 0.74137931, 0.77586207, 0.86206897,
        0.89655172, 0.98275862, 1. ]])

كل قيمة من القيم في المصفوفة التي تمت تسويتها تقع الآن بين 0 و1.

المثال 2: تطبيع جميع المتغيرات في Pandas DataFrame

يوضح التعليمة البرمجية التالية كيفية تسوية جميع المتغيرات في Pandas DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#normalize values in every column
df_norm = (df-df. min ())/ (df. max () - df. min ())

#view normalized DataFrame
df_norm

        points assists rebounds
0 0.764706 0.125 0.857143
1 0.000000 0.375 0.428571
2 0.176471 0.375 0.714286
3 0.117647 0.625 0.142857
4 0.411765 1.000 0.142857
5 0.647059 0.625 0.000000
6 0.764706 0.625 0.571429
7 1.000000 0.000 1.000000

تتراوح الآن كل قيمة في كل عمود بين 0 و1.

مثال 3: تطبيع متغيرات محددة في Pandas DataFrame

يوضح الكود التالي كيفية تسوية متغير معين في pandas DataFrame:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

define columns to normalize
x = df. iloc [:,0:2]

#normalize values in first two columns only
df. iloc [:,0:2] = (xx. min ())/ (x. max () - x. min ())

#view normalized DataFrame
df

	points assists rebounds
0 0.764706 0.125 11
1 0.000000 0.375 8
2 0.176471 0.375 10
3 0.117647 0.625 6
4 0.411765 1.000 6
5 0.647059 0.625 5
6 0.764706 0.625 9
7 1.000000 0.000 12

لاحظ أنه يتم تطبيع القيم الموجودة في العمودين الأولين فقط.

مصادر إضافية

توفر البرامج التعليمية التالية معلومات إضافية حول تسوية البيانات:

كيفية تطبيع البيانات بين 0 و 1
كيفية تطبيع البيانات بين 0 و 100
التوحيد أو التطبيع: ما الفرق؟

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *