داده های عددی: عادی سازی

پس از بررسی داده های خود از طریق تکنیک های آماری و تجسمی، باید داده های خود را به روش هایی تغییر دهید که به آموزش موثرتر مدل شما کمک کند. هدف نرمال سازی تبدیل ویژگی ها به یک مقیاس مشابه است. به عنوان مثال، دو ویژگی زیر را در نظر بگیرید:

  • ویژگی X محدوده 154 تا 24917482 را در بر می گیرد.
  • ویژگی Y بین 5 تا 22 را در بر می گیرد.

این دو ویژگی محدوده های بسیار متفاوتی را در بر می گیرند. عادی سازی ممکن است X و Y طوری دستکاری کند که محدوده مشابهی را در بر گیرند، شاید 0 تا 1.

عادی سازی مزایای زیر را ارائه می دهد:

  • کمک می کند تا مدل ها در طول آموزش سریعتر همگرا شوند . هنگامی که ویژگی‌های مختلف دامنه‌های متفاوتی دارند، نزول گرادیان می‌تواند "جهش" و همگرایی کند شود. گفته می شود، بهینه سازهای پیشرفته تری مانند Adagrad و Adam با تغییر نرخ موثر یادگیری در طول زمان در برابر این مشکل محافظت می کنند.
  • به مدل ها کمک می کند تا پیش بینی های بهتری را استنباط کنند . وقتی ویژگی‌های مختلف دامنه‌های متفاوتی دارند، مدل به دست آمده ممکن است پیش‌بینی‌های کمتر مفیدی انجام دهد.
  • هنگامی که مقادیر ویژگی بسیار بالا هستند ، از "تله NaN" جلوگیری می کند. NaN مخفف نه عدد است. هنگامی که یک مقدار در یک مدل از حد دقت ممیز شناور فراتر رود، سیستم به جای عدد، مقدار را روی NaN تنظیم می کند. هنگامی که یک عدد در مدل به NaN تبدیل می شود، اعداد دیگر در مدل نیز در نهایت به NaN تبدیل می شوند.
  • به مدل کمک می کند تا وزن های مناسب برای هر ویژگی را یاد بگیرد . بدون مقیاس‌بندی ویژگی، مدل به ویژگی‌هایی با دامنه وسیع توجه زیادی می‌کند و به ویژگی‌هایی با محدوده باریک توجه کافی نمی‌کند.

توصیه می‌کنیم ویژگی‌های عددی را عادی کنید که محدوده‌های کاملاً متفاوتی را پوشش می‌دهند (به عنوان مثال، سن و درآمد). ما همچنین توصیه می‌کنیم یک ویژگی عددی واحد را که طیف وسیعی از جمله city population.

دو ویژگی زیر را در نظر بگیرید:

  • کمترین مقدار ویژگی A 0.5- و بیشترین مقدار 0.5+ است.
  • کمترین مقدار ویژگی B -5.0 و بالاترین +5.0 است.

ویژگی A و ویژگی B دهانه های نسبتاً باریکی دارند. با این حال، دهانه ویژگی B 10 برابر بیشتر از دهانه ویژگی A است. بنابراین:

  • در شروع آموزش، مدل فرض می‌کند که ویژگی A ده برابر «مهم‌تر» از ویژگی B است.
  • آموزش بیش از آنچه باید طول بکشد.
  • مدل حاصل ممکن است کمتر از حد بهینه باشد.

آسیب کلی ناشی از عادی نشدن نسبتاً کوچک خواهد بود. با این حال، ما همچنان توصیه می کنیم که ویژگی A و ویژگی B را در مقیاس یکسان، شاید -1.0 تا +1.0 عادی کنید.

اکنون دو ویژگی را با اختلاف دامنه بیشتر در نظر بگیرید:

  • کمترین مقدار ویژگی C -1 و بیشترین مقدار 1+ است.
  • کمترین مقدار ویژگی D +5000 و بالاترین +1,000,000,000 است.

اگر ویژگی C و ویژگی D را عادی نکنید، مدل شما احتمالاً کمتر از حد مطلوب خواهد بود. علاوه بر این، آموزش خیلی بیشتر طول می کشد تا همگرا شوند یا حتی نتوانند به طور کامل همگرا شوند!

این بخش سه روش عادی سازی رایج را پوشش می دهد:

  • مقیاس بندی خطی
  • مقیاس بندی Z-score
  • مقیاس بندی ورود به سیستم

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

مقیاس بندی خطی

مقیاس‌بندی خطی (که معمولاً به صرف مقیاس‌گذاری کوتاه می‌شود) به معنای تبدیل مقادیر ممیز شناور از محدوده طبیعی آنها به یک محدوده استاندارد است - معمولاً 0 تا 1 یا -1 به +1.

