شرکت نرم افزار برنامه نویسان دانش برتر سهند

الگوریتم pca

الگوریتم pca

تحلیل مولفه اساسی (PCA) یا (Principal Component Analysis) یک «روش تبدیل خطی» (Linear Transformation Technique) ساده و در عین حال محبوب و کارآمد محسوب می‌شود. از این روش در کاربردهایی مانند پیش‌بینی بازار بورس، تحلیل داده‌های بیان ژن و بسیاری از دیگر موارد استفاده می‌شود. در این راهنما، می‌توان مشاهده کرد که PCA یک روش «جعبه سیاه» (Black Box) نیست و این امکان وجود دارد که آنچه در این الگوریتم انجام می‌شود را در تنها سه گام اساسی مشاهده کرد.

مقدمه‌ای از تحلیل مولفه اساسی (PCA)

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

PCA در مقایسه با LDA

هم «تحلیل تشخیصی خطی» (Linear Discriminant Analysis | LDA) و هم تحلیل مولفه اساسی (PCA) از جمله روش‌های تبدیل خطی هستند. PCA جهت‌هایی که واریانس داده‌ها را بیشینه می‌کنند (مولفه اساسی) می‌یابد، در حالیکه هدف LDA پیدا کردن جهت‌هایی است که جداسازی (یا تمایز) بین دسته‌های گوناگون را بیشینه می‌کند و می‌تواند در مسائل دسته‌بندی الگو (PCA از برچسب کلاس صرف‌نظر می‌کند) مورد استفاده قرار بگیرد. به بیان دیگر، PCA کل مجموعه داده را در یک (زیر)فضای دیگر طرح‌ریزی می‌کند و LDA تلاش می‌کند تا یک ویژگی مناسب را به منظور ایجاد تمایز بین الگوهایی که به دسته‌های مختلف تعلق دارند تعیین کند.

PCA و کاهش ابعاد

اغلب، هدف مورد انتظار کاهش ابعاد یک مجموعه داده d بُعدی با طرح‌ریزی آن در یک زیرفضای k بُعدی (که در آن k < d است) به منظور افزایش بازدهی محاسباتی به صورتی است که بخش مهم اطلاعات باقی بماند. پرسش مهمی که در این وهله مطرح می‌شود آن است که «سایز K که داده‌ها را به خوبی نشان می‌دهد چند است؟».

در ادامه، بردارهای ویژه (Eigenvectors) (مولفه‌های اساسی) برای مجموعه داده محاسبه و همه آن‌ها در یک «ماتریس تصویر» (Projection Matrix) گردآوری می‌شوند. به هر یک از این بردارهای ویژه یک مقدار ویژه تخصیص داده می‌شود که می‌تواند به عنوان طول یا بزرگنمایی بردار ویژه متناظر در نظر گرفته شود. اگر برخی از مقدارهای ویژه دارای بزرگنمایی به طور قابل توجهی بزرگ‌تر از دیگر موارد بوده‌اند، کاهش مجموعه داده با تحلیل مولفه اساسی (PCA) به یک زیرفضای ابعاد کوچک‌تر با حذف جفت ویژه‌هایی با «اطلاعات کمتر» معقول است.

خلاصه‌ای از رویکرد PCA

استانداردسازی داده‌ها

به دست آوردن بردارهای ویژه و مقدارهای ویژه از «ماتریکس کواریانس» (Covariance matrix) یا «ماتریس همبستگی» (Correlation Matrix)، یا انجام «تجزیه مقدارهای منفرد» (Singular Vector Decomposition)

مرتب‌سازی مقدارهای ویژه به ترتیب نزولی و انتخاب k بردار ویژه‌ای که متناظر با K بزرگ‌ترین مقدار ویژه هستند. K تعداد ابعاد زیرفضای ویژگی جدید است (k≤d).

ساخت ماتریکس تصویر W از K بردار ویژه انتخاب شده

تبدیل مجموعه داده اصلی X به وسیله W، برای به دست آوردن زیرفضای K‌بُعدی Y

آماده‌سازی مجموعه داده IRIS

در این راهنما، از مجموعه داده معروف IRIS استفاده خواهد شد که در مخزن یادگیری ماشین UCI (+) وجود دارد. مجموعه داده IRIS دارای اندازه‌گیری‌های مربوط به طول و عرض کاسبرگ و گلبرگ سه گونه مختلف از گیاه زنبق، در مجموع برای ۱۵۰ نمونه است. سه دسته موجود در مجموعه داده IRIS عبارتند از:

