همه کسانی که در حوزه «هوش مصنوعی» (Artificial Intelligence) و «یادگیری ماشین» (Machine Learning) فعالیت دارند، با مسأله انتخاب «ویژگی‌های مرتبط» (Relevant Features) در یک مجموعه داده و حذف یا نادیده گرفتن ویژگی‌های «نامرتبط» (Irrelevant) یا کم اهمیت (که سهم چندانی در پیش بینی درست برچسب کلاس نمونه‌های جدید و به تبع آن، عملکرد مدل‌های یادگیری ندارند) دست و پنجه نرم کرده‌اند. «انتخاب ویژگی» (Feature Selection)، یکی از مفاهیم کلیدی در یادگیری ماشین است. روش های انتخاب ویژگی نقش مهمی در عملکرد بهینه مدل‌های یادگیری دارند.

فهرست مطالب این نوشته پنهان کردن

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

اهمیت مرحله انتخاب ویژگی در طراحی مدل‌های یادگیری

تحقیقات انجام شده در زمینه تاثیر انتخاب ویژگی‌های مناسب در عملکرد روش‌های یادگیری ماشین، نشان داده است که انتخاب مجموعه مناسب از ویژگی‌ها در هنگام طراحی مدل‌های یادگیری ماشین، عملکرد، دقت و کارایی روش‌های یادگیری «نظارت شده» (Supervised) و «نظارت نشده» (Unsupervised) را بهبود می‌بخشد. همچنین، وقتی که ابعاد فضای ویژگی داده‌ها بسیار زیاد است و با معضل «نفرین ابعاد بالا» (Curse of Dimensionality) مواجه هستیم، استفاده از مجموعه ویژگی‌های مناسب، «هزینه‌های محاسباتی» (نظیر زمان آموزش و یا منابع) لازم برای آموزش بهینه سیستم را به شدت کاهش می‌دهد. محاسبه درجه اهمیت ویژگی‌ها و استفاده از آن‌ها در مرحله انتخاب ویژگی، گام مهمی در جهت «تفسیرپذیری» (Interpretability) مدل‌های یادگیری ماشین خواهد بود.

روش های انتخاب ویژگی نظارت شده و نظارت نشده

برای انتخاب بهترین ویژگی‌ها برای یک مدل یادگیری نظارت شده، «روش های انتخاب ویژگی نظارت شده» (Supervised Feature Selection) ارائه شده‌اند. هدف این دسته از الگوریتم‌ها، انتخاب بهترین زیر مجموعه از ویژگی‌ها برای تضمین عملکرد بهینه یک مدل نظارت شده (به عنوان نمونه، مسائل دسته‌بندی (Classification) و «رگرسیون» (Regression)) است. این الگوریتم‌ها برای انتخاب بهترین ویژگی‌ها، از «داده‌های برچسب زده» (Labelled Data) استفاده می‌کنند. با این حال، در شرایطی که داده‌های برچسب زده در دسترس نیستند (یادگیری نظارت نشده)، روش‌هایی به نام «روش های انتخاب ویژگی نظارت نشده» (Unsupervised Feature Selection) پیاده‌سازی شده‌اند که ویژگی‌ها را براساس معیارهای مختلفی نظیر «واریانس» (Variance)، آنتروپی (Entropy)، قابلیت ویژگی‌ها در حفظ اطلاعات مرتبط با مشابهت‌های محلی (Local Similarity) و سایر موارد امتیازبندی می‌کنند.

ویژگی‌های مرتبطی که از طریق «فرایندهای مکاشفه‌ای نظارت نشده» (Unsupervised Heuristics) شناسایی شده‌اند، می‌توانند در مدل‌های یادگیری نظارت شده نیز مورد استفاده قرار بگیرند. چنین کاربردهایی از ویژگی‌های شناسایی شده، به سیستم یادگیری نظارت شده اجازه می‌دهد تا علاوه بر شناسایی میزان «همبستگی» (Correlation) ویژگی‌ها با برچسب کلاس داده‌ها، الگوهای دیگری نیز در داده‌های یادگیری شناسایی کنند. از دیدگاه طبقه‌بندی، روش های انتخاب ویژگی را می‌توان در چهار دسته زیر طبقه‌بندی کرد:

  • روش‌های «فیلتر» (Filter)
  • روش‌های «بسته‌بند» (Wrapper)
  • روش‌های «تعبیه شده» (Embedded)
  • روش‌های «ترکیبی» (Hybrid)

روش‌های انتخاب ویژگی بسته‌بند

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

انتخاب ویژگی مستقیم

در «روش های انتخاب ویژگی مستقیم» (Forward Feature Selection)، ابتدا یک زیر مجموعه تهی از ویژگی‌ها ساخته می‌شود. سپس در هر مرحله، ویژگی‌هایی که بهترین عملکرد را برای مدل یادگیری به ارمغان می‌آورند، به این زیر مجموعه اضافه می‌شوند. در زبان برنامه نویسی پایتون، از بسته نرم‌افزاری mlxtend برای پیاده‌سازی روش های انتخاب ویژگی مستقیم استفاده می‌شود. در کد زیر، از این روش انتخاب ویژگی جهت آموزش یک «دسته‌بند جنگل تصادفی» (Random Forest) استفاده شده است.

در این قطعه کد، متغیر (k_features) تعداد ویژگی‌های انتخابی را نشان می‌دهد. پارامتر (forward) در صورتی که True باشد، برای سیستم مشخص می‌کند که باید از روش مستقیم برای انتخاب ویژگی استفاده شود.

انتخاب ویژگی معکوس

در «روش های انتخاب ویژگی معکوس» (Backward Feature Selection)، ابتدا تمامی ویژگی‌ها در زیر مجموعه حضور دارند. سپس در هر مرحله، بدترین ویژگی‌ها از زیر مجموعه حذف می‌شوند (ویژگی‌هایی که حذف آن‌ها، باعث ایجاد کمترین کاهش در عملکرد، دقت و کارایی روش یادگیری ماشین می‌شوند). در زبان برنامه نویسی پایتون، از بسته نرم‌افزاری mlxtend برای پیاده‌سازی روش های انتخاب ویژگی معکوس استفاده می‌شود. در کد زیر، از این روش انتخاب ویژگی جهت آموزش یک «دسته‌بند جنگل تصادفی» (Random Forest) استفاده شده است.

در این قطعه کد، متغیر (k_features) تعداد ویژگی‌های انتخابی را نشان می‌دهد. پارامتر (forward) در صورتی که False باشد، برای سیستم مشخص می‌کند که باید از روش معکوس برای انتخاب ویژگی استفاده شود.

روش حذف بازگشتی ویژگی

روش «حذف بازگشتی ویژگی» (Recursive Feature Elimination)، یک روش «حریصانه» (Greedy) برای انتخاب ویژگی است. در این روش، ویژگی‌ها به طور بازگشتی و با در نظر گرفتن مجموعه‌های کوچک و کوچک‌تر از ویژگی‌ها (در هر مرحله) انتخاب می‌شوند. در این روش، ویژگی‌ها بر اساس مرتبه حذف شدن آن‌ها از فضای ویژگی رتبه‌بندی می‌شوند. در زبان برنامه برنامه‌نویسی پایتون، از بسته نرم‌افزاری SciKit-Learn برای حذف بازگشتی ویژگی‌های نامرتبط و انتخاب بهترین ویژگی‌ها استفاده می‌شود. در قطعه کد زیر، از این دسته از روش های انتخاب ویژگی برای انتخاب بهترین ویژگی‌های ممکن جهت «دسته‌بندی ارقام» (Digit Classification) استفاده می‌شود.

روش های انتخاب ویژگی تعبیه شده

از «روش‌های تعبیه شده» (Embedded Methods)، برای انتخاب ویژگی در الگوریتم‌های یادگیری ماشینی استفاده می‌شود که عملیات انتخاب ویژگی و «برازش مدل» (Model Fitting) در آن‌ها، به صورت همزمان انجام می‌شوند. چنین کاری معمولا از طریق یک روش «تنظیم‌گر پراکندگی» (Sparsity Regularizer) و یا تعریف «قید» (Constraint) قابل انجام است که سبب صفر شدن وزن برخی از ویژگی‌ها می‌شود.

روش رگرسیون لجستیکی چند جمله‌ای اسپارس

