انتخاب ویژگی

انتخاب ویژگی (Feature Selection)


 

انتخاب ویژگی فرآیندی است که در آن شما به طور خودکار یا دستی، ویژگی هایی را انتخاب می کنید که بیشترین تأثیر را در متغیر پیش بینی یا خروجی مورد نظر شما دارند. داشتن ویژگی های بی ربط در داده های شما می تواند از دقت مدل ها بکاهد و مدل شما را بر پایه ویژگی های بی ربط بیاموزد.

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

  • ساده سازی مدل ها برای تفسیر آنها توسط محققان / کاربران
  • زمان آموزش کوتاه تر
  • تعمیم افزایش یافته با کاهش واریانس

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

  • Wrappers
  • Filters
  • Embedded Methods

انتخاب ویژگی مقاله 1

.

انتخاب زیرمجموعه

انتخاب زیرمجموعه، زیرمجموعه ای از ویژگی ها را به عنوان یک گروه مناسب ارزیابی می کند. الگوریتم های انتخاب زیرمجموعه را می توان به بسته بندی (Wrapper)، فیلتر (Filter) و روش های جانشانی شده (Embedded Methods) تقسیم کرد. روشهای بسته بندی با استفاده از یک الگوریتم جستجو در فضا، ویژگی های ممکن را جستجو می کنند و با اجرای یک مدل در زیرمجموعه، هر زیرمجموعه را ارزیابی می کنند. روشهای بسته بندی از نظر محاسباتی سنگین هستند و خطر انطباق بیش از حد با مدل را دارند. فیلترها در رویکرد جستجو مشابه بسته بندی هستند، اما به جای ارزیابی یک مدل، یک فیلتر ساده تر ارزیابی می شود. اما روش های جانشانی شده در یک مدل تعبیه شده اند و مخصوص آن هستند.

ما می توانیم انتخاب ویژگی را به صورت زیر خلاصه کنیم.

 

Feature Selection زیر مجموعه ای از ویژگی های ورودی از مجموعه داده انتخاب میشود.

  •      بدون نظارت از متغیر هدف استفاده نمیشود (به عنوان مثال متغیرهای زائد حذف میشوند).

همبستگی (Correlation)

  •      نظارت شده از متغیر هدف استفاده میشود (به عنوان مثال متغیرهای بی ربط حذف میشوند).
  •           Wrapper زیر مجموعه هایی با عملکرد خوب جستجو میشوند.

RFE

  •           فیلترزیر مجموعه ویژگی ها براساس رابطه آنها با هدف انتخاب میشود.

روش های آماری (Statistical Methods)

روش های اهمیت ویژگی (Feature Importance Methods)

  •           طبیعی (Intrinsic) الگوریتم هایی که در طول آموزش انتخاب خودکار ویژگی را انجام می دهند.

درختان تصمیم (Decision Trees)

کاهش ابعاد (Dimensionality Reduction) کاهش ابعاد داده های ورودی پروژه به فضای ویژگی های بعد پایین.

.

نمودار انتخاب ویژگی

.

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

معمولاً استفاده از معیارهای آماری همبستگی بین متغیرهای ورودی و خروجی به عنوان مبنای انتخاب ویژگی فیلتر شناخته میشود.

به همین ترتیب، انتخاب اقدامات آماری بسیار به انواع متغیر داده بستگی دارد.

انواع داده های متداول شامل عددی (numerical) مانند ارتفاع و دسته ای (categorical) مانند برچسب یا لیبل، هستند. اگرچه ممکن است هر یک از این موارد، بیشتر تقسیم شوند مانند عدد صحیح (integer) و نقطه شناور (floating point) برای متغیرهای عددی، بولین (boolean)، ترتیبی (ordinal) یا اسمی (nominal) برای متغیرهای طبقه ای.

انواع متغیر ورودی متداول

 

متغیرهای عددی – Numerical Variables
  • متغیرهای عدد صحیح – Integer Variables
  • متغیرهای شناور – Floating Point Variables

 