(Iris-virginica (n=50

و چهار ویژگی این مجموعه داده عبارتند از:

طول کاسبرگ به سانتی‌متر (sepal length)

عرض کاسبرگ به سانتی‌متر (sepal width)

طول گلبرگ به سانتی‌متر (petal length)

عرض گلبرگ به سانتی‌متر (petal width)

بارگذاری مجموعه داده

به منظور بارگذاری مستقیم داده‌های IRIS از مخزن UCI، از کتابخانه «پانداس» (Pandas) استفاده خواهد شد. پانداس کتابخانه‌ای عالی است که کار با داده‌ها را به چالشی فوق‌العاده مبدل می‌کند.

مقدمه‌ای از تحلیل مولفه اساسی (PCA)

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

PCA در مقایسه با LDA

هم «تحلیل تشخیصی خطی» (Linear Discriminant Analysis | LDA) و هم تحلیل مولفه اساسی (PCA) از جمله روش‌های تبدیل خطی هستند. PCA جهت‌هایی که واریانس داده‌ها را بیشینه می‌کنند (مولفه اساسی) می‌یابد، در حالیکه هدف LDA پیدا کردن جهت‌هایی است که جداسازی (یا تمایز) بین دسته‌های گوناگون را بیشینه می‌کند و می‌تواند در مسائل دسته‌بندی الگو (PCA از برچسب کلاس صرف‌نظر می‌کند) مورد استفاده قرار بگیرد. به بیان دیگر، PCA کل مجموعه داده را در یک (زیر)فضای دیگر طرح‌ریزی می‌کند و LDA تلاش می‌کند تا یک ویژگی مناسب را به منظور ایجاد تمایز بین الگوهایی که به دسته‌های مختلف تعلق دارند تعیین کند.

PCA و کاهش ابعاد

اغلب، هدف مورد انتظار کاهش ابعاد یک مجموعه داده d بُعدی با طرح‌ریزی آن در یک زیرفضای k بُعدی (که در آن k < d است) به منظور افزایش بازدهی محاسباتی به صورتی است که بخش مهم اطلاعات باقی بماند. پرسش مهمی که در این وهله مطرح می‌شود آن است که «سایز K که داده‌ها را به خوبی نشان می‌دهد چند است؟».

در ادامه، بردارهای ویژه (Eigenvectors) (مولفه‌های اساسی) برای مجموعه داده محاسبه و همه آن‌ها در یک «ماتریس تصویر» (Projection Matrix) گردآوری می‌شوند. به هر یک از این بردارهای ویژه یک مقدار ویژه تخصیص داده می‌شود که می‌تواند به عنوان طول یا بزرگنمایی بردار ویژه متناظر در نظر گرفته شود. اگر برخی از مقدارهای ویژه دارای بزرگنمایی به طور قابل توجهی بزرگ‌تر از دیگر موارد بوده‌اند، کاهش مجموعه داده با تحلیل مولفه اساسی (PCA) به یک زیرفضای ابعاد کوچک‌تر با حذف جفت ویژه‌هایی با «اطلاعات کمتر» معقول است.

خلاصه‌ای از رویکرد PCA

استانداردسازی داده‌ها

به دست آوردن بردارهای ویژه و مقدارهای ویژه از «ماتریکس کواریانس» (Covariance matrix) یا «ماتریس همبستگی» (Correlation Matrix)، یا انجام «تجزیه مقدارهای منفرد» (Singular Vector Decomposition)

مرتب‌سازی مقدارهای ویژه به ترتیب نزولی و انتخاب k بردار ویژه‌ای که متناظر با K بزرگ‌ترین مقدار ویژه هستند. K تعداد ابعاد زیرفضای ویژگی جدید است (k≤d).

ساخت ماتریکس تصویر W از K بردار ویژه انتخاب شده

تبدیل مجموعه داده اصلی X به وسیله W، برای به دست آوردن زیرفضای K‌بُعدی Y

آماده‌سازی مجموعه داده IRIS

در این راهنما، از مجموعه داده معروف IRIS استفاده خواهد شد که در مخزن یادگیری ماشین UCI (+) وجود دارد. مجموعه داده IRIS دارای اندازه‌گیری‌های مربوط به طول و عرض کاسبرگ و گلبرگ سه گونه مختلف از گیاه زنبق، در مجموع برای ۱۵۰ نمونه است. سه دسته موجود در مجموعه داده IRIS عبارتند از:

(Iris-setosa (n=50

(Iris-versicolor (n=50

(Iris-virginica (n=50

و چهار ویژگی این مجموعه داده عبارتند از:

طول کاسبرگ به سانتی‌متر (sepal length)

عرض کاسبرگ به سانتی‌متر (sepal width)

طول گلبرگ به سانتی‌متر (petal length)

عرض گلبرگ به سانتی‌متر (petal width)

بارگذاری مجموعه داده

به منظور بارگذاری مستقیم داده‌های IRIS از مخزن UCI، از کتابخانه «پانداس» (Pandas) استفاده خواهد شد. پانداس کتابخانه‌ای عالی است که کار با داده‌ها را به چالشی فوق‌العاده مبدل می‌کند.

استانداردسازی

استانداردسازی داده‌ها پیش از تحلیل مولفه اساسی (PCA) روی ماتریس کوارایانس، بستگی به مقیاس اندازه‌گیری ویژگی‌های اصلی دارد. از آنجا که PCA یک زیرفضای ویژگی دارد که واریانس را در طول محورها بیشینه می‌کند، برای استانداردسازی داده‌ها نیز قابل بهره‌برداری است؛ به ویژه اگر در مقیاس‌های گوناگون اندازه‌گیری شده باشد. اگرچه، همه ویژگی‌ها در مجموعه داده IRIS به سانتی‌متر اندازه‌گیری شده‌اند، می‌توان با تبدیل داده‌ها به یک مقیاس واحد (میانگین=۰ و واریانس=۱) ادامه داد، که برای کارایی بهینه بسیاری از الگوریتم‌ها یادگیری ماشین لازم است.

۱. تجزیه ویژه، محاسبه بردارهای ویژه و مقدارهای ویژه

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

ماتریکس کواریانس

رویکرد کلاسیک در PCA انجام «تجزیه ویژه» (Eigendecomposition) در ماتریس کواریانس Σ است که یک ماتریس d×d محسوب می‌شود و هر عنصر در آن نمایانگر کواریانس بین دو ویژگی است. کواریانس بین دو ویژگی به صورت زیر محاسبه می‌شود:

تجزیه ویژه

می‌توان محاسبه ماتریس کواریانس را با معادله ماتریس زیر انجام داد.

که در آن بردار میانگین است. بردار میانگین، یک بردار dبُعدی است که در آن هر مقدار نشانگر میانگین نمونه از بردار ویژگی در مجموعه داده است.راهکار عمیق‌تر بالا، که به سادگی به منظور اثبات مورد استفاده قرار گرفت را می‌توان با تابع cov در کتابخانه NumPy پیاده‌سازی کرد.سپس، یک تجزیه ویژه در ماتریس کواریانس انجام می‌شود.

ماتریس همبستگی

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

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

تجزیه ویژه ماتریس کواریانس بعد از استانداردسازی داده‌ها

تجزیه ویژه ماتریس همبستگی

تجزیه ویژه ماتریس همبستگی پس از استانداردسازی داده‌ها

تجزیه مقدارهای منفرد

در حالیکه تجزیه ویژه ماتریس کواریانس یا همبستگی ممکن است بصری‌تر باشد، اغلب پیاده‌سازی‌های PCA از «تجزیه مقدار منفرد» (Singular Vector Decomposition | SVD) برای بهبود کارایی محاسباتی استفاده می‌کنند. بنابراین، SVD برای تایید اینکه نتایج در واقع یکسان هستند اجرا می‌شود.

۲. انتخاب مولفه اساسی

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

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

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

به منظور انجام این کار، رویکرد متداول، رتبه‌بندی مقدارهای ویژه از بالاترین مقدار به پایین‌ترین برای انتخاب K بالاترین بردار ویژه است.

پس از مرتب‌سازی «جفت‌های ویژه» (eigenpairs)، پرسش بعدی این است که «چه تعداد مولفه اساسی برای فضای ویژگی جدید انتخاب خواهد شد؟». یک سنجه مناسب «واریانس توصیف شده» (Explained variation) است که از مقدارهای ویژه قابل محاسبه به شمار می‌آید. واریانس توصیف شده، بیان می‌کند که چقدر اطلاعات (واریانس) به هر مولفه اساسی اختصاص دارد.

نمودار بالا نشان می‌دهد که بیشترین واریانس (برای دقیق‌تر بودن باید گفت ٪۷۲.۷۷ واریانس) به تنهایی به وسیله اولین مولفه اساسی ارائه می‌شود. دومین مولفه اساسی همچنان دربردارنده اطلاعات است (٪۲۳.۰۳)، در حالی که سومین و چارمین مولفه می‌توانند در عین امنیت بدون از دست دادن اطلاعات زیادی حذف شوند. دو مولفه اساسی اول و دوم، در کنار هم در بردارنده ٪۹۵.۸ اطلاعات هستند.

اکنون، نوبت جذاب‌ترین بخش کار یعنی ساخت «ماتریس تصویرگر» (Projection Matrix) است که برای تبدیل اطلاعات IRIS به یک زیرفضای ویژگی جدید مورد استفاده قرار می‌گیرد. اگرچه، نام «ماتریس تصویرگر» ارتباط خوبی با آن دارد، اما اساسا صرفا یک ماتریس از k بردار ویژه به هم ملحق شده است. در اینجا، فضای ویژگی ۴بُعدی، با انتخاب دو بردار ویژه با بالاترین مقدارهای ویژه برای ساخت ماتریس بردار ویژه d×k بُعدی W، به زیرفضای ۲بُعدی کاهش پیدا کرد.

۳. تصویر کردن روی فضای ویژگی جدید

در آخرین گام، از ماتریس تصویرگر ۲×۴بُعدی W برای تبدیل نمونه‌ها به یک زیرفضای جدید با معادله Y=X×W استفاده می‌شود، که در آن Y یک ماتریس ۲×۱۵۰ از نمونه‌های تبدیل شده است.

PCA در سایکیت‌لِرن

برای اهداف آموزشی، کلیه جزئیات لازم برای پیاده‌سازی تحلیل مولفه اساسی (PCA) و اعمال آن روی مجموعه داده IRIS بیان شد. ولی خوشبختانه، پیاده‌سازی این الگوریتم در کتابخانه «سایکیت‌لِرن» (Scikit-learn) موجود است

منبع

https://blog.faradars.org/

گفتگو در مورد طراحی اپلیکیشن