مقیاس خطی انتخاب خوبی است زمانی که تمام شرایط زیر برآورده شود:

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

فرض کنید age انسان یک ویژگی است. مقیاس بندی خطی یک تکنیک نرمال سازی خوب برای age است زیرا:

  • کران پایین و بالایی تقریبی 0 تا 100 است.
  • age شامل درصد نسبتا کمی از نقاط پرت است. تنها حدود 0.3 درصد از جمعیت بالای 100 سال هستند.
  • اگرچه سنین خاص تا حدودی بهتر از سایرین نمایش داده می شوند، یک مجموعه داده بزرگ باید شامل نمونه های کافی از همه سنین باشد.

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

فرض کنید مدل شما دارای ویژگی به نام net_worth است که دارایی خالص افراد مختلف را در خود جای داده است. آیا مقیاس خطی یک تکنیک عادی سازی خوب برای net_worth خواهد بود؟ چرا یا چرا نه؟

مقیاس بندی Z-score

Z-score تعداد انحرافات استاندارد یک مقدار از میانگین است. به عنوان مثال، مقداری که 2 انحراف استاندارد بیشتر از میانگین است دارای امتیاز Z 2.0+ است. مقداری که 1.5 انحراف استاندارد کمتر از میانگین است دارای امتیاز Z -1.5 است.

نمایش یک ویژگی با مقیاس بندی Z-score به معنای ذخیره امتیاز Z آن ویژگی در بردار ویژگی است. به عنوان مثال، شکل زیر دو هیستوگرام را نشان می دهد:

  • در سمت چپ، یک توزیع نرمال کلاسیک.
  • در سمت راست، همان توزیع با مقیاس بندی Z-score نرمال شد.
شکل 4. دو هیستوگرام: هر دو توزیع های نرمال را با توزیع یکسان نشان می دهند. هیستوگرام اول که حاوی داده های خام است دارای میانگین 200 و انحراف معیار 30 است. هیستوگرام دوم که شامل نسخه Z-score توزیع اول است دارای میانگین 0 و انحراف معیار 1 است.
شکل 4. داده های خام (چپ) در مقابل امتیاز Z (راست) برای توزیع نرمال.

مقیاس بندی Z-score نیز برای داده هایی مانند آنچه در شکل زیر نشان داده شده است، که فقط توزیع نرمال مبهمی دارد، انتخاب خوبی است.

شکل 5. دو هیستوگرام با شکل یکسان، که هر کدام یک صعود شیب دار به یک فلات و سپس یک فرود نسبتا سریع و به دنبال آن فروپاشی تدریجی را نشان می دهد. یک هیستوگرام توزیع داده های خام را نشان می دهد. هیستوگرام دیگر توزیع داده های خام را هنگامی که با مقیاس بندی Z-score نرمال می شود، نشان می دهد.             مقادیر روی محور X دو هیستوگرام بسیار متفاوت است.             هیستوگرام داده خام دامنه 0 تا 29000 را در بر می گیرد، در حالی که هیستوگرام مقیاس شده با امتیاز Z از -1 تا حدود 4.8+ است.
شکل 5. داده های خام (چپ) در مقابل مقیاس بندی Z-score (راست) برای توزیع نرمال غیر کلاسیک.

زمانی که داده ها از توزیع نرمال یا توزیعی تا حدودی شبیه توزیع نرمال پیروی می کنند، امتیاز Z انتخاب خوبی است.

توجه داشته باشید که برخی از توزیع‌ها ممکن است در محدوده وسیعی از آنها نرمال باشند، اما همچنان دارای مقادیر پرت شدید هستند. برای مثال، تقریباً تمام نقاط یک ویژگی net_worth ممکن است به طور منظم در 3 انحراف استاندارد قرار بگیرند، اما چند نمونه از این ویژگی می‌تواند صدها انحراف استاندارد از میانگین فاصله داشته باشد. در این شرایط، می‌توانید مقیاس Z-score را با شکل دیگری از نرمال‌سازی (معمولاً برش) ترکیب کنید تا این وضعیت را مدیریت کنید.

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

فرض کنید مدل شما روی یک ویژگی به نام height تمرین می کند که قد بالغ ده میلیون زن را در خود جای می دهد. آیا مقیاس بندی Z-score یک تکنیک نرمال سازی خوب برای height است؟ چرا یا چرا نه؟

مقیاس بندی ورود به سیستم

مقیاس لاگ لگاریتم مقدار خام را محاسبه می کند. در تئوری، لگاریتم می تواند هر پایه ای باشد. در عمل، مقیاس log معمولاً لگاریتم طبیعی (ln) را محاسبه می کند.

