TGViewer
NLP stuff NLP stuff @nlp_stuff · 3.86K subscribers
Post #277 3.79K
بررسی اهمیت فیچرها

احتمالا تا حالا پیش اومده که می‌خواستید اهمیت فیچر‌ها رو در یک تسک بسنجید. در چنین شرایطی استفاده از معیار feature_importance در دسته‌بندهای درختی مثل random forest شاید اولین گزینه‌ای باشه که به ذهن آدم میرسه. در این دسته‌بندها با توجه به اینکه در هر گره فیچری برای جداسازی داده انتخاب میشه که بیشترین کاهش رو در معیار impurity داشته باشه، مهم‌ترین فیچرها اون‌هایی هستند که به ریشه درخت نزدیک‌تر هستند. به عبارت دیگه فیچرهایی بیشترین importance رو به‌دست میارند که به‌صورت وزندار بیشترین کاهش رو در معیار impurity بر روی داده داشته باشند. اما لزوما اولین گزینه بهترین گزینه نیست. در واقع اگه شما در دیتاست‌تون فیچرهای categorical زیادی داشته باشید احتمالا این معیار، شما رو به اشتباه میندازه. در واقع دسته‌بندهای درختی به فیچرهای numerical که مقادیر unique value زیادی دارند حساس‌تر هستند. به خاطر همین ممکنه در ایجاد درخت تصمیم به فیچرهای categorical اهمیت کمتری بدند. این موضوع به‌خاطر اینه که این دسته‌بندها برای ایجاد درخت تصمیم از معیاری به نام impurity استفاده می‌کنند. مقدار feature importance که براساس معیار impurity در درخت‌های تصمیم حساب میشه می‌تونه ما رو به اشتباه بندازه. حالا چاره کار، استفاده از روش دیگه‌ای به نام permutation_importance است. در این روش در هر iteration یک فیچر انتخاب میشه و مقادیر اون به صورت رندم shuffle میشه ( در هر نمونه ورودی مقادیر همه فیچر‌ها ثابت می‌مونه و فقط یک فیچر بین نمونه‌های مختلف ورودی شافل میشه) و بعد، دیتاست شافل‌شده به مدل داده میشه تا ببینیم چه مقدار افت کیفیت پیدا می‌کنه. طبیعتا اون فیچری که بعد از شافل شدن افت عملکرد بیشتری رو به مدل تحمیل می‌کنه از اهمیت بالاتری برخورداره. همون‌طور که می‌بینید این روش model agnostic هست و بر روی هر مدل از‌قبل‌ترین‌شده‌ای کار می‌کنه. از طرفی می‌تونید این معیار رو هم بر روی مجموعه تست و هم مجموعه ترین محاسبه کنید در حالیکه impurity-based feature importanceها عملا بر روی داده ترین فقط محاسبه شده‌اند. مقایسه اهمیت برخی فیچرها در دیتای تست و ترین و تفاوت اون‌ها می‌تونه سرنخی از وقوع اورفیت باشه. در واقع فیچری که در دیتای ترین اهمیت بالایی داره ولی موقع تست و inference اهمیت پایینی داره می‌تونه باعث اورفیت بشه. پیاده‌سازی و نحوه استفاده از این روش رو در پکیج scikit می‌تونید مشاهده کنید.

لینک توضیح permutation_importance:
https://scikit-learn.org/stable/modules/permutation_importance.html#permutation-importance

پ.ن. از این به بعد یه هشتگ جدید راه انداختیم که توش می‌خوایم نکات نغز و دلکش تکنیکال رو بگیم. کانال رو به بقیه هم معرفی کنید.

#handsOn

@nlp_stuff
More from @nlp_stuff
  1. Jan 6, 2026اندر حکایات بازی با کلمات: AI Engineering vs ML Engineering/Data Scientist این روزها عناوی…
  2. Mar 3, 2025مفهوم Agent چیست و چگونه کار می‌کنند؟ خانم چیپ هوین بلاگ پست مفصلی راجع به Agent (به قول ر…
  3. Feb 28, 2025خلاصه‌تر فکر کن از اونجایی که در مسائل استدلالی (reasoning) ، مدل برای رسیدن به جواب نهایی…
  4. Feb 23, 2025چه قدر تا بی‌کارشدن بک‌اندی‌ها فاصله داریم؟ عمده استفاده برنامه‌نویس‌ها از LLM‌ها در سطح پ…
  5. Feb 20, 2025به سوی سیستم‌۲ پیشرفت‌های هوش مصنوعی در دهه ۲۰۱۰، مدیون آموزش مدل‌های بزرگ دیپ لرنینگی روی…
  6. Feb 8, 2025مدل‌های استدلالی (reasoning) چیست و چگونه ساخته می‌شوند؟ حتما این روزها بارها مدل‌های استد…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →