آموزش

نرمال‌سازی در برابر استانداردسازی: تشخیص تفاوت‌ها

با تفاوت‌های کلیدی، کاربردها و چگونگی پیاده‌سازی نرمال‌سازی و استانداردسازی در پیش‌پردازش داده‌های یادگیری ماشین آشنا شو.

تاریخ انتشار:
15 شهریور 1405
9 دقیقه
تحلیل داده
علم داده
کاربرهای فینکا در چه شرکت‌هایی مشغول به کار هستند؟

آماده‌سازی دقیق داده‌ها، هم برای عملکرد مدل‌ها و هم برای تفسیر نتایج خیلی مهمه. دقیقاً همینجاست که نرمال‌سازی و استانداردسازی وارد عمل می‌شن؛ دو تکنیک خیلی مهم برای مقیاس‌بندی ویژگی‌ها که می‌تونن داده‌ها رو برای عملکرد بهتر و تفسیر راحت‌تر نتایج تنظیم کنن.

در این مقاله، اصطلاحات مختلف رو با هم مرور می‌کنیم تا تفاوت‌های عملی بین نرمال‌سازی و استانداردسازی رو بهتر درک کنی. در نهایت متوجه می‌شی که کِی باید از هر کدوم در روند پیش‌پردازش داده‌هات استفاده کنی. با یادگیری این دو تکنیک، می‌تونی عملکرد مدل‌هات رو بالا ببری، نتایج رو خیلی بهتر تفسیر کنی و از اشتباهات رایجی که به خاطر داده‌های مقیاس‌بندی‌نشده پیش میان، جلوگیری کنی. این تفاوت‌های ظریف در یادگیری ماشین به شدت مهمن.

درک مقیاس‌بندی ویژگی‌ها

نرمال‌سازی و استانداردسازی هر دو زیرمجموعه مقیاس‌بندی ویژگی‌ها (Feature Scaling) هستن. این کار یک مرحله خیلی مهم در آماده‌سازی داده‌ها برای مدل‌های یادگیری ماشین به حساب میاد و هدفش اینه که مقادیر ویژگی‌های یک دیتاست رو به یک مقیاس مشابه تبدیل کنه تا مطمئن بشیم همه ویژگی‌ها به یک اندازه در فرایند یادگیری مدل تأثیر می‌ذارن.

مقیاس‌بندی ویژگی‌ها از این جهت مهمه که وقتی ویژگی‌ها مقیاس‌های خیلی متفاوتی دارن (مثلاً یکی بین ۱ تا ۱۰ و اون یکی بین ۱۰۰۰ تا ۱۰۰۰۰ باشه)، مدل ممکنه به مقادیر بزرگ‌تر وزن بیشتری بده و پیش‌بینی‌ها دچار سوگیری بشن. این موضوع می‌تونه باعث افت عملکرد مدل و کند شدن روند یادگیری (همگرایی) در طول آموزش بشه.

مقیاس‌بندی ویژگی‌ها با تنظیم محدوده داده‌ها بدون از بین بردن تفاوت‌های واقعی بین مقادیر، این مشکل رو حل می‌کنه. تکنیک‌های مختلفی برای این کار هست که نرمال‌سازی و استانداردسازی از همه پرکاربردترن. هر دوی این روش‌ها به مدل‌های یادگیری ماشین کمک می‌کنن تا با متعادل کردن تأثیر ویژگی‌ها، کم کردن اثر نقاط پرت و گاهی هم بالا بردن سرعت همگرایی، بهترین عملکرد رو داشته باشن.

نرمال‌سازی چیه؟

نرمال‌سازی یک مفهوم گسترده‌ست و راه‌های مختلفی برای انجامش وجود داره. به طور کلی، منظور از نرمال‌سازی اینه که مقادیر اندازه‌گیری‌شده در مقیاس‌های مختلف رو بیاریم روی یک مقیاس مشترک. معمولاً با یک مثال بهتر می‌شه این موضوع رو فهمید. برای بررسی انواع نرمال‌سازی در ادامه، مدلی رو در نظر می‌گیریم تا رابطه بین قیمت یک خونه و متراژش رو درک کنیم.

انواع نرمال‌سازی

بیا چند تا از روش‌های اصلی رو با هم ببینیم. یادت باشه که این لیست کامل نیست و روش‌های دیگه‌ای هم وجود داره: 

نرمال‌سازی حداقل-حداکثر (min-max)

با استفاده از نرمال‌سازی min-max، می‌تونیم متراژ خونه‌ها رو طوری تغییر مقیاس بدیم که بین ۰ تا ۱ قرار بگیرن. این یعنی کوچک‌ترین متراژ به عنوان ۰ و بزرگ‌ترین متراژ به عنوان ۱ در نظر گرفته می‌شه.

نرمال‌سازی لگاریتمی

نرمال‌سازی لگاریتمی یکی دیگه از تکنیک‌های این حوزه‌ست. در این روش، یک تبدیل لگاریتمی روی قیمت خونه‌ها اعمال می‌کنیم. این کار کمک می‌کنه تا تأثیر قیمت‌های خیلی بالا کمتر بشه، مخصوصاً اگه اختلاف زیادی بین قیمت‌ها وجود داشته باشه.

مقیاس‌بندی اعشاری

مقیاس‌بندی اعشاری (Decimal scaling) هم یک روش دیگه برای نرمال‌سازیه. در همین مثال، می‌تونیم متراژ خونه‌ها رو با جابه‌جا کردن ممیز طوری تنظیم کنیم که اعداد کوچک‌تر بشن. این‌طوری متراژ خونه‌ها به یک مقیاس قابل‌مدیریت‌تر تبدیل می‌شه، در حالی که تفاوت‌های نسبی بینشون دست‌نخورده باقی می‌مونه.

نرمال‌سازی میانگین

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

چه زمانی باید داده‌ها رو نرمال‌سازی کرد؟

همون‌طور که احتمالاً از مثال‌های بالا متوجه شدی، نرمال‌سازی به‌خصوص زمانی به درد می‌خوره که توزیع داده‌ها مشخص نباشه یا از توزیع گاوسی پیروی نکنه. قیمت خونه‌ها اینجا مثال خیلی خوبیه، چون بعضی خونه‌ها به‌شدت گرون هستن و مدل‌ها همیشه نمی‌تونن به خوبی با این نقاط پرت کنار بیان.

پس هدف نرمال‌سازی اینه که یک مدل بهتر بسازیم. ممکنه متغیر وابسته رو نرمال کنیم تا خطاها به شکل یکنواخت‌تری پخش بشن، یا متغیرهای ورودی رو نرمال کنیم تا مطمئن بشیم ویژگی‌هایی که مقیاس بزرگ‌تری دارن، روی ویژگی‌های کوچک‌تر سایه نمی‌ندازن.

نرمال‌سازی در شرایط زیر بیشترین کاربرد رو داره:

  • توزیع نامشخص یا غیرگاوسی: وقتی توزیع داده‌ها مشخص نیست یا از یک الگوی نرمال (گاوسی) پیروی نمی‌کنه. مثلاً در رگرسیون خطی، ممکنه بخوایم متغیر وابسته رو نرمال کنیم تا شکل منحنی زنگوله‌ای به خودش بگیره؛ این کار باعث می‌شه با اطمینان بیشتری تخمین بزنیم.
  • الگوریتم‌های مبتنی بر فاصله: وقتی از الگوریتم‌هایی استفاده می‌کنیم که روی فاصله بین نقاط داده کار می‌کنن (مثل k-نزدیکترین همسایه یا KNN)، نرمال‌سازی واجبه تا ویژگی‌های دارای مقیاس بزرگ‌تر، محاسبات فاصله رو خراب نکنن.

استانداردسازی چیه؟

در حالی که نرمال‌سازی ویژگی‌ها رو در یک محدوده خاص قرار می‌ده، استانداردسازی (که بهش مقیاس‌بندیz-score هم می‌گن) داده‌ها رو طوری تغییر می‌ده که میانگینشون بشه ۰ و انحراف معیارشون بشه ۱. در این فرایند، میانگین از مقادیر کم می‌شه و نتیجه بر انحراف معیار تقسیم می‌شه. شاید اصطلاح «متمرکز کردن و مقیاس‌بندی» داده‌ها به گوشت خورده باشه؛ استانداردسازی دقیقاً همین کار رو می‌کنه: اول تمرکز حول صفر، بعد مقیاس‌بندی.

فرمول استانداردسازی به این صورته:

که در اون:

  • X مقدار اصلیه،
  • mu میانگین ویژگیه،
  • و sigma انحراف معیار ویژگیه.

این فرمول داده‌ها رو طوری تغییر مقیاس می‌ده که توزیعشون دارای میانگین ۰ و انحراف معیار ۱ بشه.

چه زمانی باید داده‌ها رو استانداردسازی کرد؟

استانداردسازی در این موارد بهترین انتخابه:

  • الگوریتم‌های مبتنی بر گرادیانماشین بردار پشتیبان (SVM) برای اینکه بهترین عملکرد رو داشته باشه، به داده‌های استانداردشده نیاز داره. با اینکه مدل‌هایی مثل رگرسیون خطی و لجستیک همیشه به استانداردسازی نیازی ندارن، اما باز هم می‌تونن ازش سود ببرن؛ مخصوصاً وقتی اندازه ویژگی‌ها تفاوت زیادی با هم داره. این کار کمک می‌کنه تأثیر هر ویژگی متعادل بشه و روند بهینه‌سازی بهتر پیش بره.
  • کاهش ابعاد: استانداردسازی در تکنیک‌های کاهش ابعاد مثل PCA کاملاً ضروریه، چون PCA دنبال جهتی می‌گرده که در اون، واریانس داده‌ها بیشترین مقدار رو داشته باشه. نرمال‌سازی میانگین به تنهایی جواب نمی‌ده، چون PCA هم میانگین و هم واریانس رو در نظر می‌گیره و مقیاس‌های متفاوت ویژگی‌ها، نتایج تحلیل رو خراب می‌کنن.

نرمال‌سازی در برابر استانداردسازی: تفاوت‌های کلیدی

بعضی وقتا تشخیص تفاوت بین نرمال‌سازی و استانداردسازی سخت می‌شه. اولاً، نرمال‌سازی گاهی به عنوان یک اصطلاح کلی‌تر به کار می‌ره، در حالی که استانداردسازی معنای خاص‌تر و فنی‌تری داره. حتی تحلیلگران و دانشمندان داده که با این مفاهیم آشنان، ممکنه در تشخیص کاربردهای دقیقشون دچار شک بشن.

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

روش‌های تغییر مقیاس

نرمال‌سازی مقادیر رو به یک بازه مشخص (معمولاً بین ۰ و ۱) منتقل می‌کنه. این کار برای مدل‌هایی که در اون‌ها مقیاس ویژگی‌ها خیلی با هم فرق داره، واقعاً مفیده. اما در مقابل، استانداردسازی داده‌ها رو حول میانگین (۰) متمرکز می‌کنه و بر اساس انحراف معیار (۱) بهشون مقیاس می‌ده.

حساسیت به نقاط پرت

تکنیک‌های مختلف نرمال‌سازی در برخورد با نقاط پرت عملکرد متفاوتی دارن. نرمال‌سازی میانگین می‌تونه در یک‌سری شرایط به‌خوبی با نقاط پرت کنار بیاد، اما بقیه تکنیک‌ها ممکنه به این اندازه مؤثر نباشن. در کل، روش‌های نرمال‌سازی به اندازه استانداردسازی در حل مشکل نقاط پرت موفق نیستن، چون استانداردسازی مستقیماً با میانگین و انحراف معیار کار می‌کنه.

موارد استفاده

نرمال‌سازی خیلی در الگوریتم‌های مبتنی بر فاصله (مثل k-نزدیک‌ترین همسایه) استفاده می‌شه؛ در این مدل‌ها برای اینکه محاسبات فاصله دقیق باشه، همه ویژگی‌ها باید در یک مقیاس باشن. از طرف دیگه، استانداردسازی برای الگوریتم‌های مبتنی بر گرادیان (مثل ماشین‌های بردار پشتیبان) حیاتیه و خیلی اوقات در روش‌های کاهش ابعاد (مثل PCA) هم به کار می‌ره، چون اونجا حفظ واریانس دقیق ویژگی‌ها اهمیت زیادی داره.

جدول خلاصه تفاوت‌ها

بیا همه این تفاوت‌های کلیدی رو در یک جدول خلاصه ببینیم تا مقایسه بین نرمال‌سازی و استانداردسازی برات راحت‌تر بشه:

دسته‌بندی نرمال‌سازی استانداردسازی
روش تغییر مقیاس داده‌ها رو بر اساس مقادیر حداقل و حداکثر به یک محدوده (معمولاً ۰ تا ۱) تغییر مقیاس می‌ده. داده‌ها رو حول میانگین (۰) متمرکز می‌کنه و بر اساس انحراف معیار (۱) مقیاس‌بندی می‌کنه.
حساسیت به نقاط پرت نرمال‌سازی در صورت استفاده درست و بسته به روشش، می‌تونه اثر نقاط پرت رو کمی تعدیل کنه. استانداردسازی یک روش پایدارتر و بهتر برای مدیریت نقاط پرته.
الگوریتم‌های رایج اغلب در الگوریتم‌هایی مثل KNN و شبکه‌های عصبی استفاده می‌شه که به داده‌هایی با مقیاس ثابت نیاز دارن. بهترین انتخاب برای الگوریتم‌هایی مثل رگرسیون لجستیک، SVM و PCA که نیاز دارن ویژگی‌ها مقیاس مشترکی داشته باشن.

مصورسازی تفاوت‌ها

برای اینکه تفاوت نرمال‌سازی و استانداردسازی رو بهتر درک کنی، خوبه که تأثیراتشون رو به صورت بصری و روی عملکرد مدل ببینی. اینجا نمودارهای جعبه‌ای اومدن تا این تکنیک‌های مختلف مقیاس‌بندی رو نشون بدن. در این بخش، از نرمال‌سازی min-max برای تک‌تک متغیرهای دیتاست استفاده شده. همون‌طور که می‌بینی، هیچ مقداری کمتر از ۰ یا بیشتر از ۱ نیست.

در تصویر دوم، برای هر کدوم از متغیرها از استانداردسازی استفاده شده. اینجا کاملاً مشخصه که داده‌ها در نقطه صفر متمرکز شدن. 

مزایا و معایب

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

نرمال‌سازی و استانداردسازی در رگرسیون خطی

بیا ببینیم نرمال‌سازی (اینجا منظور نرمال‌سازی میانگینه) و استانداردسازی چطور می‌تونن تفسیر یک مدل رگرسیون خطی ساده رو تغییر بدن. مقدار R-squared یا ضریب تعیین تعدیل شده برای هر دو مدل یکسان باقی می‌مونه، پس مقیاس‌بندی ویژگی‌ها در اینجا فقط به تفسیر ما از مدل مربوط می‌شه.  

تبدیل اعمال‌شده متغیر مستقل (اندازه خانه) متغیر وابسته (قیمت خانه) تفسیر
نرمال‌سازی میانگین نرمال‌شده بر اساس میانگین اصلی قیمت اصلی خونه رو به ازای هر تغییر در متراژ خونه نسبت به میانگین پیش‌بینی می‌کنی.
استانداردسازی استانداردشده اصلی قیمت اصلی خونه رو به ازای هر یک انحراف معیار تغییر در متراژ پیش‌بینی می‌کنی.
نرمال‌سازی میانگین اصلی نرمال‌شده بر اساس میانگین قیمت خونه رو نسبت به میانگین به ازای هر یک واحد افزایش در متراژ اصلی خونه پیش‌بینی می‌کنی.
استانداردسازی اصلی استانداردشده قیمت استانداردشده خونه رو به ازای هر یک واحد افزایش در متراژ اصلی پیش‌بینی می‌کنی.
نرمال‌سازی میانگین (هر دو متغیر) نرمال‌شده بر اساس میانگین نرمال‌شده بر اساس میانگین قیمت خونه رو نسبت به میانگین به ازای هر تغییر در متراژ خونه نسبت به میانگین پیش‌بینی می‌کنی.
استانداردسازی (هر دو متغیر) استانداردشده استانداردشده قیمت استانداردشده خونه رو به ازای هر یک انحراف معیار تغییر در متراژ پیش‌بینی می‌کنی.

یه نکته مهم دیگه اینه که در رگرسیون خطی، اگه متغیرهای مستقل و وابسته رو استاندارد کنی، مقدار R-squared هیچ تغییری نمی‌کنه. دلیلش اینه که R-squared نسبتی از واریانس در y رو اندازه می‌گیره که با x توضیح داده می‌شه، و این نسبت چه متغیرها استاندارد شده باشن و چه نه، ثابت می‌مونه. اما استاندارد کردن متغیر وابسته باعث تغییر RMSE می‌شه، چون RMSE با همون واحدهای متغیر وابسته اندازه‌گیری می‌شه. از اونجایی که y حالا استاندارد شده، مقدار RMSE بعد از استانداردسازی کمتر می‌شه. در واقع، این خطا رو بر حسب انحراف معیار متغیر استانداردشده نشون می‌ده، نه واحدهای اصلیش.

نتیجه‌گیری

مقیاس‌بندی ویژگی‌ها، چه به شکل نرمال‌سازی و چه استانداردسازی، یکی از بخش‌های خیلی مهم در پیش‌پردازش داده‌ها در یادگیری ماشینه. اگه بدونی دقیقاً چه زمانی باید از کدوم تکنیک استفاده کنی، می‌تونی عملکرد و دقت مدل‌هات رو به شکل چشمگیری بالا ببری.

اشتراک‌گذاری
فهرست مطالب
  • درک مقیاس‌بندی ویژگی‌ها
  • نرمال‌سازی چیه؟
  • استانداردسازی چیه؟
  • نرمال‌سازی در برابر استانداردسازی: تفاوت‌های کلیدی
  • مصورسازی تفاوت‌ها
  • مزایا و معایب
  • نرمال‌سازی و استانداردسازی در رگرسیون خطی
  • نتیجه‌گیری

دریافت اپلیکیشن فینکا

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