در روش «رگرسیون لجستیکی چند جمله‌ای اسپارس» (Sparse Multinomial Logistic Regression)، مکانیزم تنظیم‌گر پراکندگی از طریق تعریف «توزیع احتمال پیشین جهت تعیین خودکار مرتبط بودن» (Automatic Relevance Determination Prior)، برای یک روش رگرسیون لجستیکی چند جمله‌ای کلاسیک پیاده‌سازی می‌شود. مکانیزم تنظیم‌گر پراکندگی، اهمیت هر کدام از ویژگی‌ها را تخمین می‌زند و ویژگی‌هایی که برای پیش‌بینی مفید نیستند را هرس می‌کند. پیاده‌سازی کامل این دسته از روش های انتخاب ویژگی در زبان برنامه‌نویسی پایتون، از طریق [+] قابل دسترس است.

روش رگرسیون تعیین خودکار مرتبط بودن

روش «رگرسیون تعیین خودکار مرتبط بودن» (Automatic Relevance Determination Regression)، یک روش مبتنی بر «رگرسیون ستیغی بیزی» (Bayesian Ridge Regression) است. این مدل انتخاب ویژگی، وزن‌های ویژگی‌ها را بیش از دیگر مدل‌های رگرسیونی دیگر نظیر «رگرسیون کمترین توان‌های دوم عادی» (Ordinary Least Square Regression)، به سمت صفر سوق می‌دهد (به شکل‌های زیر دقت کنید).

روش های انتخاب ویژگی (Feature Selection Methods)

روش های انتخاب ویژگی (Feature Selection Methods)

همانطور که در شکل بالا مشاهده می‌شود، «قید پراکندگی» (Sparsity Constraint) روش رگرسیون تعیین خودکار مرتبط بودن، وزن برخی از ویژگی‌ها را صفر می‌کند و از این طریق، ویژگی‌های مرتبط در فضای ویژگی را تعیین می‌کند. در قطعه کد زیر، روش های انتخاب ویژگی «رگرسیون تعیین خودکار مرتبط بودن»، با روش های انتخاب ویژگی «رگرسیون کمترین توان‌های دوم عادی» مقایسه شده‌اند. در این قطعه کد، ابتدا یک فضای ویژگی (100×100) به‌طور تصادفی و از طریق توزیع گوسی تولید می‌شود. هدف پیدا کردن زیر مجموعه‌ای از 10 ویژگی مهم و مرتبط از فضای ویژگی مسأله است. برای پیاده‌سازی این قطعه کد، از  بسته نرم‌افزاری SciKit-Learn پایتون استفاده شده است.

روش‌های انتخاب ویژگی فیلتر

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

روش‌های انتخاب ویژگی نظارت شده

در این بخش، مهم‌ترین روش‌های فیلتر نظارت شده برای انتخاب ویژگی مورد بحث و بررسی قرار می‌گیرند.

روش انتخاب ویژگی Relief

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

$$W _ { i } = W _ { i } – ( x _ { i } – nearHit _ { i }) ^ { 2 } + ( x _ { i } – nearMiss _ { i }) ^ { 2 }$$

همان طور که در رابطه بالا مشخص است، در صورتی اختلاف میان یک ویژگی در نمونه انتخاب شده و ویژگی مشابه در نمونه کلاس مشابه، بیشتر از اختلاف میان همان ویژگی در نمونه انتخاب شده با ویژگی مشابه در نمونه کلاس مخالف باشد، وزن (درجه اهمیت) این ویژگی کاهش می‌یابد و برعکس. در الگوریتم ReleifF، که گسترشی از الگوریتم Relief محسوب می‌شود، نمونه‌های همسایه بیشتری برای به روز رسانی وزن‌ها جستجو می‌شوند. پیاده‌سازی کامل این دسته از روش های انتخاب ویژگی در زبان برنامه‌نویسی پایتون، از طریق [+] قابل دسترس است.

روش انتخاب ویژگی امتیاز فیشر (Fisher)

از این روش انتخاب ویژگی، بیشتر برای مقاصد «دسته‌بندی باینری» (Binary Classification) استفاده می‌شود. در این دسته از روش های انتخاب ویژگی، «نسبت فیشر» (FiR) در قالب «فاصله میان میانگین نمونه کلاس‌ها (مثبت و منفی) به ازای یک ویژگی خاص» تقسیم بر «واریانس کلاس‌ها (مثبت و منفی) به ازای همان ویژگی» تعریف می‌شود. از طریق این روش، میزان اهمیت (وزن) هر ویژگی مشخص می‌شود.

$$FiR _ { i } = \frac { \mid \overline { X _ i ^ { (0) } } – \overline { X _ i ^ { (1) } } \mid } { \sqrt { Var ( X_{i} ) ^ { (0) } + Var ( X _ { i } )^{ (1) } } }$$

روش انتخاب ویژگی امتیاز کای 2 (Chi-squared)

این روش انتخاب ویژگی، اختلاف معنادار میان «تناوب مشاهده شده» (Observed Frequency) و «تناوب مورد انتظار» (Expected Frequency) دو ویژگی «دسته‌ای» (Categorical) را می‌سنجد. «فرض صفر» (Null Hypothesis) در این روش بیان می‌کند که هیچ‌گونه همبستگی (تناظری) میان این دو متغیر وجود ندارد. این روش، به «آزمون مستقل بودن کای 2» (Chi-square Test of Independence) نیز مشهور است.

$$X ^ { 2 } = \frac { (Observed \; Frequency – Expected \; Frequency ) ^ { 2 } } { Expected \; Frequency }$$

برای اینکه بتوان به درستی از این رابطه، برای سنجش رابطه میان ویژگی‌های مختلف موجود در یک مجموعه داده و ویژگی هدف (که به آن، متغیر کلاس یا Target نیز گفته می‌شود) استفاده کرد، باید دو شرط زیر برقرار باشد:

  • ویژگی‌ها باید دسته‌ای باشند.
  • ویژگی‌ها باید مستقل از یکدیگر نمونه‌گیری شده باشند.
  • تناوب مورد انتظار متغیرها بزرگتر از پنج باشد.

شرط آخر تضمین می‌کند که «تابع توزیع تجمعی» (Cumulative Distribution Function) آماره‌های آزمون کای 2، از طریق توزیع کای 2 (Chi-square Distribution) «قابل تقریب زدن» (Approximation) خواهد بود. در زبان برنامه برنامه‌نویسی پایتون، از بسته نرم‌افزاری SciKit-Learn برای انتخاب بهترین ویژگی‌ها به روش امتیاز کای 2 استفاده می‌شود. در قطعه کد زیر، از این روش انتخاب ویژگی‌های برای انتخاب 2 ویژگی برتر در مجموعه داده iris استفاده شده است.

روش انتخاب ویژگی مبتنی بر همبستگی (Correlation-based)

در این روش انتخاب ویژگی، به زیرمجموعه‌ای از ویژگی‌ها، یک زیرمجموعه خوب گفته می‌شود که ویژگی‌های موجود در آن، از یک سو، همبستگی بالایی با «دسته‌بندی» (Classification) یا ویژگی هدف داشته باشند و از سوی دیگر، با یکدیگر «ناهمبسته» (Uncorrelated) باشند. میزان «شایستگی» (Merit) یا خوب بودن یک زیرمجموعه از ویژگی‌ها، از طریق رابطه زیر محاسبه می‌شود:

$$Merit _ { S _ { k }}= \frac { k \overline {r} _ {cf} } { \sqrt {k+k(k-1) \overline{r} _ {ff} } }$$

در این رابطه، $$\overline {r} _ {cf}$$ مقدار میانگین همبستگی محاسبه شده میان ویژگی هدف و تمامی ویژگی‌های موجود در مجموعه داده و $$\overline{r} _ {ff}$$ مقدار میانگین همبستگی یک به یک محاسبه شده میان ویژگی‌ها است. در نهایت، روش مبتنی بر همبستگی به شکل زیر فرموله می‌شود:

$$CFS = max _ {S _ { k } } \left [ \frac { r_ { cf_ {1} }+ r_{ cf_ {2} }+ …… + r_ { cf_{k} } }{ \sqrt {k + 2 (r_ {f_ {2} f_ {1} }+ …. +r_ {f_ {i} f_ {j} }+ ….. +r_ {f_ {k} f_ {1} } ) } } \right]$$

