تحلیل مولفه اصلی در متلب

pca in matlab

تحلیل مولفه اصلی (PCA)

یکی از مباحثِ اصلی و پیشرفته‌تر در جبر خطی مبحثتحلیل مولفه اصلی (Principal Component Analysis) یا به اختصار PCA می‌گویند. عمده کاربرد PCA در حوزه‌ی علوم‌داده برای کاهشِ فضای ویژگی (Dimensionality Reduction) است. PCA همان‌طور که از نامش پیداست می‌تواند مولفه‌های اصلی را شناسایی کند و به ما کمک می‌کند تا به جای اینکه تمامیِ ویژگی‌ها را مورد بررسی قرار دهیم، ویژگی‌هایی با ارزشِ بالاتر را شناسایی کنیم. در نتیجه این یک روش استخراج ویژگی است.

VARIENCE PCA
مولفه های اصلی با مقدار واریانس متفاوت

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

کاربرد PCA

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

  • زمانی که برای تحلیل به مولفه های مستقل از هم نیازمندیم.
  • زمانی که می خواهیم متغییر های کم اهمیت را کنار بگذاریم.
  • زمانی که تعداد ویژگی های زیاد موجب بیش برازش در فرآیند آموزش می شود.

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

مفاهیم ریاضی PCA

تجزیه و تحلیل مؤلفه اصلی (PCA) معادل برازش یک بیضی n بعدی به داده ها است، که در آن بردارهای ویژه ماتریس کوواریانس داده، محورهای بیضی هستند. مقادیر ویژه نشان دهنده میزان واریانس هر یک از بردارهای ویژه می باشد. (تعریف پیچیده اما دقیقی بود!)
تا اینجا به دو اصطلاح جبر خطی اشاره شد، مقدار ویژه و بردار ویژه (eigenvectors, eigenvalues).

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

PCA CHART
چارت الگوریتم PCA
  • در قدم اول مرکز داده های عددی باید بر روی صفر قرار گیرد. برای اینکار می توان میانگین را از داده ها کسر کرد.
  • مرحله بعد محاسبه کوواریانس داده های ورودی می باشد.
  • سپس مقدار ویژه و ماتریس ویژه این ماتریس را محاسبه نموده
  • ماتریس ویژه را بر اساس مقادیر ویژه از بزرگ به کوچیک مرتب کت
  • و در نهایت بردار ویژگی مقادیر ورودی را بر اساس این ماتریس محاسبه می نماییم.
principal component
واریانس محور مولفه های اصلی

درک بهتر مفهوم مقدار ویژه (واریانس) به شکل بالا دقت کنید، دو محور (X,Y) به دو مولفه اصلی (V1,V2) نگاشت شده که چون پراکندگی داده ها روی محور V1 بیشتر است (واریانس بیشتر است)، اهمیت این محور V1 را پررنگ تر می کند. بنابراین می توان فضای دو بعدی X,Y را به فضای تک بعدی V1 نگاشت داد و تفکیک داده ها را براساس تصویر دادهها بر روی این محور انجام داد. مثال دیگری از فضای سه بعدی در زیر نشان داده شده است.

3D pca
PCA منجر به کاهش سه بعدی فضای ویژگی به دو بعد می شود.

در واقع با PCA توانستیم در این حالت فضای سه بعدی را به فضای دو بعدی کاهش دهیم.

PCA در متلب

برای داده های iris سه نوع مختلف گل Sentosa، Virginica و Versicolor را شامل می شود که برای هر نوع 4 ویژگی طول و عرض کاسبرگ و گلبرگ‌هایشان برای 50 اندازگیری شده است. در واقع داده ها در یک فضای 4 بعدی مدل شده است که قابل رسم کردن و نشان دادن نیست.

اما آیا تمام این چهار ویژگی مستقل از همند؟
آیا به همه این 4 ویژگی نیاز است تا تفکیک داده ها ممکن شود؟

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

data  = load ('fisheriris.mat')
features = (data.meas);  %4*150
target = data.species; % 3 kind of fish
[coeff,score,latent] = pca(features)

latent مقادیر ویژه
score مقادیر داده های ورودی در مختصات جدید
coeff ماتریس ویژه می باشد

برای نمایش داده ها تنها با یک بعد (با بیشترین واریانس ) و دو بعد (دو بعد با واریانس بالاتر از بقیه) به صورت زیر خواهد بود .

iris 1D
نمایش تک بعدی

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

Iris 2D
نمایش دو بعدی سه کلاس

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

کد های پایه این پست آموزشی به همراه شکل موجود می باشد.[دریافت کد کامل این پست آموزشی.]

2 نظر برای “تحلیل مولفه اصلی در متلب

دیدگاهتان را بنویسید

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