مقیاس ثبت زمانی مفید است که داده ها با توزیع قانون توان مطابقت داشته باشند. به طور معمول، توزیع قانون قدرت به صورت زیر است:

  • مقادیر پایین X دارای مقادیر بسیار بالای Y هستند.
  • با افزایش مقادیر X ، مقادیر Y به سرعت کاهش می یابد. در نتیجه، مقادیر بالای X دارای مقادیر بسیار پایین Y هستند.

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

  • تعداد کمی از فیلم ها رتبه بندی کاربران زیادی دارند. (مقادیر پایین X دارای مقادیر بالای Y هستند.)
  • اکثر فیلم ها رتبه بندی کاربران بسیار کمی دارند. (مقادیر بالای X دارای مقادیر پایین Y هستند.)

مقیاس لاگ توزیع را تغییر می دهد، که به آموزش مدلی کمک می کند که پیش بینی های بهتری انجام دهد.

شکل 6. دو نمودار که داده های خام را با گزارش داده های خام مقایسه می کند.             نمودار داده‌های خام تعداد زیادی رتبه‌بندی کاربران را در سر و به دنبال آن یک دم بلند نشان می‌دهد. نمودار لاگ توزیع یکنواخت تری دارد.
شکل 6. مقایسه توزیع خام با log آن.

به عنوان مثال دوم، فروش کتاب با توزیع قانون قدرت مطابقت دارد زیرا:

  • اکثر کتاب های منتشر شده تعداد کمی از نسخه ها، شاید یک یا دویست نسخه به فروش می رسند.
  • برخی از کتاب ها تعداد متوسطی از نسخه ها را به هزاران می فروشند.
  • تنها تعداد کمی از پرفروش‌ترین‌ها بیش از یک میلیون نسخه فروش خواهند داشت.

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

  ~4.6 = ln(100)

در حالی که لاگ 1,000,000 برابر است با:

  ~13.8 = ln(1,000,000)

بنابراین، لاگ 1,000,000 فقط حدوداً سه برابر بزرگتر از 100 است. احتمالاً می توانید تصور کنید که جلد کتاب پرفروش تقریباً سه برابر (به نوعی) قدرتمندتر از یک جلد کتاب پرفروش باشد.

بریدن

برش تکنیکی برای به حداقل رساندن تأثیر نقاط پرت شدید است. به طور خلاصه، برش معمولاً مقدار نقاط پرت را به یک مقدار حداکثر مشخص می‌پوشاند (کاهش می‌دهد). بریدن ایده عجیبی است، و با این حال، می تواند بسیار موثر باشد.

برای مثال، مجموعه داده ای را تصور کنید که حاوی ویژگی به نام roomsPerPerson است که تعداد اتاق ها (کل اتاق ها تقسیم بر تعداد ساکنان) را برای خانه های مختلف نشان می دهد. نمودار زیر نشان می دهد که بیش از 99٪ از مقادیر ویژگی با توزیع نرمال مطابقت دارد (تقریباً میانگین 1.8 و انحراف استاندارد 0.7). با این حال، این ویژگی حاوی چند ویژگی پرت است که برخی از آنها بسیار شدید است:

شکل 7. نمودار اتاق به ازای هر فرد که در آن تقریباً همه مقادیر بین 0 و 4 دسته بندی شده اند، اما یک دم بلند دراز وجود دارد که تا 17 اتاق برای هر نفر می رسد.
شکل 7. عمدتاً عادی، اما نه کاملاً عادی.

چگونه می‌توانید تأثیر آن عوامل پرت را به حداقل برسانید؟ خب، هیستوگرام یک توزیع زوج، یک توزیع نرمال یا یک توزیع قانون توان نیست. اگر به سادگی حداکثر مقدار roomsPerPerson را در یک مقدار دلخواه، مثلاً 4.0، درپوش یا برش دهید ، چه؟

نمودار RoomPerPerson که در آن همه مقادیر بین 0 و 4.0 قرار دارند. طرح به شکل زنگ است، اما یک تپه غیرعادی در 4.0 وجود دارد
شکل 8. برش مقادیر ویژگی در 4.0.

برش دادن مقدار ویژگی در 4.0 به این معنی نیست که مدل شما همه مقادیر بزرگتر از 4.0 را نادیده می گیرد. بلکه به این معنی است که تمام مقادیری که بیشتر از 4.0 بودند اکنون به 4.0 تبدیل می شوند. این تپه عجیب و غریب در 4.0 را توضیح می دهد. با وجود آن تپه، مجموعه ویژگی های مقیاس شده اکنون مفیدتر از داده های اصلی است.

یک ثانیه صبر کن آیا واقعاً می توانید هر مقدار پرت را به آستانه بالایی دلخواه کاهش دهید؟ هنگام آموزش یک مدل، بله.

شما همچنین می توانید مقادیر را پس از اعمال سایر اشکال نرمال سازی، کلیپ کنید. به عنوان مثال، فرض کنید از مقیاس بندی Z-score استفاده می کنید، اما چند عدد پرت مقادیر مطلق بسیار بزرگتر از 3 دارند. در این مورد، می توانید:

  • امتیاز Z بزرگتر از 3 را گیره دهید تا دقیقاً 3 شود.
  • امتیاز Z را کمتر از -3 بگیرید تا دقیقاً -3 شود.

Clipping مانع از فهرست شدن بیش از حد مدل شما در داده های بی اهمیت می شود. با این حال، برخی از نقاط پرت در واقع مهم هستند، بنابراین مقادیر را با دقت برش دهید.

خلاصه ای از تکنیک های عادی سازی

تکنیک عادی سازی فرمول زمان استفاده
مقیاس بندی خطی$$ x' = \frac{x - x_{min}}{x_{max} - x_{min}} $$ هنگامی که ویژگی به طور یکنواخت در یک محدوده ثابت توزیع شده است.
مقیاس بندی Z-score$$ x' = \frac{x - μ}{σ}$$ زمانی که توزیع ویژگی حاوی مقادیر پرت شدید نباشد.
مقیاس بندی ورود به سیستم$$ x' = log(x)$$ هنگامی که ویژگی با قانون قدرت مطابقت دارد.
بریدن اگر $x > max$، $x' = max$ را تنظیم کنید
اگر $x <min$، $x' = min$ را تنظیم کنید
زمانی که ویژگی دارای نقاط پرت شدید باشد.

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

کدام تکنیک برای عادی سازی یک ویژگی با توزیع زیر مناسب تر است؟

یک هیستوگرام که خوشه ای از داده ها را با مقادیری در محدوده 0 تا 200000 نشان می دهد. تعداد نقاط داده به تدریج برای محدوده 0 تا 100000 افزایش می یابد و سپس به تدریج از 100000 به 200000 کاهش می یابد.

مقیاس بندی Z-score
نقاط داده به طور کلی با توزیع نرمال مطابقت دارند، بنابراین مقیاس بندی Z-score آنها را در محدوده -3 تا +3 قرار می دهد.
مقیاس بندی خطی
بحث های مربوط به تکنیک های عادی سازی را در این صفحه مرور کنید و دوباره امتحان کنید.
مقیاس بندی ورود به سیستم
بحث های مربوط به تکنیک های عادی سازی را در این صفحه مرور کنید و دوباره امتحان کنید.
بریدن
بحث های مربوط به تکنیک های عادی سازی را در این صفحه مرور کنید و دوباره امتحان کنید.

فرض کنید در حال توسعه مدلی هستید که بهره وری یک مرکز داده را بر اساس دمای اندازه گیری شده در مرکز داده پیش بینی می کند. تقریباً همه مقادیر temperature در مجموعه داده شما بین 15 تا 30 (سلسیوس) قرار می گیرند، به استثنای موارد زیر:

  • یک یا دو بار در سال، در روزهای بسیار گرم، مقدار کمی بین 31 تا 45 در temperature ثبت می شود.
  • هر 1000 نقطه temperature به جای دمای واقعی روی 1000 تنظیم می شود.

کدام یک روش نرمال سازی معقول برای temperature خواهد بود؟

مقادیر پرت را بین 31 تا 45 برش دهید، اما مقادیر پرت را با مقدار 1000 حذف کنید.

مقادیر 1000 اشتباه هستند و به جای بریده شدن باید حذف شوند.

مقادیر بین 31 و 45 نقاط داده قانونی هستند. برش دادن احتمالاً ایده خوبی برای این مقادیر خواهد بود، با فرض اینکه مجموعه داده شامل نمونه های کافی در این محدوده دما نباشد تا مدل را برای پیش بینی های خوب آموزش دهد. با این حال، در حین استنباط، توجه داشته باشید که مدل بریده شده برای دمای 45 همان پیش بینی را برای دمای 35 انجام می دهد.

تمام نقاط پرت را برش دهید
بحث های مربوط به تکنیک های عادی سازی را در این صفحه مرور کنید و دوباره امتحان کنید.
تمام موارد پرت را حذف کنید
بحث های مربوط به تکنیک های عادی سازی را در این صفحه مرور کنید و دوباره امتحان کنید.
مقادیر پرت را بین 31 تا 45 حذف کنید، اما مقادیر پرت را با مقدار 1000 برش دهید.
بحث های مربوط به تکنیک های عادی سازی را در این صفحه مرور کنید و دوباره امتحان کنید.