پیشرفتهای بوجود آمده در جمع آوری داده و قابلیتهای ذخیره سازی در طی دهه­های اخیر باعث شده در بسیاری از علوم با حجم بزرگی از اطلاعات روبرو شویم. محققان در زمینه­های مختلف مانند مهندسی، ستاره شناسی، زیست شناسی و اقتصاد هر روز با مشاهدات بیشتر و بیشتری روبرو می­شوند. در مقایسه با بسترهای داده­ای قدیمی و کوچکتر، بسترهای داده­ای امروزی چالشهای جدیدی در تحلیل داده­ها بوجود آورده­اند. روشهای آماری سنتی به دو دلیل امروزه کارائی خود را از دست داده­اند. علت اول افزایش تعداد مشاهدات (observations) است، و علت دوم که از اهمیت بالاتری برخوردار است افزایش تعداد متغیرهای مربوط به یک مشاهده می­باشد.

تعداد متغیرهایی که برای هر مشاهده باید اندازه گیری شود ابعاد داده نامیده می­شود. عبارت “متغیر” (variable) بیشتر در آمار استفاده می­شود در حالی که در علوم کامپیوتر و یادگیری ماشین بیشتر از عبارات “ویژگی” (feature) و یا “صفت” (attribute) استفاده می­گردد.

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

روشهای کاهش ابعاد داده به دو دسته تقسیم می­شوند:

  • روشهای مبتنی بر استخراج ویژگی: این روشها یک فضای چند بعدی را به یک فضای با ابعاد کمتر نگاشت می­کنند. در واقع با ترکیب مقادیر ویژگیهای موجود، تعداد کمتری ویژگی بوجود می­آورند بطوریکه این ویژگیها دارای تمام (یا بخش اعظمی از) اطلاعات موجود در ویژگیهای اولیه باشند. این روشها به دو دسته­ی خطی و غیر خطی تقسیم می­شوند.
  • روشهای مبتنی بر انتخاب ویژگی: این روشها سعی می­کنند با انتخاب زیرمجموعه­ای از ویژگیهای اولیه، ابعاد داده­ها را کاهش دهند. در پاره­ای از اوقات تحلیلهای داده­ای نظیر طبقه­بندی برروی فضای کاسته شده نسبت به فضای اصلی بهتر عمل می­کند.

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

در فصل سوم روشهای مبتنی بر انتخاب ویژگی ارائه شده است. می­توان گفت در این فصل یک مطالعه­ اجمالی برروی تمامی روشهای انتخاب ویژگی انجام شده است. در تهیه­ی مطالب این فصل، از گزارش “معرفی روشهای مختلف انتخاب ویژگی” توسط صادق سلیمان­پور استفاده شده است که جا دارد در همین­جا از ایشان تشکر نمایم.

 


۱- روشهای مبتنی بر استخراج ویژگی

همانطور که در فصل اول اشاره شد روشهای مبتنی بر استخراج ویژگی، یک فضای چند بعدی را به یک فضای با ابعاد کمتر نگاشت می­دهند. این روشها به دو دسته­ی خطی و غیرخطی تقسیم می­شوند. روشهای خطی که ساده­ترند و فهم آنها راحت­تر است بدنبال یافتن یک زیرفضای تخت عمومی[۱] هستند. اما روشهای غیرخطی که مشکلترند و تحلیل آنها سخت­تر است بدنبال یافتن یک زیرفضای تخت محلی[۲] می­باشند.

از روشهای خطی می­توان به DFT، DWT، PCA و FA اشاره کرد که آنها را به ترتیب در ادامه­ی همین فصل توضیح خواهیم داد. روشهای دیگر غیرخطی عبارتند از:

  • Projection Pursuit (PP) : برخلاف روشهای PCA و FA می­تواند اطلاعات بالاتر از مرتبه­ی دوم را ترکیب نماید. بنابراین روش مناسبی است برای بسترهای داده­ای غیر گاوسی.
  • Independent Component Analysis (ICA) : این روش نیز یک نگاشت خطی انجام می­دهد اما بردارهای این نگاشت لزوماً بر یکدیگر عمود نیستند، در حالی که در روشهای دیگر مانند PCA این بردارها بر هم عمودند.
  • Random Projection (PP) : یک روش ساده و در عین حال قدرتمند برای کاهش ابعاد داده است که از ماتریسهای نگاشت تصادفی برای نگاشت داده­ها به یک فضای با ابعاد کمتر استفاده می­کند.

