زهره کریمی
زهره کریمی
خواندن ۳ دقیقه·۳ سال پیش

Principal Component Analysis

درود دوستان؛

چند ماه پیش یه مطلب درباره کاهش ابعاد گذاشتم خیلی مختصر و مفید بود. امروز می خوام با جزییات بیشتری براتون درمورد کاهش ابعاد و PCA توضیح بدم.

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

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

خب حالا ممکنه بعضیا که رگرسیون هم کار می کنن به این فکر کنند که پس فرق PCA با رگرسیون چیه این که همون شد!!! در جواب باید بگم که رگرسیون برای داده های لیبل دار استفاده می شه ولی وقتی از PCA استفاده می کنیم لیبلی نداریم (اگه هم مساله نظارت شده باشه و لیبل هم داشته باشه اهمیتی نداره) . و مورد دوم اینکه تو رگرسیون هدف کمینه کردن خطای تخمین هستولی تو PCA هدف کمینه کردن خطای تابش هست.

حالا می خام براتون الگوریتم PCA رو کامل توضیح بدم:

یک سری داده آموزشی داریم بدون لیبل (توجه کنید که ممکنه اصلا لیبل هم داشته باشه ولی اهمیتی برای ما ندارد چون فقط با داده های x یا آموزشی کار داریم) پس m تا داده داریم که هر داده خودش یه بردار n بعدی می تونه باشه

مرحله اول (الزامی): پیش پردازش روی داده ها : این مرحله خیلی مهمه و باید میانگین داده ها رو بدست بیاریم و اونو از همه داده ها تو همه n تا بعد کم کنیم. j ها همون فیچرها یا بعدها میشن.

مرحله دوم (اختیاری): حالا اگه داده هایی که از مرحله قبل به دست اومده بازه های مختلفی دارن باید نرمال سازی انجام بدیم تا بازه ویژگی های مختلف با هم برابر بشه. s اینجا همون پراکندگی یا واریانس هست، بعد از اینکه داده ها رو از میانگینشون کم کردیم تقسیم به واریانس می کنیم تا داده ها نرمال بشه.

مرحله سوم (الزامی) : محاسبه ماتریس کواریانس


مرحله چهارم (الزامی): محاسبه بردارهای ویژه ماتریس کوواریانس

خب اول به کمک تجزیه svd (تو یه جلسه دیگه براتون این نوع تجزیه رو توضیح میدم) ماتریس کوواریانس رو به سه تا ماتریس تجزیه می کنیم.

[U,S,V]=svd(∑)

مرحله پنجم (الزامی): حالا این ماتریسا مشخصات خاصی دارن که ما دنبال جهت های مهم تر و تبدیل از فضای n بعدی به فضای k بعدی هستیم. از خاصیت تجزیه svd این هست که بردارهای خروجی رو به ترتیب اهمیتشون نمایش میده پس از U که شامل n تا بردار هست k تای مهمتر رو از اول انتخاب می کنیم.

پ ماتریس S یه ماتریس قطریه که اهمیت این بردارها رو نشون می ده و به این صورته که اولین عنصر تو ماتریس S متناظر میشه با بردار U1. و چون گفتیم که تو SVD به ترتیب اهمیتشون نشون میده اینجا هم عددا از بزرگ به کوچیک می شن. پس حالا با توجه به S میشه این ماتریس U رو برش بزنیم به k تا بردار. تو PCA با V دیگه کاری نداریم

مرحله ششم (الزامی): محاسبه داده های جدید با ابعاد k

یعنی اینجا تنها کاری که می کنیم ماتریس ترانهاده U رو در X ضرب می کنیم و تامام.

پس خلاصه ش می شه :

1- پیش پردازش

2- نرمال سازی در صورت نیاز

3- محاسبه ماتریس کواریانس

4- محاسبه تجزیه مقادیر منفرد (SVD)

5- انتخاب k مؤلفه اول

6- محاسبه داده های جدید با k بعد


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