استخراج ویژگی و انتخاب ویژگی

Feature Extraction vs. Feature Selection

امروزه حجم داده‌ها بسیار بالا رفته است و ما مجبور هستیم تنها روی ویژگی‌های مفید داده‌ها کارکنیم. برای رسیدن به این هدف با دو رویکرد استخراج و انتخاب ویژگی می‌توانیم داده‌ها را تحلیل نماییم.

استخراج ویژگی

از داده‌های موجود اطلاعات مفیدی را به‌دست می‌آورد.

انتخاب ویژگی

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

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

انتخاب ویژگی فرآیند ساده‌تری دارد. با توجه به ویژگی‌های موجود برخی از آن‌ها را انتخاب می‌کنیم و بقیه را کنار می‌گذاریم. انتخاب ویژگی برای جلوگیری از افزونگی داده، بی‌ربط بودن موجود در ویژگی‌ها و یا به‌دست آوردن تعداد محدودی از داده‌ها برای جلوگیری از پدیده‌ی Overfitting استفاده می‌شود. اگر ویژگی‌ها به هم مرتبط باشند، می‌توانیم تکنیک PCA را انجام دهیم تا ابعاد را کاهش داده و افزونگی را از بین ببریم. در واقع در این حالت استخراج ویژگی انجام می‌دهیم، زیرا علاوه بر اینکه زیرمجموعه‌ای از ویژگی‌های اصلی را انتخاب می‌کنیم؛ آن‌ها را تغییر می‌دهیم.

چه زمانی باید از استخراج و انتخاب ویژگی استفاده کنیم؟

ابتدا، باید بررسی کنیم چه نوع الگوریتمی با ویژگی‌های تولیدشده تغذیه می‌شود. افزونگی داده و ارتباط نداشتن داده‌ها با یکدیگر بسته به تکنیک‌های یادگیری ماشین متفاوت هستند.

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

زمانی از انتخاب ویژگی‌ها استفاده می‌کنیم که احتمال می‌دهیم افزونگی یا بی‌ارتباطی در میان داده‌ها وجود دارد. این موارد روی دقت مدل اثر می‌گذارند یا در بهترین حالت  noiseاضافه می‌کنند. گاهی اوقات با وجود داشتن ویژگی‌های مرتبط و غیرقابل ‌حذف، انتخاب ویژگی ممکن است فقط برای کاهش تعداد ویژگی‌ها (کاهش بُعد) انجام شود. مثلاً داده‌های ژن را در نظر بگیرید که در آن تعداد ویژگی‌ها نسبت به نمونه‌ها بسیار زیاد است. اگر شما 200 نمونه ژن داشته باشید؛ هر نمونه می‌تواند تقریباً 60 هزار ویژگی داشته باشد. این تعداد ویژگی سبب می‌شود مدل خیلی خوب و بدون خطا train شود اما از طرفی خطای test زیاد می‌شود و پدیده‌ی Overfitting اتفاق می‌افتد.

چگونه می‌توان از استخراج و انتخاب ویژگی‌ها استفاده کرد؟

 

Wrappers

  یک wrapper مدل خاصی را به‌صورت متوالی با استفاده از زیرمجموعه‌های مختلف ویژگی‌ها ارزیابی می‌کند تا زیرمجموعه را که در پایان بهترین نتیجه را دارد، به‌دست آورد. این روش بسیار پرهزینه است و مستعد Overfitting هستند، اما  از طرفی شانس موفقیت آن‌ها نیز بالا است.

Filters

فیلترها هیچ الگوریتم خاصی را به جهت جایگزینی سریع‌تر آزمایش نمی‌کنند بلکه ویژگی‌های اصلی را با توجه به ارتباطشان با مسئله (برچسب‌ها) رتبه‌بندی می‌کنند و تنها بالاترین آن‌ها را انتخاب می‌کنند.  Correlation و Mutual Information گسترده ترین این معیارها هستند. کتابخانه‌های بسیاری مانند SKLearn در پایتون وجود دارد که به‌وسیله‌ی آن می‌‌توان عمل انتخاب ویژگی را انجام داد.

Embedded

در این روش الگوریتم انتخاب ویژگی جزئی از الگوریتم یادگیری ماشین است. یکی از عادی‌ترین الگوریتم‌های این تکنیک درخت تصمیم می‌باشد. درخت تصمیم یک ویژگی را در هر مرحله‌ی بازگشتی انتخاب می‌کند و نمونه را به زیرمجموعه‌هایی کوچک‌تر تقسیم می‌کند.  هرچه تعداد گره‌های فرزند در زیرمجموعه‌های یک کلاس بیش‌تر باشد ویژگی‌ها حاوی اطلاعات مفیدتری هستند. فرآیند تولید درخت تصمیم همان فرآیند انتخاب ویژگی است. از رایج‌ترین الگوریتم‌های درخت تصمیم می‌توان بهCART،ID3 و C4.5 اشاره کرد.

نمونه های دیگر این تکنیک، LASSO برای ساخت مدل خطی است. این روش بسیاری از ویژگی‌ها را به صفر یا تقریبا صفر می‌رساند.

PCA

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

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

 

 

 

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.