از روشهای غیرخطی نیز می­توان به موارد زیر اشاره کرد:

  • Principal Curves
  • Self Organizing Maps
  • Vector Quantization
  • Genetic and Evolutionary Algorithms
  • Regression

مسئله­ی کاهش ابعاد داده را بطور ریاضی می­توان به اینصورت بیان کرد: یک متغیر تصادفی p-بعدی داریم. می­خواهیم متغیر k-بعدی را به گونه­ای پیدا کنیم که اولاً k ≤ p باشد و ثانیاً s محتویاتی که در x وجود دارد را بر اساس معیاری خاص دارا باشد. روشهای خطی سعی می­کنند هر یک از این k مؤلفه را از ترکیب خطی p مؤلفه­ی اولیه بدست آورند.

که Wk×p ماتریس وزنهای نگاشت خطی می­باشد.

در مقاله [۳] نگاهی اجمالی به کلیه­ی روشهای کاهش ابعاد داده­ی مبتنی بر استخراج ویژگی شده است. در بخش ۲-۱ تبدیل فوریه گسسته و در بخش ۲-۲ تبدیل wavelet گسسته را شرح خواهیم داد. برای تهیه­ی بیشتر مطالبی که در این دو بخش ارائه شده از منبع [۴] که یک پایان نامه دکتری در زمینه­ی داده­کاوی برروی سریهای زمانی می­باشد استفاده شده است. در بخش ۲-۳ روش PCA که بهترین تبدیل خطی به حساب می­آید را بیان خواهیم کرد. برای تهیه­ی این بخش نیز از منبع [۵] استفاده کرده­ایم که یک tutorial بسیار عالی می­باشد. در بخش ۲-۴ روش Factor Analysis را بیان کرده­ایم. مطالب این بخش نیز از سایت اینترنت زیر تهیه شده است.

http://en.wikipedia.org/wiki/Factor_analysis

 

۱-۱-       Discrete Fourier Transform (DFT)

در بسیاری از کاربردها مرسوم است که از ترکیب توابع پایه­ای برای تقریب یک تابع استفاده شود. به عنوان مثال هر تابع پیوسته را می­توان توسط مجموعه­ای از توابع چند جمله­ای نمایش داد. تبدیل فوریه نوعی تبدیل است که یک تابع را بصورت توابع پایه­ای سینوسی که هر کدام در مقادیری ضرب شده­اند نشان می­دهد (شکل ۱). از تبدیل فوریه در بسیاری از زمینه­های علمی مانند فیزیک، هندسه، آمار و پردازش سیگنال استفاده می­شود.

 

شکل ۱- تبدیل فوریه سعی می­کند یک تابع را بصورت توابع پایه­ای سینوسی نشان دهد

 

تبدیل فوریه یک تبدیل برگشت پذیر است. این تبدیل می­تواند به دو صورت پیوسته یا گسسته انجام شود. در کامپیوتر و بخصوص در پردازش سیگنال معمولاً از تبدیل فوریه­ی گسسته (DFT) استفاده می­شود. خوشبختانه الگوریتمهای سریعی تحت عنوان FFT[3] برای تبدیل فوریه­ی گسسته به وجود آمده است. در این بخش می­خواهیم کاربرد DFT را در کاهش ابعاد داده مورد بررسی قرار دهیم.

تعریف DFT – بردار را در نظر بگیرید. تبدیل فوریه گسسته­ی این بردار از رابطه­ی زیر بدست می­آید.

که در آن:

معکوس تبدیل فوریه گسسته نیز از این رابطه بدست می­آید:

توجه داشته باشید که دو بردار و هم­اندازه هستند.