متغیرهای دسته ای – Categorical Variables
  • متغیرهای بولین (دوقطبی) – (Boolean Variables (dichotomous
  • متغیرهای ترتیبی – Ordinal Variables
  • متغیرهای اسمی – Nominal Variables

.

انواع متغیر در انتخاب ویژگی

.

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

در اینجا، دو دسته گسترده از انواع متغیر را در نظر میگیریم؛ عددی و دسته ای (numerical and categorical). همچنین، دو گروه اصلی از متغیرها برای قابل در نظر گرفتن اند؛ ورودی و خروجی.

متغیرهای ورودی، آنهایی هستند که به عنوان ورودی یک مدل ارائه می شوند. در انتخاب ویژگی، این گروه از متغیرها هستند که ما می خواهیم اندازه آنها را کاهش دهیم. متغیرهای خروجی به مواردی گفته می شود که مدلی برای آنها پیش بینی شده است که اغلب متغیر پاسخ (response variable) نامیده می شوند.

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

  • خروجی عددی (Numerical Output): مسئله مدل سازی پیش بینی رگرسیون.
  • خروجی دسته ای (Categorical Output): مسئله مدل سازی پیش بینی طبقه بندی.

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

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

.

انتخاب روش های feature selection در یادگیری ماشین

.

ورودی عددی – خروجی عددی | Numerical Input – Numerical Output

این یک مسئله مدلسازی پیش بینی رگرسیون با متغیرهای ورودی عددی است. متداول ترین تکنیک استفاده از ضریب همبستگی، مانند پیرسون (Pearson) برای همبستگی خطی یا روش هایی بر پایه رده برای همبستگی غیرخطی است.

  • ضریب همبستگی پیرسون (خطی) – (Pearson’s correlation coefficient (linear
  • ضریب رتبه اسپرمن (غیرخطی) – (Spearman’s rank coefficient (nonlinear

ورودی عددی – خروجی دسته ای | Numerical Input – Categorical Output

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

  • ضریب همبستگی آنوا (خطی) – (ANOVA correlation coefficient (linear
  • ضریب رده کندال (غیرخطی) – (Kendall’s rank coefficient (nonlinear

ضریب کندال فرض می کند که متغیر طبقه ای ترتیبی است.

ورودی دسته ای – خروجی عددی | Categorical Input – Numerical Output

این مسئله مدل سازی پیش بینی کننده رگرسیون با متغیرهای ورودی دسته ای است. این مثال عجیب از مسئله رگرسیون است (شما اغلب با آن روبرو نخواهید شد). با این وجود، می توانید از همان روش های “ورودی عددی – خروجی طبقه ای” (توضیح داده شده در بالا) استفاده کنید، اما برعکس.

ورودی طبقه ای – خروجی طبقه ای | Categorical Input – Categorical Output

این مسئله مدل سازی پیش بینی طبقه بندی با متغیرهای ورودی دسته ای است. متداول ترین معیار همبستگی برای داده های دسته ای، آزمون مجذور کای ( chi-squared test) است.

  • آزمون مجذور کای (جداول احتمالی) – (Chi-Squared test (contingency tables
  • اطلاعات متقابل – Mutual Information

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

.

انتخاب ویژگی - تصویر

.

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

آمار همبستگی | Correlation Statistics

کتابخانه scikit-learn اجرای اکثر اقدامات آماری مفید را فراهم می کند.

برای مثال:

همچنین، کتابخانه SciPy پیاده سازی بسیاری از آمارهای دیگر، مانند (Kendall’s tau (kendalltau و همبستگی رده اسپرمن (spearman) را فراهم می کند.

روش انتخاب (Selection Method)

هنگامی که آمار برای هر متغیر ورودی با هدف (Target) محاسبه شده باشند، کتابخانه scikit-learn نیز روشهای مختلف فیلتر را ارائه می دهد.

دو روش محبوب عبارتند از:

تبدیل متغیرها | Transform Variables

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

نمونه هایی از انتخاب ویژگی کار کرده

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

انتخاب ویژگی رگرسیون – Regression Feature Selection: (Numerical Input, Numerical Output)

این نمونه کار انتخاب ویژگی را برای مسئله رگرسیون نشان می دهد که ورودی و خروجی عددی است. مسئله رگرسیون آزمون با استفاده از تابع () make_regression تهیه می شود. انتخاب ویژگی با استفاده از ضریب همبستگی پیرسون از طریق تابع () f_regression انجام می شود.

# pearson's correlation feature selection for numeric input and numeric output
from sklearn.datasets import make_regression
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import f_regression
# generate dataset
X, y = make_regression(n_samples=100, n_features=100, n_informative=10)
# define feature selection
fs = SelectKBest(score_func=f_regression, k=10)
# apply feature selection
X_selected = fs.fit_transform(X, y)
print(X_selected.shape)

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

(۱۰۰, ۲)


مفید برای رشته های:

  • ریاضی و آمار
  • کامپیوتر
  • مهندسی

 

ارسال دیدگاه

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