در این رابطه، به متغیرهای $$r_ { cf_ {i}}$$ و $$r_ {f_ {i} f_ {j} }$$، مقدار همبستگی گفته می‌شود. در زبان برنامه برنامه‌نویسی پایتون، از بسته نرم‌افزاری scikit-learn برای انتخاب بهترین ویژگی‌ها به روش مبتنی بر همبستگی استفاده می‌شود. در قطعه کد زیر، از روش مبتنی بر همبستگی برای انتخاب 5 ویژگی برتر از یک مجموعه داده استفاده شده است. در مرحله بعد، از ویژگی‌های انتخاب شده برای آموزش و تست یک مدل «ماشین بردار پشتیبان» (Support Vector Machine) استفاده می‌شود.

روش انتخاب ویژگی فیلتر مبتنی بر همبستگی سریع

روش فیلتر مبتنی بر همبستگی سریع (Fast Correlation-based Filter)، سرعت و کارایی بهتری نسبت به روش‌های انتخاب ویژگی ReliefF و «مبتنی بر همبستگی» از خود نشان می‌دهد. در نتیجه، به شکل بهتری می‌تواند خود را با داده‌های با ابعاد بالا منطبق و ویژگی‌های به مراتب بهتری را از داده‌های ورودی انتخاب کند. در این روش، ابتدا مقدار «عدم حتمیت نامتقارن» (Symmetrical Uncertainty) برای تمامی ویژگی‌ها محاسبه می‌شود. این مقدار، از طریق محاسبه «بهره اطلاعاتی x به شرط y» تقسیم بر «مجموع کل آنتروپی تمامی ویژگی‌ها» به دست می‌آید. سپس، مقادیر عدم حتمیت نامتقارن، مرتب‌سازی و ویژگی‌های «زائد» (Redundant) حذف می‌شوند. در زبان برنامه برنامه‌نویسی پایتون، می‌توان از بسته نرم‌افزاری skfeature برای پیاده‌سازی فیلتر مبتنی بر همبستگی سریع استفاده کرد.

روش‌های انتخاب ویژگی نظارت نشده

در این بخش، مهم‌ترین روش‌های فیلتر نظارت نشده برای انتخاب ویژگی مورد بحث و بررسی قرار می‌گیرند.

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

روش «واریانس» (Variance)، یکی از روش‌های فیلتر نظارت نشده برای انتخاب ویژگی است. این روش، یکی از بهترین و موثرترین روش‌ها برای انتخاب ویژگی‌های مرتبطی است که معمولا امتیاز واریانس بالاتری دارند. در زبان برنامه برنامه‌نویسی پایتون، می‌توان از بسته نرم‌افزاری scikit-feature برای پیاده‌سازی فیلتر واریانس استفاده کرد. به عنوان نمونه، در کد زیر، یک مجموعه داده حاوی مقادیر ویژگی صحیح تعریف شده است. در هر نمونه از این مجموعه داده، دو ویژگی یکسان وجود دارد. روش واریانس به راحتی قادر خواهد بود تا ویژگی‌های یکسان در نمونه‌ها را حذف کند.

روش انتخاب ویژگی میانگین قدر مطلق تفاضل‌ها

در این روش، «میانگین قدر مطلق تفاضل‌ها» (Mean Absolute Difference) برای ویژگی‌های موجود در مجموعه داده، با استفاده «مقدار میانگین» (Mean Value) ویژگی‌ها محاسبه می‌‌شوند. ویژگی‌هایی که میانگین قدر مطلق تفاضل بالاتری داشته باشند، «قدرت متمایز کنندگی» (Discriminative Power) بالاتری خواهند داشت؛ در نتیجه، ویژگی‌های مرتبط‌تری هستند.

$$MAD _ { i } = \frac { 1 } { n } \sum _ { j = 1 } ^ n \mid X _ { ij } – \overline { X_ { i } } \mid$$

از طریق کد زیر در برنامه‌نویسی پایتون، می‌توان درجه اهمیت یا مرتبط بودن ویژگی‌ها را با استفاده از میانگین قدر مطلق تفاضل‌ها محاسبه کرد.

روش انتخاب ویژگی نسبت پراکندگی

روش «نسبت پراکندگی» (Dispersion Ratio)، از طریق محاسبه میانگین ریاضی (Arithmetic Mean)، تقسیم بر، «میانگین هندسی» (Geometric Mean) هر ویژگی، درجه اهمیت یا مرتبط بودن یک ویژگی را مشخص می‌کند. نسبت پراکندگی بالاتر برای یک ویژگی، به معنای مرتبط‌تر بودن آن ویژگی نسبت به دیگر ویژگی‌های موجود در مجموعه داده است.