اگر بردار را مقادیر یک سری زمانی در نظر بگیریم، که x(t) مقدار مشاهده شده در زمان t است، تبدیل فوریه برروی این بردار، مقادیر آن را از دامنه­ی زمانی به دامنه­ی فرکانسی منتقل می­کند. ضرایب بدست آمده از تبدیل فوریه به گونه­ای مرتب شده قرار می­گیرند بطوریکه ضرایب پر اهمیت در سمت چپ و ضرایب کم اهمیت­تر در سمت راست قرار می­گیرند. بنابراین پر اهمیت­ترین ضریب در X(0) و کم اهمیت­ترین ضریب در X(N-1) ذخیره شده است. هرچه یک ضریب پر اهمیت­تر باشد، بدان معنی است که آن ضریب حاوی اطلاعات مهمتری (کلی­تری) از بردار می­باشد.

برای کاهش ابعاد داده می­توان ابتدا را بدست آورده و سپس ضرایب کم اهمیت را حذف نمود. بعنوان مثال بردار که سری زمانی مربوط به قیمت روزانه­ی سهام شرکت IBM در سال ۲۰۰۱ می­باشد را در نظر بگیرید. این بردار که از ۲۵۶ مؤلفه تشکیل شده است را در شکل زیر نشان داده­ایم.

 

شکل ۲- قیمت روزانه سهام شرکت IBM در سال ۲۰۰۱

 

اکنون بردار را محاسبه می­کنیم. مسلماً نیز دارای ۲۵۶ مؤلفه خواهد بود. اگر فقط ۱۰ ضریب پر اهمیت­تر در را نگه داشته و بقیه را حذف نماییم، نموداری شبیه به اولین نمودار در شکل ۲ بدست خواهیم آورد. در این شکل مشاهده می­کنید که هرچه تعداد ضرایب بیشتری را نگه داری نماییم، جزئیات نمودار بیشتر حفظ خواهد شد.

 

شکل ۳- بازسازی نمودار قیمت روزانه سهام شرکت IBM با ضرایب بدست آمده از DFT

این نمودارها از بالا به پایین به ترتیب با حفظ ۱۰، ۲۰، ۴۰ و ۸۰ ضریب DFT بدست آمده­اند

 

۱-۲-     Discrete Wavelet Transform (DWT)

تبدیل DWT برای اولین بار توسط شخصی به نام Alfred Haar بوجود آمد. تا کنون نسخه­های مختلفی برای DWT ارائه شده است، مانند Haar Wavelet، Newland Transform و Undecimated Wavelet Transform. این تبدیل نیز همانند تبدیل فوریه بسیار پرکاربرد است و در بسیاری از زمینه­های علوم و مهندسی مورد توجه قرار گرفته است. تبدیل Haar Wavelet بدلیل سادگی در پیاده سازی و سرعت اجرای بالا، از محبوبیت بیشتری نسبت به سایر نسخه­های DWT برخوردار است.

این تبدیل به اینصورت است که یک توالی به طول ۲n در ورودی داریم. این اعداد بصورت جفت جفت با هم جمع شده و این حاصل جمع­ها به مرحله­ی بعد فرستاده می­شوند. همچنین اختلاف هر جفت نیز محاسبه و ذخیره می­شود. دوباره این مرحله تکرار می­شود با این تفاوت که در ورودی، حاصل جمع جفتهای مرحله­ی قبل قرار می­گیرد. این فرایند بطور بازگشتی تکرار می­شود تا در نهایت یک عدد که حاصل جمع کل اعداد است بدست آید. این عدد به همراه ۲n-1 اختلاف جفتها که در مراحل مختلف الگوریتم محاسبه شده بعنوان خروجی این تبدیل بازگردانده می­شود.

بعنوان مثال فرض کنید می­خواهیم تبدیل Haar Wavelet را برروی رشته S بطول ۸ اعمال نماییم.

S = (1, 3, 5, 11, 12, 13, 0, 1)

ابتدا این اعداد را بصورت جفت جفت با هم جمع می­کنیم.

(۴, ۱۶, ۲۵, ۱)

همچنین اختلاف این جفتها را نیز محاسبه می­کنیم.

(-۲, -۶, -۱, -۱)

واضح است که با استفاده از حاصل جمع جفتها و نیز اختلاف جفتها می­توان رشته S را بدون از دست دادن هیچ اطلاعاتی دوباره بازسازی کرد. اکنون با اختلاف جفتها کاری نداریم و فقط آنها را ذخیره می­کنیم. سپس همین مراحل را برروی این چهار حاصل جمع تکرار می­کنیم. درخت تجزیه­ی تبدیل Haar Wavelet برای یک رشته به طول ۸ در شکل زیر نشان داده شده است.

 

شکل ۴- مراحل اجرای تبدیل Haar Wavelet برروی یک رشته به طول ۸

 

مراحل اجرای این تبدیل برروی رشته S را می­توانید در شکل زیر مشاهده کنید.

 

شکل ۵- مراحل اجرای تبدیل Haar Wavelet برروی رشته S

 

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

DWT(S) = (46, -6, -12, 24, -2, -6, -1, -1)

می­توان دید که پیچیدگی زمانی این الگوریتم برای یک رشته به طول n برابر با O(n) می­باشد.

اما چگونه می­توان با استفاده از تبدیل DWT ابعاد داده را کاهش داد؟ در اینجا نیز همانند تبدیل فوریه، ضرایب بدست آمده به ترتیب پر اهمیت تا کم اهمیت مرتب شده­اند. در واقع ضرایب کم اهمیت همانهایی هستند که در مراحل اولیه الگوریتم بدست می­آیند (مثلاً در شکل ۵ کم اهمیت­ترین ضرایب مربوط به Resolution=3 هستند، یعنی -۲، -۶، -۱ و -۱). با حذف ضرایب کم اهمیت می­توان حجم داده­ها را کاهش داد. البته مقدار کمی از اطلاعات نیز از بین می­رود.

برای اینکه درک شهودی بهتری نسبت به حذف ضرایب کم اهمیت و تأثیر آن در از دست رفتن اطلاعات داشته باشید به شکل ۶ توجه کنید. در این شکل یک سری زمانی را که با نقطه چین نشان داده شده، به همراه تبدیل Haar Wavelet با حذف ضرایب کم اهمیت را مشاهده می­کنید.

 

شکل ۶- کاهش ابعاد یک سری زمانی توسط تبدیل Haar Wavelet

از بالا به پایین، سطح resolution به ترتیب برابر است با ۳، ۴، ۵ و ۶

 

 

۱-۳-    Principal Component Analysis (PCA)

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

 

شکل ۷- انتخاب محورهای جدید برای داده­های دو بعدی

 

روش PCA به نامهای دیگری نیز معروف است. مانند:

  • Singular Value Decomposition (SVD)
  • Karhunen Loeve Transform (KLT)
  • Hotelling Transform
  • Empirical Orthogonal Function (EOF)

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

 

۱-۳-۱-      مفاهیم مقدماتی مورد نیاز در PCA

  • مفاهیم آماری

فرض کنید X رشته­ای از مقادیر است. میانگین این مقادیر از رابطه زیر بدست می­آید.

انحراف از معیار نیز از رابطه زیر محاسبه می­شود.

علت اینکه در مخرج رابطه فوق از عبارت n-1 استفاده شده (و نه n) اینست که فرض شده X شامل تمام مقادیر موجود نیست بلکه تعدادی از این مقادیر انتخاب شده­اند و در X قرار گرفته­اند. یعنی X مجموعه نمونه است و نه کل داده­ها. با این فرض اگر از n-1 در رابطه فوق استفاده شود، انحراف از معیار بدست آمده به انحراف از معیار داده­های واقعی نزدیکتر خواهد بود نسبت به اینکه از n استفاده شود. اگر این توضیح شما را قانع نمی­کند می­توانید به سایت زیر مراجعه کرده و با دیدن مثال ارائه شده، دلیل استفاده از n-1 را بهتر درک نمایید. البته اگر X شامل تمام داده­ها باشد آنگاه باید از n استفاده شود.

http://mathcentral.uregina.ca/RR/database/RR.09.95/weston2.html

با بتوان ۲ رساندن انحراف از معیار، واریانس بدست می­آید.

معیارهایی که در بالا ذکر شد فقط اطلاعات مربوط به یک بُعد را ارائه می­کنند و دانشی در مورد ارتباط بین ابعاد مختلف به ما نمی­دهند. با استفاده از کواریانس می­توانیم ارتباط بین ابعاد مختلف داده­ها را پیدا کنیم. فرض کنید یک رشته دیگر از اعداد داریم که آن را با Y نشان می­دهیم. کواریانس بین X و Y از رابطه زیر بدست می­آید.

مقداری که از رابطه بالا بدست می­آید در بازه [-۱,۱] قرار خواهد داشت که یکی از سه حالت زیر را بوجود می­آورد:

  • اگر مقدار بدست آمده مثبت باشد آنگاه X و Y با هم افزایش یا کاهش می­یابند.
  • اگر مقدار بدست آمده منفی باشد آنگاه با افزایش X مقدار Y کاهش می­یابد و بالعکس.
  • اگر مقدار بدست آمده صفر باشد آنگاه X و Y از یکدیگر مستقلند.

کواریانس بین تمامی ابعاد داده­ها را می­توان دوبه­دو محاسبه کرده و در یک ماتریس ذخیره کرد. به این ماتریس، ماتریس کواریانس می­گویند. ماتریس کواریانس یک ماتریس مربعی متقارن است. مثلاً اگر سه بعد به نامهای x، y و z داشته باشیم، ماتریس کواریانس آنها برابر است با:

 

  • مفاهیم جبر ماتریسها

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

در مثال اول بردار بدست آمده مضرب صحیحی از بردار اولیه نیست. اما در مثال دوم، بردار بدست آمده چهار برابر بردار اولیه می­باشد. ماتریس ۲×۲ که در این دو بردار ضرب کرده­ایم را می­توان یک ماتریس تبدیل[۴] در نظر گرفت که با ضرب آن در یک بردار می­توان اندازه و راستای آن بردار را تغییر داد. در میان تمام بردارهایی که می­توان ماتریس تبدیل را در آنها ضرب کرد، بردارهایی وجود دارد که پس از تبدیل راستای آنها تغییر نمی­کند و فقط اندازه آنها ممکن است عوض شود، مانند بردار [۳;۲] در مثال فوق. این بردارها را بردارهای ویژه می­نامند. برای هر بردار ویژه یک مقدار ویژه نیز وجود دارد که بیان می­کند اندازه آن بردار (و تمام بردارهای دیگر که در راستای آن بردار هستند) پس از تبدیل، چند برابر خواهد شد. در مثال فوق مقدار ویژه برای بردار [۳;۲] و البته تمام بردارهای هم راستا با آن مانند [۶;۴] برابر با ۴ می­باشد.

بردارهای ویژه و مقادیر ویژه فقط برای ماتریسهای مربعی معنی پیدا می­کنند. یک ماتریس n×n می­تواند دارای n بردار ویژه باشد. به منظور استاندارد کردن بردارهای ویژه، پس از یافتن بردارهای ویژه اندازه آنها را به گونه­ای تغییر می­دهند تا طول آنها برابر با یک شود. مثلاً برای بردار [۳;۲] داریم:

ویژگی مهم بردارهای ویژه اینست که آنها برهم عمودند. مثلاً ماتریس تبدیل زیر را در نظر بگیرید.

با ضرب ماتریس A در هر بردار می­توان قرینه آن بردار نسبت به خط y=0 را بدست آورد. بردارهای ویژه­ی این ماتریس عبارتند از [۱;۰] و [۰;۱]. مقادیر ویژه­ی این بردارها نیز به ترتیب -۱ و ۱ می­باشد. همانطور که گفتیم این دو بردار ویژه برهم عمودند.

بدست آوردن بردارهای ویژه برای ماتریسهای بزرگتر از ۳×۳ کار نسبتاً دشواری است. این کار توسط یک الگوریتم بازگشتی انجام می­شود که توضیح آن خارج از حوصله­ی این گزارش (و نیز حوصله­ی نویسنده) است. برای اطلاعات بیشتر در این رابطه می­توانید به کتاب [۲] مراجعه کنید.

 

۱-۳-۲-    الگوریتم PCA

در این بخش الگوریتم PCA را با ذکر یک مثال توضیح می­دهیم.

مرحله ۱– انتخاب داده

در اینجا ما قصد داریم PCA را برروی یک مجموعه داده­ی دو بعدی اعمال کنیم. این داده­ها در شکل زیر نشان داده شده است.

شکل ۸- داده­های دوبعدی اولیه که قرار است PCA برروی آنها اعمال شود

 

مرحله ۲– کم کردن میانگین از داده­ها

در این مرحله، میانگین هر بُعد را از مقادیر آن بُعد کم می­کنیم تا میانگین داده­ها در هر بُعد صفر شود.

مرحله ۳– محاسبه­ی ماتریس کواریانس

ماتریس کواریانس را به طریقی که در بالا ذکر شد برای داده­ها بدست می­آوریم. برای مثال ما این ماتریس، یک ماتریس ۲×۲ است:

مرحله ۴– محاسبه­ی بردارهای ویژه و مقادیر ویژه

اکنون بردارهای ویژه و مقادیر ویژه­ی ماتریس کواریانس را محاسبه می­کنیم. ماتریس کواریانس، یک ماتریس نیمه قطعی مثبت متقارن[۵] است. طبق قضایای جبر خطی، یک ماتریس متقارن n×n دارای n بردار ویژه­ی مستقل و n مقدار ویژه می­باشد. همچنین یک ماتریس نیمه قطعی مثبت، دارای مقادیر ویژه­ی غیر منفی است. این مقادیر برای مثال ما برابر است با:

توجه داشته باشید که این دو بردار ویژه به گونه­ای انتخاب شده­اند که طول هر دو برابر با ۱ باشد. اما این دو بردار چه چیزی به ما می­دهد؟ ما راستای این دو بردار را در شکل ۹ نشان داده­ایم. همانطور که می­بینید یکی از این دو بردار در جهتی قرار گرفته است که داده­ها در آن جهت بیشترین پراکندگی را دارند. بردار دیگر نیز عمود بر بردار اول است. و اما مقادیر ویژه چه چیزی ارائه می­دهند؟ در این مثال برداری که در راستای بیشترین پراکندگی داده­ها قرار گرفته دارای مقدار ویژه ۱٫۲۸۴ و بردار دیگر دارای مقدار ویژه ۰٫۰۴۹ می­باشد. در واقع مقادیر ویژه میزان پراکندگی داده­ها در راستای بردار ویژه­ی مربوطه را نشان می­دهد. می­توان گفت بردار ویژه­ای که دارای بزرگترین مقدار ویژه است مؤلفه­ی اصلی[۶] داده­های موجود می­باشد.

 

شکل ۹- داده­های نرمالسازی شده (با کم شدن میانگین) به همراه بردارهای ویژگی ماتریس کواریانس

 

مرحله ۵– انتخاب مؤلفه­ها و ساختن Feature Vector

در این مرحله مفهوم کاهش ابعاد داده وارد می­شود. بردارهای ویژه­ای که در مرحله­ی قبل بدست آوردیم را بر اساس مقادیر ویژه­ی آنها از بزرگ به کوچک مرتب می­کنیم (توجه داشته باشید که مقادیر ویژه­ی ماتریس کواریانس همگی بزرگتر یا مساوی صفر هستند). بدین ترتیب مؤلفه­های داده­ها از پر اهمیت به کم اهمیت مرتب می­شوند. در اینجا اگر بخواهیم ابعاد داده­ها را کاهش دهیم می­توانیم مؤلفه­های کم اهمیت را حذف نماییم. البته این کار با از دست دادن مقدار کمی اطلاعات همراه است.

کاری که باید در این مرحله انجام دهیم ایجاد یک Feature Vector است که در واقع ماتریسی از بردارها می­باشد. این ماتریس شامل آن بردارهای ویژگی­ای است که ما می­خواهیم آنها را نگه داریم.

اگر همه­ی بردارهای ویژگی را در این ماتریس قرار دهیم، هیچ اطلاعاتی از دست نخواهد رفت و دوباره می­توانیم دقیقاً همان داده­های اولیه را بدست آوریم. در ادامه­ی مثال فوق، Feature Vector را برابر با مقدار زیر در نظر می­گیریم.

مرحله ۶– بدست آوردن داده­های جدید

در آخرین مرحله از PCA فقط باید ترانهاده­ی ماتریس Feature Vector که در مرحله­ی قبل بدست آوردیم را در ترانهاده­ی داده­های نرمالسازی شده ضرب نماییم.

که RowFeatureVector ماتریسی است که بردارهای ویژه در سطرهای آن به ترتیب مقادیر ویژه از بالا به پایین قرار گرفته­اند، و RowDataAdjust ماتریسی است که شامل داده­هایی است که میانگین هر بُعد از آن بُعد کم شده است. در این ماتریس، داده­ها در ستونهای آن ذخیره شده و هر سطر آن مربوط به یک بُعد است. در مثال ذکر شده بدلیل اینکه ما فقط یکی از بردارهای ویژه را انتخاب کردیم داده­های بدست آمده از PCA، داده­های یک بُعدی می­باشند.

 

شکل ۱۰- داده­های بدست آمده از تبدیل PCA با انتخاب مهمترین بردار ویژگی

 

با استفاده از رابطه­ی زیر می­توانیم مقادیری که از تبدیل PCA بدست آورده­ایم را به داده­های اولیه که مقدار میانگین از آنها کم شده بازگردانیم.

بدلیل اینکه ماتریس RowFeatureVector حاوی بردارهای ویژه­ی یکه است، معکوس آن با ترانهاده­ی آن برابر است. بنابراین:

با اضافه کردن میانگین، داده­های اولیه را خواهیم داشت:

در شکل زیر داده­هایی که پس از تبدیل PCA بازیابی شده­اند را مشاهده می­کنید. همانطور که می­بینید مقدار کمی اطلاعات از بین رفته است و باعث شده داده­ها همگی در امتداد یک خط راست قرار گیرند.

 

شکل ۱۱- داده­های بازیابی شده از تبدیل PCA با انتخاب مهمترین بردار ویژگی

 

۱-۴-     Factor Analysis (FA)

FA یکی از روشهای آماری است که می­تواند چندین متغیر تصادفی مشاهده شده را توسط تعداد کمتری متغیر تصادفی (که در داده ها پنهان هستند) نمایش دهد. این متغیرهای تصادفی پنهان، فاکتور (factor) نامیده می شوند. این روش سعی می کند متغیرهای تصادفی مشاهده شده را توسط ترکیب خطی فاکتورها بعلاوه­ی مقداری خطا مدلسازی نماید. روش FA از رشته هوش سنجی سرچشمه گرفته و در زمینه­های علوم اجتماعی، بازاریابی، مدیریت تولید، تحقیق در عملیات و علوم کاربردی دیگر که با حجم بزرگی از داده­ها سروکار دارند مورد استفاده قرار گرفته است. این روش برای اولین بار حدود ۱۰۰ سال پیش توسط یک روانشناس به نام Charles Spearman ابداع شد. این شخص نظریه­ای به نام g theory ارائه داد و در آن ادعا کرد که تمام توانمندیهای ذهنی افراد مانند مهارتهای ریاضی، مهارتهای هنری، دایره لغات، توانایی استدلالهای منطقی و غیره را می­توان توسط یک فاکتور به نام هوش عمومی[۷] بیان کرد. البته این نظریه امروزه رد شده و تحقیقات انجام شده نشان می­دهد که توانمندیهای ذهنی حداقل از سه فاکتور به نامهای توانائی ریاضی، توانائی شفاهی و توانائی منطقی تشکیل شده است. روانشناسان زیادی بر این باورند که علاوه بر این سه فاکتور، فاکتورهای دیگری وجود دارد که می­تواند بر توانمندیهای ذهنی افراد تأثیرگذار باشد.

