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

  1. بسیاری از متغیرها با یکدیگر همبستگی داشته باشند.
  2. ممکن است تحلیل‌گر حوصله دسته بندی نداشته و یک مدل را روی کل مجموعه داده پیاده‌سازی کند. این کار موجب می‌شود دقت خروجی به شدت کاهش یابد.
  3. ممکن است تحلیل‌گر در مورد این که چه کاری باید انجام دهد، سردرگم شود.
  4. فرد ممکن است به استفاده از روش‌های راهبردی فکر کند تا با بهره‌گیری از آن‌ها بتواند متغیرهای مهم و تاثیرگذار بر تحلیل را بیاید.

گر چه چنین شرایطی ممکن است بسیار نگران کننده به نظر برسد؛ اما روش‌های آماری مانند تحلیل مولفه اساسی می‌تواند به تحلیل‌گر داده برای غلبه بر این شرایط کمک کند. در این نوشته، روش تحلیل مولفه اساسی به طور کامل و همراه با جزئیات به زبان ساده تشریح شده است. برای درک عملی این مفهوم، پیاده‌سازی روش تحلیل مولفه اساسی در زبان‌های برنامه‌نویسی پایتون و R نیز ارائه شده است. درک کامل این نوشتار نیازمند داشتن درک اولیه‌ای از مباحث آماری است.

تحلیل مولفه اساسی چیست؟

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

فرض بر آن است که یک مجموعه داده با ابعادی که در زیر آمده است وجود دارد.

50 (p) ×300 (n)

در این مجموعه داده n تعداد کل نمونه‌ها و p تعداد پیش‌بین‌ها (متغیرهای پیش‌بینی) است. به دلیل آنکه تعداد ابعاد زیاد و برابر ۵۰ است می‌توان p(p-1)/2 نمودار پراکندگی برای آن رسم کرد، این یعنی بیش از ۱۰۰۰ نمودار برای انجام تحلیل روی روابط بین متغیرها وجود دارد و در نتیجه تحلیل آن‌ها کاری بسیار خسته‌کننده، دشوار و پیچیده خواهد بود.

در این شرایط، یک رویکرد صحیح می‌تواند آن باشد که یک زیر مجموعه از پیش‌بین‌ها که حاوی بیشترین اطلاعات درباره داده‌ها هستند، انتخاب شود. این امر موجب می‌شود نمودار پراکندگی داده‌ها در ابعاد پایین‌تری قابل ترسیم باشد. تصویر زیر نگاشت داده‌های دارای ابعاد بالا (۳ بُعد) را به داده‌های با ابعاد پایین‌تر (۲ بُعد) با استفاده از روش تحلیل مولفه اساسی نشان می‌دهد. لازم به ذکر است هر بُعد حاصل شده در فضای جدید، یک ترکیب خطی از p ویژگی اصلی است.

شکل ۱: کاهش ابعاد داده‌ها با استفاده از روش تحلیل مولفه اساسی

مولفه اساسی چیست؟

یک مولفه اساسی یک ترکیب خطی نرمال شده از پیش‌بین‌های اصلی موجود در مجموعه داده است. در شکل ۱، PC1 و PC2 مولفه‌های اساسی هستند. فرض می‌شود یک مجموعه از پیش‌بین‌ها به صورت X¹, X²…,Xp وجود دارد. مولفه‌های اساسی این مجموعه از پیش‌بین‌ها را می‌توان بدین شکل نوشت:

Z¹ = Φ¹¹X¹ + Φ²¹X² + Φ³¹X³ + …. +Φp1Xp

