آشنایی با تکنیک تحلیل مؤلفه اصلی و نقش آن در کشف ترندهای زیربنایی موجود در دادهها
در رشتههای علوم کمی و محاسباتی، از جمله حوزههای مالی و علوم داده، سعی بر این است که با جستجو در میان دادههایی با نویز فراوان، یک سیگنال کشف شود. الگوریتم PCA یا تحلیل مؤلفه اصلی Principal Components Analysis به ما کمک میکند محرکهای نهفته در داده ها را پید…
خلاصه تحلیلی خبر
در رشتههای علوم کمی و محاسباتی، از جمله حوزههای مالی و علوم داده، سعی بر این است که با جستجو در میان دادههایی با نویز فراوان، یک سیگنال کشف شود. الگوریتم PCA یا تحلیل مؤلفه اصلی Principal Components Analysis به ما کمک میکند محرکهای نهفته در داده ها را پید…
موضوعات اصلی: پشتیبانی شبکه، واریانس، مؤلفه، مؤلفهی، ویژگی، PCA
در رشتههای علوم کمی و محاسباتی، از جمله حوزههای مالی و علوم داده، سعی بر این است که با جستجو در میان دادههایی با نویز فراوان، یک سیگنال کشف شود. الگوریتم PCA یاتحلیل مؤلفه اصلیPrincipal Components Analysisبه ما کمک میکند محرکهای نهفته درداده هارا پیدا کنیم؛ این محرکها، ویژگیهای مفیدی هستند که ما را قادر میسازند مجموعه عظیمی که از ویژگیها داریم را تنها با استفاده از چند مؤلفه اصلی، خلاصهسازی کنیم.
برای مشاهده کد به کاررفته برای رسم نمودارها، بهاین لینکمراجعه کنید.
واریانس، شمشیری دولبه
اگر با مبنای نظری آمار و علوم داده آشنایی داشته باشید، حتماً میدانید که هدف اصلی از ساخت مدلهاتوضیح واریانس مشاهدهشدهدر دادههاست.
در این نوشتار، به صورت گام به گام معنی این جمله را با هم بررسی میکنیم. قبل از هرچیز، باید بفهمیم منظور از واریانس چیست. فرض کنید دادههایی با این شکل در اختیار دارید
پیشبینی یک خط صاف کار آسان، و البته بیهودهای است؛ چون مقدار آن همیشه یک عدد (در تصویر بالا 5) است. خط صاف مثال خوبی برای دادههایی است که واریانس صفر دارند؛ این دادهها هیچ پراکندگی در محور عمودی ندارند.
برای درک بهتر دادههایی که واریانس صفر دارند، مثالی از دنیای واقعی ذکر میکنیم: فرض کنید رئیستان به شما میگوید تعداد طبقات یک ساختمان پنج طبقه را پیشبینی کنید (با اینکه از نظر منطقی، کار معناداری نیست!). اگر 100 روز پشت سر هم تعداد طبقات این ساختمان را اندازه بگیرید، در آخر نموداری مثل تصویر بالا به او تحویل خواهید داد. وقتی رئیستان بخواهد پیشبینی شما در مورد تعداد طبقات ساختمان را بداند، با اطمینان خاطر پاسخ میدهید: «فردا هم ساختمان 5 طبقه خواهد داشت!»
احتمال درست بودن پیشبینی شما 100% است، مگر اینکه اتفاق خاصی (مثلاً زلزله) رخ دهد. اما همانطور که گفتیم این پیشبینی هیچ ارزش و فایدهای ندارد. چون دادههایی که واریانس ندارند، هیچ ابهامی هم نخواهند داشت؛ به همین دلیل چیزی برای پیشبینی یا توضیح باقی نمیماند. به بیان دیگر، اگر واریانس متغیر X یا پیشبین (متغیری که برای پیشبینی متغیر هدف به کار میرود)صفرباشدهیچ سیگنالی از مجموعهی ویژگیبه دست نمیآوریم.
حال برای توضیح دادههای واریانسدار، از یک مثال دیگر استفاده میکنیم: بازده روزانه سهام اپل طی یک بازه 100 روزه.
دادههای مربوط به این مسئله واریانس بالایی دارند. واریانس را میتوان همیننوساناتیدر نظر گرفت که در نمودار مشاهده میکنید. هرچه واریانس بیشتر باشد، پیشبینی و توضیح آن دشوارتر خواهد بود. همانطور که در نمودار بالا مشاهده میکنید، بازده روزانهی سهام اپل نوسانات چشمگیری دارد و بین مقادیر منفی و مثبت جابجا میشود.
اما در میان این دادههای پر از نوسان و نویز، سیگنال یا اطلاعاتی هم وجود دارد.
متغیر هدفی که واریانس بالا دارد، جالبتر است و متغیر پیشبینی که واریانس دادههای آن زیاد است، اطلاعات بیشتری در اختیار قرار میدهد.
به همین خاطر است که میگوییم واریانس یکشمشیر دولبهاست
- از یک سو، هرچه واریانس متغیر هدفبیشترباشدعدم اطمینان افزایشمییابد و به تبع، پیشبینی و توضیح متغیر هدف دشوارتر خواهد شد.
- از سوی دیگر، ویژگیهایی که واریانس ندارند، اصلاً جالب نیستند و هیچ سیگنالی در بر ندارند. برای ساخت یک مدل باکیفیت، به ویژگیهایی نیاز داریم که سیگنال داشته باشند؛ بنابراین واریانس این ویژگیها باید بالا باشد. ویژگیهایی مطلوب هستند که کوواریانس آنها با متغیر هدف صفر نباشد.
ثبت سیگنال به کمک مؤلفه اصلی
دنیایی که در آن زندگی میکنیم پر از اطلاعات است. حوزهیعلوم دادههم از این قانون مستثنی نیست؛ به شکلی که برای پیشبینی یک متغیر، همیشه یک مجموعهویژگی خیلی بزرگ در دست داریم.
اما حتی اگر بخواهیم هم نمیتوانیم از همهی این ویژگیها استفاده کنیم، چون به تعداد کافی مشاهده نداریم. به عنوان مثال، اگر تعداد مشاهداتی که از متغیر هدف داریم 5000 باشد، نمیتوانیم برای برازش مدل از 10 هزار ویژگی استفاده کنیم. زیرا در این صورت مدلی به شدت بیشبرازش شده به دست میآوریم که به محض اجرا در دنیای واقعی (روی دادههایی کاملاً متفاوت از نمونههای آموزشی) با شکست مواجه خواهد شد.
در هر صورت، اگر تجربهای در مدلسازی یا دانشی در حوزهی تخصصی مربوطه نداشته باشیم (و گاهی هم علیرغم در دست داشتن هردو) به سختی میتوانیم ویژگیهایی که باید در مدل باقی بمانند را انتخاب کنیم. به همین دلیل، به الگوریتمی نیاز داریم که بتواند 10 هزار ویژگی را به یک مجموعهویژگی ایدهآل تبدیل کند.
مجموعهویژگی ایدهآل
برای ساخت یک مجموعهی ایدهآل از ویژگیها، توجه به سه خاصیت ضروری است
- 1.واریانس بالاهرچهواریانسویژگیهابالاترباشد، به طور بالقوهاطلاعات بیشتریدر بردارند. سیگنال یا اطلاعات مفید حاصل از ویژگیها، ملزومهی ساخت یک مدل باکیفیت هستند.
- 2.عدم همبستگیویژگیهایی کههمبستگی زیادیبا هم دارند، کمک چندانی به ما نخواهند کرد و حتی میتوانندمضرهم باشند (وقتی همبستگی آنقدر بالاست که منجر بههمخطی بودن چندگانهMulti-collinearityمیشود). برای درک بهتر این موضوع از یک مثال استفاده میکنیم: فرض کنید میخواهید یک گروه معاملهگر حرفهای استخدام کنید. آیا ترجیح میدهید همهی آنها به یه شکل سرمایهگذاری کنند یا متفاوت از هم؟ منطقیتر است که این افراد تا حد امکان از هم متفاوت باشند؛ بدین ترتیب، نوعی گوناگونی و پراکندگی به وجود میآید که در اثر آن، همهی معاملهگران دچار یک خطای مشابه نخواهند شد. به همین دلیل، اگر سهامی با ضرر روبرو شود، همهی افراد تأثیر نمیپذیرند.
- 3.تعداد پاییندر حالت ایدهآل، تعدادویژگیهاکمتر از تعدادمشاهداتموجود در متغیر هدف است.زیاد بودنتعداد ویژگیها نسبت به مشاهدات منجر بهبیشبرازشمدل میشود؛ در این صورت، مدل روی دادههایی غیر از نمونههای آموزشی، عملکردی ضعیف خواهد داشت.
PCA مجموعه ویژگیهای ایدهآل را در اختیار ما قرار میدهد.این تکنیک مجموعهای تولید میکند که در آن، مؤلفه اصلی بر حسب میزان واریانس مرتب شدهاند(از زیاد به کم).مؤلفههای حاضر در این مجموعه باهم همبستگی ندارندوتعدادشان کماست (علاوه بر این، میتوانیم مؤلفههایی که در رتبههای پایین قرار گرفتهاند را کنار بگذاریم، چون سیگنال کمی دربردارند).
نحوه کارکردتحلیل مؤلفه اصلی
نحوهی کارکرد PCA را میتوان هم از منظر جبر خطی و هم به صورت شهودی توضیح داد. اینجا از رویکرد دوم استفاده میکنیم؛ برای مطالعه توضیحات ریاضی بهاین مقالهمراجعه کنید.
PCA به صورت مکرر و پیوسته این سؤالات را مطرح کرده و به آنها پاسخ میدهد
- 1. سؤالی که PCA در شروع فرآیند میپرسد این است که «قویترین ترندموجود در مجموعهی ویژگی کدام است؟». اسم این ترند را مؤلفهی 1 میگذاریم.
- 2. سؤال بعدی این است که «دومین ترند قویدر مجموعهی ویژگی که با مؤلفهی 1 همبستگی نداشته باشد، کدام است؟». این ترند را مؤلفهی 2 مینامیم.
- 3. در گام بعد، PCA میپرسد: «سومین ترند قویدر مجموعهی ویژگی که با مؤلفه 1 و 2 همبستگی نداشته باشد، کدام است؟» این ویژگی، مؤلفهی 3 نام دارد.
- 4. این جریان همینطور ادامه مییابد.
اما PCA چطور این ترندها را پیدا میکند؟ به تصویر پایین دقت کنید
در این تصویر، نقاط سیاهرنگ نشاندهنده دادهها هستند. حال سؤال اینجاست که قویترین ترند زیربنایی را چطور میتوان پیدا کرد؟ برای یافتن پاسخ، از توضیحات مسائل رگرسیون خطی استفاده میکنیم: خطی که بهترین برازش را داشته باشد (یعنی خط آبی) قویترین ترند یا مؤلفهی 1 خواهد بود. اما چرا خط قرمز را مؤلفهی 1 در نظر نگرفتیم؟ اگر به خاطر داشته باشید، مؤلفهی 1مؤلفه اصلی است که بیشترین واریانس را دارد؛ چون هر چه واریانس بیشتر باشد، سیگنالهای بالقوهی آن مؤلفه بیشتر هستند.
شباهت این مسئله با رگرسیون خطی کمک میکند دریابیم هر کدام از مؤلفههای اصلی، ترکیبی خطی از ویژگیهای واحد هستند. پس همانطور که مدل رگرسیون خطی، جمع وزندهیشدهی ویژگیهایی است که کمترین فاصله را تا متغیر هدف دارند، مؤلفه اصلی را هم میتوان جمع وزندهی شدهی ویژگیها در نظر گرفت. با این تفاوت که اینجا، جمع وزندهی شدهای را میخواهیم که به بهترین نحو ممکن ترندهای زیربنایی موجود در مجموعه ویژگی را به ما نشان دهد.
به مثال خود بر میگردیم. از روی نمودار درمییابیم که خط آبی واریانس بیشتری نسبت به خط قرمز دارد. چون فاصلهی بین خطچینهای آبی بیشتر از فاصلهی خطچینهای قرمز است. فاصله بین خطچینها برآوردی از واریانسی را نشان میدهد که توسط مؤلفه اصلی به دست آمده است. هرچه تعداد نقاط سیاهرنگی که در اطراف مؤلفه اصلی پراکنده شدهاند بیشتر باشد، واریانس بالاتر خواهد بود.
حال برای پیدا کردن مؤلفهی 2، باید دومین ترند قوی را پیدا کنیم. همانطور که پیشتر گفته شد، در این گام یک شرط اضافی داریم: مؤلفهی 2 نباید با مؤلفهی 1 همبستگی داشته باشد. در آمار، ترندها و الگوهایی که بر هم عمود هستند، با یکدیگر همبستگی ندارند.
در تصویر بالا نمودار دو ویژگی (آبی و قرمز) را ترسیم کردهایم. همانطور که مشاهده میکنید، این دادهها بر هم عمود هستند. به بیان دقیقتر، پراکندگی دادههای ویژگی آبیرنگعمودبر پراکندگی ویژگی قرمزرنگ است. بنابراین، ویژگیهای آبیرنگ به صورت افقی تغییر میکنند، ولی ویژگی قرمزرنگ کاملاً ثابت باقی میماند، چون فقط به صورت عمودی میتواند تغییر کند.
پس برای پیدا کردن مؤلفهی 2، باید دنبال مؤلفهای باشیم کهحداکثر واریانسممکن را داشته باشد، و بر مؤلفهی 1 نیزعمودباشد. مثالی که استفاده کردیم خیلی ساده بود و فقط دو بُعد داشت، به همین دلیل تنها یک گزینه برای انتخاب مؤلفه 2 (خط قرمز) داشتیم. اما در واقعیت، هزاران ویژگی وجود دارد و برای پیدا کردن مؤلفهها، باید در چندین بُعد جستجو را انجام دهیم. با این حال، کلیّت فرآیند به همین شکل انجام میگیرد.
مثالی برای شفافسازی مطالب
به همان مثال بازده سهام برمیگردیم. اما اینجا، علاوه بر سهام اپل، از دادههای مربوط به سهام 30 صنعت مختلف استفاده میکنیم. نمودار مربوط به بازده روزانهی همهی این سهامها طی یک بازهی 100 روزه بدین شکل است
همانطور که میبینید هر کدام از سهامها مسیر خاص خودش را دارد و اطلاعات زیادی نمیتوان از این نمودار دریافت. غیر از اینکه بازده روزانهی سهامها بسیار متغیر و پر از نویز است. اکنون با استفاده از Sci-kit Learn، مؤلفه اصلی 1 را پیدا کرده و نمودار آن را رسم میکنیم. اما از آنجایی که همهی ویژگیهای این مثال مربوط به بازده روزانهی سهامها هستند، نیازی به مقیاسبندی آنها نبود. در صورت لزوم، برای مقیاسبندی میتوانید از StandardScaler یا MinMaxScaler استفاده کنید). خط مشکی که در تصویر پایین مشاهده میکنید، مؤلفهی 1 را نشان میدهد
در تصویر بالا، خط سیاهرنگ نشاندهندهقویترینترند زیربنایی بازده روزانهی سهامهاست. این ترند را بدون مشورت با متخصصان این حوزه نمیتوان تفسیر کرد. تکنیکهایی همچون PCA که به منظور کاهش مجموعههای بزرگ ویژگی به مجموعههای کوچکتر و استخراج محرکهای زیربنایی کلیدی به کار میروند، یک عیب بزرگ دارند. تفسیرپذیری را از بین میبرند. تنها در صورتی میتوانید مؤلفههای به دست آمده از PCA را تفسیر و درک کنید که بر حوزهی تخصصی مربوطه تسلط داشته باشید.
اینجا به نظر میرسد مؤلفه 1، یعنی قویترین ترند زیربنایی همه دادههای بازده سهام، مربوط به شاخص S&P 500 است؛ یعنی S&P 500 شاخص سراسری است که جذر و مد آن بر قیمت همهی سهامها تأثیر میگذارد. برای بررسی صحت این حدس، نموداری رسم میکنیم تا بازده روزانهی S&P 500 را با مؤلفهی 1 مقایسه کنیم. با اینکه دادهها نویز خیلی زیادی داشتند، این نمودار برازشی تقریباً عالی نشان میدهد؛ همبستگی بین سود روزانه S&P 500 و مؤلفه اصلی 1 برابر با 92/0 است.
پس نتیجه میگیریم حدس ما درست بود و مهمترین ترند زیربنایی دادهها مربوط به بازار سهام است. پیادهسازی PCA در Sci-kit learn میتواند سهم همهی مؤلفهها در واریانس را نشان دهد. برای مثال، مؤلفهی 1، 38% از کل واریانس مجموعهی ویژگی را توجیه میکند.
حال یکی دیگر از مؤلفههای اصلی را بررسی میکنیم. در نمودار پایین، مؤلفههای 1 (سیاهرنگ) و 3 (سبزرنگ) را ترسیم کردهایم. همانطور که انتظار داشتیم، همبستگی بین آنها پایین است (08/0). بر خلاف مؤلفه 1، مؤلفه 3 تنها 9% از واریانس مجموعه ویژگی ما را توجیه میکند. این عدد از 38% مربوط به مؤلفهی 1 خیلی کمتر است. متأسفانه هیچ نظری در مورد اینکه مؤلفه 3 چه چیزی را نشان میدهد نداریم. مشکلی که باز هم به عدم تفسیرپذیری PCA برمیگردد.
جمعبندی
در این نوشتار آموختیم PCA چطور در کشف ترندهای زیربنایی دادهها به ما کمک میکند. این قابلیت در عصر کلاندادهها بسیار مفید و ارزشمند است. از جمله مزایای PCA میتوان به این موارد اشاره کرد
- 1. سیگنالهای بالقوهی موجود در مجموعهی ویژگی راایزولهمیکند تا بتوانیم از آنها در مدل خود استفاده کنیم.
- 2. تعداد ویژگیها راکاهشداده و یک مجموعهیکوچکتراز ترندهای زیربنایی کلیدی در اختیار ما میگذارد.
با این حال، این تکنیک معایبی هم دارد که بزرگترین آنها را میتواناز دست رفتن تفسیرپذیری ویژگیهادانست. به همین دلیل، بدون تخصص و بدون گمانهزنی، نمیتوانیم معنی هیچ کدام از این ویژگیها را درک کنیم.
اما این مشکل چندان هم جدی نیست. اگر مطمئن هستیدمجموعهویژگیبزرگی که در دست دارید حاوی سیگنالهای فراوانی است، الگوریتم PCA بسیار مفید بوده و شما را قادر میسازد بدون نگرانی در مورد بیشبرازش، قسمت عمدهی این سیگنال را استخراج کرده و در مدل خود به کار ببرید.
برای ارزیابی پایداری، امنیت و نگهداری این زیرساخت، راهنمای پشتیبانی شبکه را نیز مطالعه کنید.