$$AM_{i}= \overline{X}_{i}=\frac{1}{n}\sum_{j=1}^n X_{ij}, \;\;\;\; GM_{i}=\left( \prod_{j=1}^n X_{ij}\right)^{\frac{1}{\pi}}$$

$$R _ { i }= \frac { AM _ { i }} { GM { i } } \in \left [ 1, \infty \right]$$

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

روش انتخاب ویژگی امتیاز لاپلاسین

روش «امتیاز لاپلاسین» (Laplacian Score)، بر پایه این مشاهده بنا نهاده شده است که داده‌های یک کلاس یکسان، معمولا در همسایگی یکدیگر در فضای ویژگی قرار دارند؛ در نتیجه اهمیت (مرتبط بودن) یک ویژگی را می‌توان از طریق محاسبه قدرت این ویژگی در حفظ اطلاعات «محلیت» (Locality) نمونه‌ها سنجید. در این روش، ابتدا نمونه‌ها با استفاده از یک معیار فاصله دلخواه به یک «گراف نزدیک‌ترین همسایه» (Nearest Neighbor Graph) نگاشت می‌شوند. سپس، ماتریس وزن محاسبه می‌شود. در مرحله بعد، امتیاز لاپلاسین برای هر کدام از ویژگی‌ها محاسبه می‌شود. ویژگی‌هایی که اهمیت بیشتری (مرتبط‌تر) نسبت به دیگر ویژگی‌ها داشته باشند، امتیاز لاپلاسین کمتری نسبت به دیگر ویژگی‌ها خواهند داشت و برعکس. با این حال در پایان، برای مشخص کردن بهترین زیر مجموعه از ویژگی‌ها، از یک روش «خوشه‌بندی» (Clustering) نظیر K-Means استفاده می‌شود. در زبان برنامه برنامه‌نویسی پایتون، می‌توان از بسته نرم‌افزاری skfeature، برای پیاده‌سازی فیلتر امتیاز لاپلاسین استفاده کرد.

ترکیب روش امتیاز لاپلاسین با روش آنتروپی مبتنی بر فاصله برای انتخاب ویژگی

این روش انتخاب ویژگی، بر پایه روش امتیاز لاپلاسین بنا نهاده شده است. با این تفاوت که در پایان، برای مشخص کردن بهترین زیر مجموعه از ویژگی‌ها، از روش «آنتروپی مبتنی بر فاصله» (Distance-based Entropy) به جای روش خوشه‌بندی K-Means استفاده می‌شود. این روش، عملکرد و پایداری بهتری در انتخاب بهترین ویژگی‌ها در مجموعه داده‌های با ابعاد بالا (High-Dimensional Datasets) از خود نشان داده است. در زبان برنامه برنامه‌نویسی پایتون، می‌توان از بسته نرم‌افزاری skfeature برای پیاده‌سازی فیلتر امتیاز لاپلاسین استفاده کرد. شایان توجه است که در این قطعه کد، از توابع پیاده‌سازی برای روش امتیاز لاپلاسین (کدهای روش امتیاز لاپلاسین) جهت محاسبه درجه اهمیت (مرتبط بودن) ویژگی‌ها استفاده می‌شود.

روش انتخاب ویژگی چند خوشه‌ای

در روش «انتخاب ویژگی چند خوشه‌ای» (Multi-Cluster Feature selection)، یک «تحلیل طیفی» (Spectral Analysis) با هدف اندازه‌گیری همبستگی میان ویژگی‌های مختلف انجام می‌شود. بهترین «بردارهای ویژه» تولید شده از ماتریس لاپلاسین، برای خوشه‌بندی داده‌ها و محاسبه امتیاز برای هر کدام از ویژگی‌ها مورد استفاده قرار می‌گیرند. ویژگی مهم این روش، انتخاب بهترین ویژگی‌ها برای حفظ ساختار چند کلاستری داده‌ها در یادگیری نظارت نشده است. پیاده‌سازی کامل این روش انتخاب ویژگی در زبان برنامه‌نویسی پایتون، از طریق [+] قابل دسترس است.

روش‌های انتخاب ویژگی ترکیبی

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

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

مرتضی جادریان (+)

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

بر اساس رای 5 نفر

آیا این مطلب برای شما مفید بود؟

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

برچسب‌ها