که در آن:

  • Z¹ اولین مولفه اساسی است.
  • Φp¹ بردار بار شامل بردارهای بار (Φ¹, Φ²…) اولین مولفه اساسی است. بردارهای بار به مجموع مربعات مساوی با یک محدود شده‌اند. دلیل این امر آن است که داشتن مقادیر بار بزرگ ممکن است منجر به ایجاد واریانس بسیار بزرگ شود. این مقدار همچنین جهت مولفه اساسی (Z¹) را در جهتی که داده‌ها بیشترین تنوع را دارند، تعریف می‌کند. نتیجه این امر یک خط در فضای p ُبعدی است که نزدیک‌ترین مقدار به n نمونه را دارد. میزان نزدیکی به وسیله محاسبه میانگین مربعات فاصله‌های اقلیدسی اندازه‌گیری می‌شود.
  • X¹..Xp پیش‌بین‌های نرمال شده هستند. میانگین پیش‌بین‌های نرمال شده برابر با صفر و انحراف معیار آن‌ها برابر با یک است.

بنابراین:

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

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

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

Z² = Φ¹²X¹ + Φ²²X² + Φ³²X³ + …. + Φp2Xp

اگر دو مولفه ناهمبسته باشند، جهت‌های آن‌ها باید متعامد (مانند شکل ۲) باشد. شکل ۲ براساس داده‌های شبیه‌سازی شده با دو ویژگی ترسیم شده است. جهت مولفه‌ها، چنان‌که انتظار می‌رود به صورت متعامد است و این یعنی مقدار همبستگی آن‌ها برابر با صفر است.

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

