بلاگ

پایگـاه اطلاعات علمی جهاد دانشگاهی

نرمال‌سازی داده چیست و چگونه انجام می‌شود


فرمول نرمال سازی داده

نرمال‌سازی[1] یا استانداردسازی[2]، یکی از راه‌ها برای مقایسه پذیر کردن داده‌ها است. در این پست، به نرمال‌سازی داده‌ها با ارائه مثال پرداخته می‌شود و سپس فرمول‌های محاسبه نرمال‌سازی معرفی خواهد شد.

یکی از راه‌های مقایسه پذیری برای اندازه‌گیری و مقایسه دو داده متفاوت، نرمال‌سازی است. نرمال‌سازی داده‌ها از گام‌های اولیه برای استفاده از داده است. فرض کنید دو گروه داده داریم که گروه اول در مقیاس صفرتا هزار و گروه دوم در مقیاس صفرتا یک قرارگرفته‌اند.

اگر بخواهیم این دو گروه را باهم مقایسه کنیم این دو گروه داده باهم فاصله زیادی دارند و اختلاف این دو گروه داده بسیار زیاد است.

گروه اول داده ممکن است دربردارنده 900 ویژگی باشد و گروه دوم شامل اعداد در دامنه صفرتا یک باشند. اگر یک داده را به‌صورت تصادفی در گروه اول انتخاب کنیم و این داده انتخابی برابر با 900 باشد و آن را تقسیم‌بر دو کنیم برابر با 450 می‌شود، درحالی‌که داده انتخابی در گروه دوم برابر با صفر است و اگر تقسیم هم شود بازهم برابر با صفر است.

بنابراین، مقایسه این دو گروه داده اصلاً امکان‌پذیر نیست.

راه‌حل: استانداردسازی داده

برای حل این مشکل باید این دو گروه داده را استانداردسازی کنید؛ یعنی اینکه این دو گروه را در دودسته صفرتا یک قرار دهید.

کاهش یا افزایش مقادیر، با رعایت همه‌ی نسبت‌ها، آن‌ها رابین صفرتا یک قرار می‌دهد. به‌این‌ترتیب گروه اول به 0.9 و گروه دوم 0.5 تبدیل خواهد شد. در این حالت داده انتخابی در گروه اول را به دو تقسیم کنیم برابر با 0.45 و گروه دوم برابر با 0.25 خواهد شد. به‌این‌ترتیب مقایسه بین دو گروه داده امکان‌پذیر خواهد شد.

فرمول نرمال‌سازی داده‌ها

فرمول نرمال‌سازی با استفاده از کم کردن عدد از میانگین و تقسیم آن بر انحراف از معیار به دست می‌آید. این فرمول به شکل زیر است:

فرمول نرمال سازی داده

 

این فرمول داده‌های شمارا طوری تبدیل می‌کند که میانگین آن برابر با صفر و واریانس آن برابر با یک باشد. به این مقادیر z-scores می‌گویند. با نرمال‌سازی داده‌ها مطمئن خواهید شد که اگر داده‌های شما خیلی بزرگ یا خیلی کوچک است در بازه عدد صفر و یک قرار خواهد گرفت. scores Z تضمین می کند که تأثیر یک متغیر بر مدل تحت تأثیر مقیاس اصلی اندازه گیری آن قرار نمی گیرد.

اگر ترجیح می‌دهید که اعداد بین صفر و یک توزیع شوند و در دامنه [0,1] قرار بگیرند، از فرمول زیر استفاده کنید:

فرمول نرمال سازی داده

نرمال‌سازی داده در علوم داده و بخصوص در الگوریتم K-means متداول است. به دلیل اینکه ممکن است داده ما دارای مقادیر بسیار متفاوتی باشد. برای مثال در یک دیتاست، یک ویژگی مربوط به سن افراد و ویژگی دیگر مربوط به خوردن تعداد لیوان‌های آب هر فرد در یک روز باشد. زمانی که می‌خواهیم از این داده‌ها استفاده کنیم ، ممکن است هر تغییری در سن منجر به تغییر در تعداد لیوان‌های آب شود و بنابراین نرمال‌سازی داده‌ها با استفاده از الگوریتم نرمال‌سازی ، آن‌ها را به مقیاس یکپارچه‌ای تبدیل می‌کند. به این ترتیب، تبدیل هر دو گروه داده به صفر و یک امکان محاسبه آسانی رابین دو مجموعه از گروه داده‌ها فراهم می‌کند.

کاربرد نرمال‌سازی داده در علوم کامپیوتر