اجازه بدهید با یک مثال این موضوع را ادامه دهیم. فرض کنید یک روانشناس نظریه­ای ارائه داده و در آن ادعا کرده که دو نوع هوش به نامهای هوش شفاهی[۸] و هوش ریاضی[۹] وجود دارد. این نظریه از بررسی نمرات ۱۰۰۰ دانشجو در ۱۰ درس مختلف بدست آمده است. اگر یک دانشجو را از این مجموعه بطور تصادفی انتخاب نماییم، ۱۰ نمره­ی مربوط به آن دانشجو، متغیرهای تصادفی محسوب می­شوند. نظریه­ی این روانشناس می­گوید میانگین هر یک از این ۱۰ درس برای دانشجویانی که دارای هوش شفاهی در یک سطح خاص و نیز هوش ریاضی در یک سطح خاص هستند برابر است با یک عدد مشخص ضرب در سطح هوش شفاهی بعلاوه­ی یک عدد مشخص دیگر ضرب در هوش ریاضی. بعبارت دیگر این مقادیر را می­توان از ترکیب خطی دو فاکتور هوش شفاهی و هوش ریاضی بدست آورد. بر طبق ادعای این نظریه، اعدادی که در هر یک از این دو نوع هوش ضرب شده­اند، برای تمامی دانشجویان یکسان است. به این اعداد factor loadings می­گویند. بعنوان مثال میانگین (امید ریاضی) نمره یک دانشجو در درس کالبد شناسی می­تواند از رابطه زیر بدست آید:

{۱۰ × the student’s verbal intelligence + 6 × the student’s mathematical intelligence}

اعداد ۱۰ و ۶، factor loadingهای درس کالبد شناسی می­باشند. دروس دیگر ممکن factor loadingهای متفاوتی داشته باشند. دو دانشجو که دارای هوش شفاهی برابر و نیز هوش ریاضی برابر هستند لزوماً دارای نمره یکسانی در درس کالبد شناسی نیستند. زیرا تک نمره با میانگین نمرات فرق می­کند. به این اختلاف، خطا (error) می­گوییم.

در این مثال داده­هایی که قرار است FA برروی آنها اعمال شود عبارتست از ۱۰ نمره برای هر یک از ۱۰۰۰ دانشجو، یعنی مجموعاً ۱۰۰۰۰ عدد که داده­های ما را تشکیل می­دهند. مقادیر factor loading برای هر درس و سطح هر یک از دو نوع هوش برای هر دانشجو باید از این داده­های موجود استخراج شود. حتی تعداد فاکتورهای موجود در داده­ها (که در این مثال برابر با ۲ است) را باید از این داده­ها بدست آورد.

مدل ریاضی برای مثال فوق را می­توان به این صورت نوشت:

به ازای i=1,…,۱۰۰۰ ، نمرات دانشجوی شماره i برابر است با

 

 

که در آن:

  • xk,i : نمره­ی دانشجوی i در درس k
  • vi : هوش شفاهی دانشجوی i
  • mi: هوش ریاضی دانشجوی i
  • Lk,j : مقدار factor loading برای درس k، به ازای j=1,2
  • k,iε : اختلاف بین نمره­ی دانشجوی شماره i در درس k و میانگین نمرات تمام دانشجویانی که دارای هوش شفاهی و ریاضی در همان سطح دانشجوی i هستند در درس k

 

عبارات فوق را با استفاده از عبارات ماتریسی می­توان به این صورت نوشت:

X = µ + LF + ε

که در آن:

  • X : یک ماتریس ۱۰×۱۰۰۰ از متغیرهای تصادفی مشاهده شده (در اینجا نمرات دانشجویان)
  • µ : یک ماتریس ستونی ۱۰×۱ از ثابتهای پنهان (در واقع این ماتریس را باید یک ماتریس ۱۰×۱۰۰۰ در نظر گرفت که در آن مقادیری که در یک سطر قرار گرفته اند با هم برابرند)
  • L : یک ماتریس ۱۰×۲ که حاوی مقادیر factor loading است
  • F : یک ماتریس ۲×۱۰۰۰ که حاوی میزان هوش ریاضی و شفاهی هر یک از دانشجویان است
  • ε : یک ماتریس ۱۰×۱۰۰۰ که حاوی مقادیر خطا است.

 

ماتریسهای L، µ و واریانس خطاها در ε را باید از ماتریس X بدست آورد.

 

[۱] Global flat subspace

[۲] Locally flat subspace

[۳] Fast Fourier Transform

[۴] Transformation Matrix

[۵] Symmetric positive semidefinite matrix

[۶] Principle Component

[۷] General Intelligence

[۸] Verbal Intelligence

[۹] Mathematical Intelligence