۱.انتخاب ویژگی در مقابل کاهش ابعاد:
مجموعه دادهها اغلب ابعاد بالایی دارند و حاوی تعداد زیادی از ویژگیها هستند، اگرچه ارتباط هر ویژگی برای تجزیه و تحلیل این دادهها همیشه مشخص نیست.
فقط نباید همه چیز را در مدل یادگیری ماشین خود پرتاب کرد و به فرایند آموزش خود متکی است تا مشخص شود که کدام ویژگیها در واقع مفید هستند - من قبلاً در پستهای خود بحث کردهام. بنابراین، انجام انتخاب ویژگی و یا کاهش ابعاد برای کاهش تعداد ویژگیهای موجود در یک مجموعه داده ضروری است. در حالی که هر دو "انتخاب ویژگی" و "کاهش ابعاد" برای کاهش تعداد ویژگیها در یک مجموعه داده استفاده میشود ، تفاوت مهمی وجود دارد.
· انتخاب ویژگی به سادگی انتخاب و حذف ویژگیهای داده شده بدون تغییر آنها است
· در حالی که کاهش ابعادی ویژگیها را به بعد پایینتر تبدیل میکند
انتخاب ویژگی ویژگیهایی را نشان میدهد که به بهترین وجه نشان دهنده رابطه بین همه در فضای ویژگی و همچنین هدفی است که مدل سعی در پیشبینی آن خواهد داشت. روشهای انتخاب ویژگی ویژگیهایی را که بر نتیجه تأثیر نمیگذارد حذف میکند. این باعث کاهش اندازه فضای ویژگی میشود، از این رو نیاز به منابع برای پردازش دادهها و پیچیدگیهای مدل را نیز کاهش میدهد.
۲. روشهای انتخاب ویژگی:
روشهای انتخاب ویژگیها میتوانند در دستهبندی قرار بگیرند: انتخاب ویژگیهای بدون نظارت و نظارت. در انتخاب ویژگی بدون نظارت، رابطه متغیر هدف در نظر گرفته نمیشود. در اینجا، همبستگی بین ویژگیها مشخص میشود. یعنی: اگر شما 2 ویژگی را دارید و آنها بسیار همبسته هستند ، بدیهی است که شما به هر دو ویژگی احتیاج ندارید.
برای انتخاب ویژگیهای نظارت شده، میخواهد به رابطه هدف نگاه کند - بنابراین رابطه بین هر یک از ویژگیها و هدف (یا) برچسب در انتخاب ویژگی استفاده میشود. روشهایی که تحت انتخاب ویژگیهای تحت نظارت قرار میگیرند شامل روشهای فیلتر، روشهای بستهبندی و روشهای تعبیه شده است.
روشهای فیلتر:
همانطور که گفته شد، روشهای فیلتر به ویژگیهای تجربی نگاه میکنند و بهترین زیر مجموعهای را که میتوانید به مدل یادگیری ماشین خود ارائه دهید، انتخاب میکند. روشهای فیلتر محبوب شامل همبستگی پیرسون است - این همبستگی بین ویژگیها و بین ویژگیها و برچسب هدف است. بنابراین، در روشهای فیلتر ما میخواهیم با تمام ویژگیها شروع کنیم و میخواهیم بهترین زیر مجموعهای را که به مدل یادگیری ماشین میدهیم انتخاب کنیم و این عملکرد مدل را با این زیر مجموعه ویژگیها به ما میدهد.
ما یک ماتریس همبستگی دریافت خواهیم کرد که به ما میگوید که چگونه ویژگیها با یکدیگر و متغیر هدف مرتبط هستند. این همبستگی در محدوده -1 و 1+ قرار می گیرد که 1+ یک همبستگی بسیار مثبت است و -1 همبستگی بسیار منفی است. برخی از همبستگیهایی که اغلب مورد استفاده قرار میگیرند عبارتند از:
· همبستگی پیرسون
· همبستگی Kendall Tau
· همبستگی رتبه Spearman
شکل: محاسبه خطا در PCA
3. انتخاب ویژگی تک متغیره در Sklearn:
کلاسهای موجود در ماژول Sklearn.feature_selection میتواند برای انتخاب ویژگی / کاهش ابعاد در مجموعههای نمونه، یا برای بهبود نمرات دقت برآوردگرها یا تقویت عملکرد آنها در مجموعه دادههای بسیار بالا استفاده شود. Sklearn روال زیر را برای انتخاب ویژگی دارد:
· SelectKbest
· Selectpercentil
· GeenricUnivariateSection
· SelectKbest همه ویژگیهای امتیاز دهی K را حذف میکند
· SelectPercentile همه به جز بالاترین درصد امتیاز دهی از ویژگیهای مشخص شده توسط کاربر را حذف میکند
۴. روشهای بستهبندی
روشهای بستهبندی محبوب برای انتخاب زیر مجموعهای که در بالا گفته میشود شامل میشود.
· Forward Selection
· Backward Selection
· Recursive Feature Elimination
روشهای فوق چگونه کار میکنند؟
Forward Selection:
انتخاب رو به جلو یک روش تکراری "حریص" است. این امر به این دلیل است که ما یک بار یک ویژگی را انتخاب میکنیم ، آن را به مدل یادگیری ماشین منتقل میکنیم و عملکرد را ارزیابی میکنیم. ما روند افزایش ویژگیها را در هر تکرار تکرار میکنیم تا زمانی که بهبود عملکرد مدل مشاهده نشود. در این مرحله، ما میدانیم که بهترین زیر مجموعه از تمام ویژگیها را ایجاد کردهایم. بنابراین ، به آن گفته می شود: حذف رو به جلو.
Backward Selection:
حذف عقب - این فقط برعکس انتخاب رو به جلو است. همانطور که ممکن است آن را حدس بزند، در حذف عقب ما با "همه ویژگیها" شروع میکنیم و عملکرد مدل را هنگام حذف هر ویژگی در یک زمان ارزیابی میکنیم. ما تمایل داریم هنگام حذف یک ویژگی به طور همزمان عملکرد بهتری داشته باشیم و تا زمانی که پیشرفت دیگری نداشته باشد ادامه دهیم.
حذف ویژگی بازگشتی:
در حذف ویژگی بازگشتی، از یک مدل برای ارزیابی اهمیت ویژگی استفاده میکنیم. دستهبند جنگل تصادفی یکی از انواع مدلهایی است که میتوانیم اهمیت ویژگی را ارزیابی کنیم. ابتدا تعداد ویژگیهای مورد نظر را انتخاب میکنیم و مدل را متناسب میکنیم. مدل ویژگیها را بر اساس اهمیت رتبهبندی میکند و سپس کماهمیتترین ویژگیها را کنار میگذاریم. تکرار می کنیم تا تعداد ویژگیهای مورد نظر باقی بماند. انتخاب ویژگی بازگشتی اغلب در بین همه بهترین عملکرد را دارد.
5. روشهای تعبیه برای انتخاب ویژگی
روشهای تعبیه شده دوباره یک روش نظارت شده برای انتخاب ویژگی هستند. این روش امتیاز را اختصاص میدهد و ویژگیهایی را که بر اساس اهمیت ویژگی امتیاز کمتری دارند، کنار میگذارد. با نگاهی به SKLearn، کلاس اهمیت ویژگی در مدلهای مبتنی بر درخت (به عنوان مثال Random Forest Classifier) ساخته شده است. اهمیت ویژگی به عنوان یک ویژگی در feature_importances_ موجود است. سپس میتوانیم از SelectFromModel برای انتخاب ویژگیها از مدل آموزشدیده بر اساس اهمیت ویژگی اختصاص داده شده استفاده کنیم.
استخراج اهمیت ویژگی:
هنگامی که Sklearn وارد شد، دادهها پاک میشوند، و مدل نمونهسازی میشود و همچنین برای روی دادههای آموزشی، model.feature_importances_ چیزی است که شما نیاز دارید.
روشهای استخراج از رگرسیون خطی و لجستیک کمی متفاوت است.
شکل: معیار اهمیت ویژگی
6. کاهش ابعاد
همانطور که گفته شد، / در پستهای من قبلاً توضیح داده شد، مجموعه دادهها اغلب ابعاد بالایی دارند و دارای تعداد زیادی ویژگی هستند، اگرچه همه ویژگیها اغلب به مسئله مربوط نمیشوند. بنابراین ممکن است حذف ویژگی یا کاهش ابعاد مجموعه داده ضروری شود. من برخی از تکنیکها/روشهای حذف ویژگیها را مورد بحث قرار دادهام، مانند: روشهای فیلتر (مانند همبستگی پیرسون)، حذف ویژگی تک متغیره، روشهای Wrapper و روشهای تعبیه. اکنون به کاهش ابعاد نگاه میکنیم.
برخلاف روشهای فوق برای حذف ویژگی (که فقط ویژگیهای کماهمیت را «از بین میبرند») بدون ایجاد تغییر در ویژگیها؛ کاهش ابعاد "تبدیل" ویژگیها به بعد پایینتر.
انگیزه کاهش ابعاد:
انگیزه کاهش ابعاد دوگانه است:
1) اولاً، همانطور که مسئله را به فضایی با ابعاد کمتر تبدیل میکنید، کل دادههای ذخیره شده در حافظه رایانه را کاهش میدهید و همچنین الگوریتم یادگیری را افزایش میدهید، زیرا فضای ویژگی را کاهش میدهید و در نتیجه تعداد کمتری پارامترها (وزن) در مدل شما را حل میکنید.
2) انگیزه دوم: تجسم دادهها - تجسم دادهها در بیش از سه بعد آسان نیست - میتوانیم دادهها را به 3 بعد یا کمتر کاهش دهیم تا آن را ترسیم کنیم، ویژگیهای جدید را پیدا میکنیم: z1، z2 (و شاید z3) که میتواند به طور مؤثر همه ویژگیهای دیگر را "خلاصه" کند.
شهود کاهش ابعاد:
اجازه دهید بگوییم که ما یک مجموعه داده با چندین ویژگی جمعآوری کردیم - در زیر فقط دو مورد از ویژگیها را ترسیم میکنیم. از شکل ۱ مشخص است که به جای داشتن 2 ویژگی، در واقع میتوانیم فقط یک ویژگی در امتداد بعد z1 داشته باشیم.
به طور مشابه، میتوانیم دادهها را از سه بعدی به دو بعدی کاهش دهیم (شکل 2 را در زیر ببینید) - ** باید تأکید شود که در یک مثال معمولی ممکن است یک مسئله 1000 بعدی داشته باشیم که آن را به ابعاد کمتر (مثلا) به 100 کاهش میدهیم. ابعاد، با این حال ما نمیتوانیم چنین مسائلی را تجسم کنیم، بنابراین شهود با استفاده از چنین مثالهایی به بهترین شکل احساس میشود** - در اینجا (در شکل 2) میتوانیم دادهها را از 3 بعد به یک صفحه 2 بعدی همانطور که برجسته شده است (در امتداد جهتهای z1 و z2) نمایش دهیم. بنابراین، ما مسئله را از سیستم مختصات x1، x2، x3 به سیستم مختصات z1، z2 تبدیل کردهایم.
بنابراین، با مثالهای ساده بالا، کاهش ابعاد به کاهش منابع رایانه کمک میکند و مهمتر به بهینهسازی خطوط لوله داده کمک میکند.
شکل: احساس شهودی کاهش ابعاد
7. تجسم دادهها:
کاهش منابع کامپیوتری، سرعت بخشیدن به فرآیند آموزش و بهینهسازی خطوط لوله داده یکی از انگیزهها برای انجام کاهش ابعاد است. انگیزه دیگر برای انجام کاهش ابعاد، تجسم داده است.
با در نظر گرفتن کاربرد کاهش ابعاد در مورد استفاده شامل تجسم دادهها؛ تجسم دادههای بیش از سه بعدی آسان نیست. میتوانیم ابعاد دادههای خود را به 3 یا کمتر کاهش دهیم تا بتوانیم آنها را رسم کنیم.
ما باید ویژگیهای جدیدی را پیدا کنیم: z1، z2 (و شاید z3) که میتوانند به طور موثر همه ویژگیهای دیگر را خلاصه کنند. این به طور مستقیم قابل تفسیر نیست که ویژگیهای تبدیلشده جدید نشاندهنده چیست - این به مهندس یادگیری ماشین واگذار میشود که با توجه به فیزیک مسئله استنباط کند.
[یک مورد استفاده متداول که من در زمینه مکانیک شکست مواجه شدهرام که در آن من یک جزء مدلسازی شده در نرم افزار اجزای محدود در 3 بعد دارم، اما راهحلهای تحلیلی مکانیک شکست برای صفحات 2 بعدی موجود است. کاهش ابعاد با استفاده از یک الگوریتم به عنوان PCA (به زیر مراجعه کنید) میتواند در چنین موردی برای تجزیه و تحلیل انتشار ترک با محوریت منطقه مورد نظر مناسب باشد]
در نظر گرفتن مثال رایج دیگری در خارج از حوزه مکانیک سازه برای کمک به تجسم دادهها:
صدها ویژگی مرتبط با سیستم اقتصادی یک کشور ممکن است همه در یک ویژگی ترکیب شوند که شما آن را «فعالیت اقتصادی» مینامید.
با استفاده از کاهش ابعاد، میتوان موارد فوق را به دو ویژگی زیر خلاصه کرد و همانطور که ذکر شد تفسیر فیزیکی ویژگیها به مهندس محول میشود. شکلهای 3،4،5 را در زیر ببینید
کاهش ابعاد: تجزیه و تحلیل مؤلفه اصلی
محبوبترین الگوریتم کاهش ابعاد، آنالیز مؤلفه اصلی (PCA) است.
همانطور که در قسمت 4 این سری از پستها توضیح داده شد، با توجه به دو ویژگی x1 و x2 میخواهیم یک خط واحد پیدا کنیم که به طور موثر هر دو ویژگی را به طور همزمان توصیف کند. سپس ویژگیهای قدیمی خود را بر روی این خط جدید ترسیم میکنیم تا یک ویژگی واحد جدید به دست آوریم. همین کار را میتوان با سه ویژگی انجام داد، جایی که آنها را به یک هواپیما نگاشت میکنیم.
هدف PCA کاهش میانگین تمام فواصل هر ویژگی تا خط طرح است. این خطای طرحریزی است و در شکل 6 نشان داده شده است
برای یک مورد عمومی به صورت زیر عمل میکنیم:
از بعد n به بعد k تقلیل دهید: بنابراین، k بردار u1)، u2)،... u(k) را پیدا کنید که دادهها را بر روی آنها پخش کنید تا خطای طرحریزی را به حداقل برسانید.
شکل: نمونهای از کاهش ابعاد برای کمک به تجسم دادهها
8. تفسیر ریاضی تجزیه و تحلیل مؤلفه اصلی و الگوریتم تجزیه و تحلیل مؤلفه اصلی
بخشهای بالا بیشتر در مورد تفسیر فیزیکی روش تجزیه و تحلیل مؤلفه اصلی (PCA) برای کاهش ابعاد پوشش میدهند. اجازه دهید کمی به جبر خطی بپردازیم و برخی از پیشینه ریاضی PCA را درک کنیم!
تجزیه و تحلیل مؤلفه اصلی (PCA) یک ابزار استاندارد در تجزیه و تحلیل دادههای مدرن است که در زمینههای مختلف از علوم اعصاب گرفته تا گرافیک کامپیوتری و مهندسی به طور کلی استفاده میشود - زیرا یکی از سادهترین (از این رو، جالبترین!) روشها برای استخراج اطلاعات مرتبط از مجموعههای داده "گیج کننده" است.
با کمترین تلاش (3/4 خط کد پایتون/متلب) PCA نقشه راه را برای چگونگی کاهش یک مجموعه داده پیچیده به ابعاد پایینتر ارائه میکند تا ساختارهای پنهان و سادهشدهای که اغلب زیربنای آن هستند را آشکار کند.
هدف تجزیه و تحلیل مؤلفههای اصلی، شناسایی معنادارترین مبنای برای بیان مجدد مجموعه داده است. امید این است که این پایه جدید نویز را فیلتر کرده و ساختار پنهان را آشکار کند - بنابراین منجر به کاهش ابعاد میشود.
چارچوب PCA: تغییر اساس
بنابراین، سؤالی که PCA دقیقاً میپرسد این است: آیا مبنای دیگری وجود دارد که ترکیبی خطی از مبنای اصلی است که دادههای ما را به بهترین شکل بازگو کند؟ بنابراین، PCA قصد دارد دادههای اصلی X را به عنوان یک ترکیب خطی از پایه P دوباره بیان کند.
PX = Y
بهترین انتخاب P در PCA چیست؟
در معادله بالا، P کشش است و چرخشی که به بردارها در امتداد ستونهای X میدهد (با توجه به اینکه همه ویژگیها را در امتداد ستونهای X سازماندهی کردهایم و تعداد ردیفهای X تعداد نمونههای آموزشی را تشکیل میدهد. - در مثال تجسم دادهها، تعداد ردیفهای مربوط به تعداد کشورهای در نظر گرفته شده در مثال) به طوری که آنها با یک مبنای جدید یا جهتهای اصلی تراز شوند.
ما می خواهیم که مبنای جدید به گونهای باشد که در جایی که ما گسترش/واریانس دادهها (با توجه به میانگین) را تا حد امکان داشته باشیم. این به ما امکان میدهد آن ابعادی را که داده ها تقریباً مسطح هستند حذف کنیم. این امر ابعاد دادهها را کاهش میدهد در حالی که واریانس (یا گسترش) بین دادهها را تا حد ممکن نزدیک به دادههای اصلی نگه میدارد.