نرمال‌سازی داده با استفاده از دو فرمول گفته‌شده در حوزه‌های موضوعی علوم داده و کامپیوتر کاربردهای بسیاری دارد. فهرستی از مواردی که در آن نرمال‌سازی داده کاربرد دارد شامل موارد زیر است:

  • همسایه نزدیکی k با استفاده از فاصله اقلیدسی اگر می‌خواهند همه ویژگی‌ها به یک اندازه مشارکت داشته باشند.
  • k-means به نزدیک‌ترین همسایه k مراجعه کنید.
  • رگرسیون لجستیک، SVMs، پرسپترون، شبکه عصبی و غیره. اگر از الگوریتم حریصانه یا برخی از وزن ها برای بهینه سازی استفاده می کنید.
  • آنالیز افتراقی خطی، تحلیل مؤلفه‌های اصلی و در تمامی تحلیل هایی که شما می خواهید حداکثر واریانس را محاسبه کنید.

نمونه ای از نرمال سازی داده در پایتون

my_data = np.array([55, 67, 28, 235, 114])

x_axis = np.arange(len(my_data))

my_mean = my_data.mean()

my_stdev = my_data.std()

 

# normalisation: the data will now have 

# a mean of 0 and a standard deviation of 1

my_data_normed = (my_data - my_mean) / my_data.std()

 

# domain standardisation: the data points will all lie

# between 0 (smallest one) and 1 (largest one)

my_data_domain_standardised = (my_data - my_data.min()) / (my_data.max() - my_data.min())

 

# Have a look at the y axis for each figure!

fig, (ax1, ax2, ax3) = plt.subplots(1,3, figsize=(10,5))

ax1.plot(x_axis,my_data)

ax1.set_title('Original')

ax2.plot(x_axis,my_data_normed)

ax2.set_title('Normalised \n(mean = 0, stddev = 1)')

ax3.plot(x_axis,my_data_domain_standardised)

ax3.set_title('Domain standardised \n(data points between 0 and 1)')

plt.show()

 

 

برای دریافت کد نرمال سازی داده در پایتون کلیک کنید.

 

 

[1] Normalization

[2] standardization

لینک کوتاه

لینک کوتاه

بازگشت به بالا

پست های مرتبط

مهم ترین دلایل ریترکت مقالات

تاریخ: 1403/06/17

بازدید: 257

1403

زمان مطالعه: 2 دقیقه

مهم ترین دلایل ریترکت مقالات حوزه موضوعی علوم کامپیوتر در سال های 2014 تا 2023

Scientific Information Database (SID) - Trusted Source for Research and Academic Resourcesمدرس

@ins

مساله ستاره‌ها و حائل‌ها

تاریخ: 1399/12/16

بازدید: 2529

1399

زمان مطالعه: 5 دقیقه دقیقه

combinatorics Stars and bars

Scientific Information Database (SID) - Trusted Source for Research and Academic Resourcesمدرس

@ins

پایگاه داده رایگان برای جستجو و آنالیز پروانه‌های ثبت اختراع و مقالات : قسمت اول

تاریخ: 1401/07/27

بازدید: 1723

1401

زمان مطالعه: 3 دقیقه

دسترسی آزاد به مدارک علمی در سال‌های اخیر توجه زیادی را به خود جلب کرده است.

Scientific Information Database (SID) - Trusted Source for Research and Academic Resourcesمدرس

@ins

بزرگ ترین مجموعه داده تحلیل احساس فارسی

تاریخ: 1403/03/09

بازدید: 514

1403

زمان مطالعه: 2 دقیقه

داده ها در عصر امروز همانند طلا با ارزش هستند .

Scientific Information Database (SID) - Trusted Source for Research and Academic Resourcesمدرس

@ins

مصورسازی هم آیندی کلیدواژگان

تاریخ: 1400/02/31

بازدید: 2562

1400

زمان مطالعه: 5 دقیقه دقیقه

کشف دانش از طریق تجزیه و تحلیل هم رخدادی واژگان

Scientific Information Database (SID) - Trusted Source for Research and Academic Resourcesمدرس

@ins

چگونه 10 مهره را در سه ظرف به صورت فرد تقسیم کنیم

تاریخ: 1400/03/22

بازدید: 3026

1400

زمان مطالعه: 5 دقیقه دقیقه

استعداد تحصیلی

Scientific Information Database (SID) - Trusted Source for Research and Academic Resourcesمدرس

@ins

مجموعه داده با سلام

تاریخ: 1403/02/22

بازدید: 286

1403

زمان مطالعه: 1 دقیقه

مجموعه داده یا دیتاست Data set چیست ؟

Scientific Information Database (SID) - Trusted Source for Research and Academic Resourcesمدرس

@ins