tgoop.com/FinPy/987
Last Update:
#فیچر_سلکشن
ارزیابی کارآمدی روش های فیچر سلکشن - مقدمات
▫️فیچر سلکشن یکی از مهمترین مراحل توسعه یه مدل ML هست که در اون سعی میشه از ابعاد فضای ورودی مدل (تعداد فیچرها) کاسته بشه. این کاهش ابعاد میتونه تفسیرپذیری مدل و ساختن تئوری رو ساده تر و همچنین ترین کردن (و حتی فاز جمع آوری داده) رو سریعتر کنه. ساختن تئوری بر اساس تفسیر مدل تو فایننس اهمیت ویژه ای داره تا مدل هایی که توسعه دادیم بعدا و در عمل دستمون رو تو پوست گردو نزارن، ضمن اینکه ساخت تئوری با تفسیر مدل های ML میتونه حتی در پیش بینی قوهای سیاه هم راهگشا باشه (اینجا). اما مهمتر از همه این موارد، فیچر سلکشن میتونه با کاهش امکان اورفیت از طریق شناسایی و حذف فیچرهای نویز که قابلیت پیش بینی ندارند و به تبع اون افزایش جنرالیزیشن، کارآمدی بهتر روی داده هایی که مدل ندیده رو برامون به ارمغان بیاره.
▫️حالا که اهمیت فیچر سلکشن رو مرور کردیم و متوجه شدیم که مهمترین کاری که فیچر سلکشن برامون انجام میده، حذف فیچرهای نویز هست، سوالی که پیش میاد اینه که روش هایی که برای فیچر سلکشن معرفی شدن، چقدر در انجام این مهم موفق اند. به عبارت دیگه چطور کارآمدی روش های فیچر سلکشن رو ارزیابی و یک یا دو تاش رو تو جعبه ابزارمون برای استفاده در مدل هایی که توسعه میدیم، بزاریم؟ ما که برای یک مساله موجود نمیدونیم کدوم فیچرها نویزاند، چطور بفهمیم چیزی که یک الگوریتم فیچر سلکشن به عنوان نویز به ما معرفی کرده درسته؟
▫️راهکار ترتیب دادن یه آزمایش و استفاده از یک یا چند دیتاست ساختگی توسط خودمون هست که میدونیم کدوم فیچرهای اون دیتاست نویزاند. بعد میتونیم مدلی رو روی این دیتاست ترین کنیم و سپس روی مدل ترین شده الگوریتمهای مختلف فیچر سلکشن رو ارزیابی کرده و ببینیم که آیا میتونن فیچرهای نویز رو به درستی برامون بیرون بکشن یا نه.
▫️به عنوان مثال میتونیم یه دیتاست با ۲۵ تا فیچر بسازیم که ۵ تاش نویز، ۵ تاش فیچرهای به اصطلاح informative و بقیه فیچرهای redundant باشند. سپس با استفاده از فیچرهای informative متغیر هدف (مثلا لیبل های صفر و یک) رو تولید کنیم. توضیح اینکه فیچرهای redundant هم از روی فیچرهای informative و با اضافه کردن نویزی با واریانس دلخواه تولید میشن.
▫️جزئیات چنین رویه ای، که برای ارزیابی کارآمدی الگوریتمهای مختلف در شناسایی فیچرهای نویز مورد استفاده قرار گرفته، در فصل ۶ این کتاب همراه با کد توضیح داده شده. در خصوص روش های فیچر سلکشن هم میتونید به همین کتاب مراجعه کنید اما هدف از این پست معرفی پکیج BorutaShap بود که در ادامه بهش خواهیم پرداخت.
@FinPy
BY فینپای | FinPy
Share with your friend now:
tgoop.com/FinPy/987