کلیه مولفه‌های اساسی بعدی نیز از مفهومی مشابه آنچه بیان شد، پیروی می‌کنند. به عبارت دیگر، آن‌ها مقدار واریانس باقیمانده را بدون آنکه با مولفه‌های پیشین دارای همبستگی شوند، در خود حفظ می‌کنند. به‌طور کلی، در داده‌های دارای n × p بُعد، به میزان (min(n-1, p مولفه اساسی قابل ایجاد است.

جهت این مولفه‌ها به صورت نظارت نشده تعیین می‌شوند. یعنی، متغیر پاسخ (Y) برای تعیین جهت مولفه استفاده نمی‌شود. بنابراین، این رویکرد نظارت نشده است.

نکته: حداقل مربعات جزئی (PLS) یک جایگزین نظارت شده برای تحلیل مولفه اساسی (PCA) است. PLS برای تعیین مولفه اساسی، وزن بیشتری را به متغیرهایی که به شدت به متغیر پاسخ مرتبط هستند اختصاص می‌دهد.

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

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

چنانکه در شکل ۳ می‌توان دید، PCA دو بار روی مجموعه داده اجرا گشته (با متغیرهای نرمال شده و نرمال نشده). مجموعه داده به‌کار برده شده در این مثال دارای ۴۰ ویژگی است. چنانکه مشهود است، اولین مولفه اساسی تحت سیطره متغیر MRP قرار گرفته است. دومین مولفه اساسی نیز تحت تسلط متغیر Item_Weight قرار گرفته است. این اتفاقات به دلیل بالا بودن واریانس متغیر است. هنگامی‌که متغیرها نرمال می‌شوند، بصری‌سازی آن‌ها در فضای دو بُعدی به شکل بهتری انجام‌پذیر است.

شکل ۳: تحلیل مولفه اساسی با نرمال‌سازی متغیرها و بدون نرمال‌سازی آن‌ها

پیاده‌سازی روش تحلیل مولفه اساسی در زبان‌های برنامه‌نویسی پایتون و R

برای هر مساله چند مولفه اساسی باید پیدا کرد؟ می‌توان پاسخ این سوال را با نگاهی عمیق‌تر به مفاهیم تئوریک داد؛ ولی بهتر است به صورت عملی و همراه با پیاده‌سازی، پاسخ آن را یافت تا قابل درک‌تر باشد.

در مثالی که در ادامه مورد بررسی قرار گرفته از مجموعه داده Big Mart Prediction Challenge III استفاده شده است. لازم به ذکر است، روش تحلیل مولفه اساسی را تنها می‌توان روی داده‌های عددی اعمال کرد. بنابراین، اگر داده‌ها دارای متغیرهای اسمی (دسته‌ای) باشند، باید ابتدا آن‌ها را به عدد تبدیل کرد. همچنین، داده‌ها پیش از اعمال این روش باید پاک‌سازی شده باشند. در گام اول و در قطعه کد زیر داده‌ها بارگذاری و پاک‌سازی می‌شوند:

تا اینجا، به چالش داده‌های از دست رفته (missing values) پرداخته شد. اکنون متغیرهای (پاسخ) وابسته و دیگر متغیرهای تعیین‌کننده (اگر وجود داشته باشد) باقیمانده‌اند که باید آن‌ها را حذف کرد. از همین‌رو، یک روش یادگیری نظارت نشده جهت حذف متغیرهای پاسخ مطابق کد زیر استفاده شده است.

اکنون باید متغیرهای موجود (پیش‌بین‌ها) در مجموعه داده را با کد زیر بررسی کرد:

به دلیل آنکه روش تحلیل مولفه اساسی فقط روی داده‌های عددی قابل اعمال است، در ابتدا و پیش از اعمال آن روی مجموعه داده، وجود یا عدم وجود متغیرهایی غیر عددی را باید بررسی کرد. برای این کار می‌توان از کد زیر استفاده کرد:

متاسفانه 6 مورد از 9 متغیر موجود ذاتا اسمی (دسته‌ای) هستند. لذا باید آن‌ها را ابتدا به متغیرهای عددی تبدیل کرد. در ادامه از روش کدگذاری one hot برای تبدیل داده‌های اسمی (دسته‌ای) به عددی استفاده شده است.

از کد زیر استفاده کرده و بررسی می‌کنیم که آیا پس از انجام اقدامات قبلی، کل مجموعه داده صرفاً دارای مقادیر عددی است یا نه:

نتیجه این قطعه کد نشان می‌دهد که در حال حاضر کل داده‌های موجود در مجموعه داده به صورت عددی هستند. بنابراین باید داده‌ها را با استفاده از قطعه کد زیر به دو دسته آزمون و آموزش (test و train) تقسیم کرد:

اکنون بستر لازم برای استفاده از روش تحلیل مولفه اساسی فراهم شده است. تابع پایه R یعنی ()prcomp برای اعمال PCA استفاده شده است. این تابع به‌طور پیش‌فرض، متغیرهایی که میانگین صفر دارند را در مرکز قرار می‌دهد. با استفاده از پارامتر scale = T، متغیرها نرمال می‌شوند تا انحراف معیار آن‌ها برابر با ۱ باشد.

تابع ()prcomp پنج مقدار مفید را در خروجی ارائه می‌کند:

۱. مرکز (center) و مقیاس (scale)، میانگین و انحراف معیار متغیرهایی که برای نرمال‌سازی پیش از پیاده‌سازی PCA استفاده شده‌اند را نشان می‌دهد.

۲. مقدار دوران (rotation)، بار مولفه اساسی را فراهم می‌کند. هر ستون از ماتریس دوران شامل بردار بار مولفه اساسی است. این مهم‌ترین سنجه‌ای است که باید به آن توجه کرد.

این کد ۴۴ مولفه اساسی بار را به عنوان خروجی ارائه می‌کند. باید توجه داشته باشید که این پاسخ قطعاً درست است. در یک مجموعه داده، بیشینه تعداد بارهای مولفه اساسی برابر با کمینه (n-1 و p) است. در ادامه چهار مولفه اساسی و پنج سطر اول آن‌ها قابل مشاهده است.

۳. برای محاسبه بردار امتیاز مولفه اساسی، نیاز به ضرب کردن بارها با داده‌ها نیست. ماتریکس x دارای بردارهای امتیاز مولفه اساسی در 44 × 8523 بُعد است.

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

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

پارامتر scale = 0 برای اطمینان از این امر است که بردارها برای نمایش بار مدرج شده‌اند. برای استنتاج از نمودار بالا، باید به نقاط پایانی نمودار (بالا، پایین، چپ و راست) توجه کرد.

از این نمودار می‌توان استنتاج کرد که مولفه اساسی مربوطه به مقدارهای Outlet_TypeSupermarket و Outlet_Establishment_Year 2007 است. به‌طور مشابه، می‌توان گفت که دومین مولفه مربوط به measure of Outlet_Location_TypeTier1 و Outlet_Sizeother است. برای تعیین مقادیر دقیق متغیرهای موجود در مولفه، باید ماتریکس دوران بالا را مجدداً بررسی کرد.

تابع ()prcomp امکان محاسبه انحراف معیار از هر مولفه اساسی را فراهم می‌کند. sdev به انحراف معیار مولفه‌های اساسی مربوط است.

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

خروجی ارائه شده نشان می‌دهد که اولین مولفه ۱۰.۳٪ واریانس را در بر دارد. مولفه دوم ۷.۳٪ واریانس را در بر دارد. مولفه سوم ۶.۲٪ واریانس را در بر دارد و به همین ترتیب برای دیگر مولفه‌ها می‌توان استنتاج کرد. بنابراین باید تصمیم گرفت که چند مولفه باید برای مدل‌سازی انتخاب شوند.

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

شکل 5: رسم نمودار سنگ‌ریزه در زبان برنامه‌نویسی R

نمودار بالا نشان می‌دهد که۳۰ مولفه حدود ۹۸.۴٪ از واریانس مجموعه داده‌ها را در بر دارند. به عبارت دیگر، با استفاده از روش مولفه اساسی، ۴۴ پیش‌بین به ۳۰ پیش‌بین (بدون از دست دادن واریانس) کاهش پیدا کرد. این قدرت روش تحلیل مولفه اساسی است. در ادامه برای کسب اطمینان و تایید نهایی، نمودار واریانس تجمعی ترسیم شده است. این نمودار یک تصویر روشن از تعداد مولفه‌ها ارائه می‌کند.

شکل 6: رسم نمودار سنگ‌ریزه در زبان برنامه‌نویسی R

این نمودار نشان می‌دهد که ۳۰ مولفه دارای واریانسی نزدیک به ۹۸٪ هستند. بنابراین، در این مساله تعداد ۳۰ مولفه (از مولفه اساسی اول تا سی‌ام) انتخاب می‌شوند و فاز مدل‌سازی آغاز می‌شود. این کار گام‌های پیاده‌سازی PCA روی مجموعه داده آموزش را کامل می‌سازد. برای مدل‌سازی از ۳۰ مولفه به عنوان ویژگی‌های موجود استفاده شده و فرآیند طبیعی مدل‌سازی انجام می‌شود.

مدل‌سازی پیش‌بین با مولفه‌های PCA

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

اما، چند نکته مهم که باید به آن‌ها توجه کرد:

  1. نباید داده‌های آموزش و آزمون را برای تعیین مولفه‌های PCA روی کل مجموعه داده به طور یک‌باره، با یکدیگر ترکیب کنیم. زیرا، این کار موجب می‌شود کل فرضیه تعمیم باطل شود. دلیل این امر آن است که داده‌های آزمون به مجموعه داده آموزش «نشت» کرده‌اند. به عبارت دیگر، مجموعه داده آزمون «نادیده» باقی نمی‌ماند. این کار موجب از بین رفتن قابلیت تعمیم مدل می‌شود.
  2. نباید PCA روی مجموعه داده‌های آزمون و آموزش به‌طور جداگانه اعمال شود. زیرا، بردارهای حاصل شده از مجموعه داده‌های آموزش و آزمون، جهت‌های مختلفی خواهند داشت (به دلیل داشتن واریانس نامساوی). به این ترتیب، با مقایسه داده‌ها روی محورهای گوناگون می‌توان نتیجه‌گیری کرد. بنابراین، بردارهای حاصل شده از مجموعه داده آزمون و آموزش باید محورهای مشابهی داشته باشند.

پس چه کاری باید انجام داد؟

باید دقیقا تبدیل‌هایی که روی مجموعه داده آموزش انجام شده، روی مجموعه داده‌های آزمون نیز انجام شود. این کار شامل center و scaling نیز می‌شود. قطعه کد لازم برای انجام این کار در زبان R در ادامه آورده شده است.

آنچه ارائه شد فرآیند ایجاد یک مدل کامل پس از استخراج PCA است. احتمالا پس از اعمال این روش متوجه خواهید شد که نتایج نهایی رضایت‌بخش نیست و استفاده از روش جنگل تصادفی گزینه‌ بهتری محسوب می‌شود!

کاربران پایتون

برای پیاده‌سازی PCA در پایتون، تنها کافی است PCA را از کتابخانه sklearn فراخوانی کرد. سایر توضیحات به صورتی است که برای زبان R گفته شد. البته، نتایج حاصل از پیاده‌سازی روش به هر دو زبان نیز مشابه خواهد بود. مجموعه داده استفاده شده برای قطعه کد پایتون زیر، نسخه پاک‌سازی شده است که در آن مساله مقادیر از دست رفته حل شده و متغیرهای اسمی (دسته‌ای) به متغیرهای عددی تبدیل شده‌اند. فرآیند مدل‌سازی مشابه آنچه برای R گفته شد است.

نکاتی که باید همواره درباره روش تحلیل مولفه اساسی به خاطر داشت:

  1. روش تحلیل مولفه اساسی برای غلبه بر افزونگی متغیرهای موجود در مجموعه داده‌ها مناسب است.
  2. این متغیرها ذاتا دارای ابعاد کمی هستند.
  3. مولفه‌های این متغیرها حاصل ترکیب خطی نرمال شده متغیرهای پیش‌بین اصلی هستند.
  4. هدف این مولفه‌ها حفظ بیشترین اطلاعات ممکن با واریانس‌های بالا است که پیش از این تشریح شد.
  5. اولین مولفه اساسی بالاترین واریانس را داراست و پس از آن مولفه اساسی دوم دارای بیشترین مقدار واریانس است و این موضوع برای مولفه‌های اساسی سوم و دیگر مولفه‌های اساسی نیز صادق است.
  6. مولفه‌ها باید ناهمبسته باشند (جهت‌های آن‌ها متعامد است).
  7. نرمال‌سازی داده‌ها هنگامی‌که متغیرها دارای واحدهای (یکاهای) گوناگونی هستند، فوق‌العاده مهم است.
  8. PCA روی مجموعه داده‌های دارای سه یا تعداد بیشتری بُعد بهترین عملکرد را دارد. زیرا، در ابعاد بالاتر، تفسیر ابْر داده‌ها (Cloud of Data) بسیار دشوار خواهد بود.
  9. PCA روی مجموعه داده‌های دارای ویژگی‌های عددی قابل اعمال است.
  10. PCA ابزاری است که به انجام بهترین بصری‌سازی از داده‌های دارای ابعاد بالا کمک می‌کند.

سخن پایانی

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

==

^^

به عنوان حامی، استارتاپ، محصول و خدمات خود را در انتهای مطالب مرتبط مجله فرادرس معرفی کنید.

telegram
twitter

الهام حصارکی

«الهام حصارکی»، فارغ‌التحصیل مقطع کارشناسی ارشد مهندسی فناوری اطلاعات، گرایش سیستم‌های اطلاعات مدیریت است. او در زمینه هوش مصنوعی و داده‌کاوی، به ویژه تحلیل شبکه‌های اجتماعی، فعالیت می‌کند.

بر اساس رای 4 نفر

آیا این مطلب برای شما مفید بود؟

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *