فرایند انتخاب ویژگی را در یک خط کد پایتون به صورت خودکار پیادهسازی کنید
اگر مدل آموزشی از تعداد نمونههای بیشتری برخوردار باشد، مدل علم داده بهتری به دست میآید، اما این کار در خصوص برخی از ویژگیها صدق نمیکند. دیتاست حقیقی ویژگیهای گوناگونی دارد و برخی از آنها نقش مفیدی در آموزش مدل علم داده قوی دارند. ویژگیهای حشو یا تکراری نیز بر عملکرد مدل تأثیر میگذارند. انتخاب ویژگی یکی از عناصر مهمِ فرایند توسعه مدل علم داده است. انتخاب کلیه مجموعههای احتمالی از ویژگیها، یک راهکار چندجملهای به شمار میآید. دانشمندان داده از روشهای انتخاب ویژگی متعددی برای حذف ویژگیهای تکراری استفاده میکنند. مقاله زیر 7 مورد از روشهای انتخاب ویژگی را بررسی کرده است. در نوشتار حاضر، خودکارسازی فرایند انتخاب ویژگی با استفاده از یک بسته پایتون متن باز تحت عنوان Featurewiz در دستور کار قرار دارد.
Featurewiz
Featurewiz کتابخانه متنبازی است که برای ایجاد و انتخاب بهترین ویژگیها از دیتاست استفاده میشود. این دیتاست میتواند در آموزش مدل علم داده قوی ایفای نقش کند. Featurewiz از قابلیتهای مهندسی ویژگی بهره میبرد و میتواند صدها ویژگی جدید با یک کلیک کد ایجاد کند. Featurewiz API پارامتری به نام ‘feature_engg’ دارد که میتواند به ‘interactions’، ‘group by’ و ‘target’ تغییر یابد. بنابراین، امکان ایجاد صدها ویژگی در یک دوره میسر میگردد.
مهندسی ویژگی یا ایجاد ویژگیهای جدید تنها قابلیت Featurewiz نیست. این کتابخانه قادر به کاهش تعداد ویژگیها و بهترین مجموعهها از ویژگیها برای آموزشِ مدلی قدرتمند است.
نحوه کار با Featurewiz
Featurewiz از دو الگوریتم برای انتخاب بهترین ویژگیها از دیتاست استفاده میکند.
- SULOV
- XGBoostبازگشتی
SULOV
SULOV که خلاصهشده عبارت «جستوجوی لیستی غیرهمبسته از متغیرها» است، شباهت زیادی به الگوریتم mRMR دارد. مراحلی که الگوریتم SULOV از آنها پیروی میکند، به شرح زیر است:
1. محاسبه کلیه جفت متغیرهای همبسته که از حد آستانه گذر کرده باشند.
2. محاسبه MIS (امتیاز اطلاعات متقابل) با توجه به متغیر هدف.
3. مقایسه هر جفت متغیر همبسته و حذف ویژگیهایی که امتیار MIS پایینی دارند.
4. ویژگیهای باقیمانده دارای امتیاز MIS بالا و همبستگی پایین هستند.
XGBoostبازگشتی
پس از اینکه الگوریتم SULOV بهترین مجموعه از ویژگی ها با امتیاز MIS بالا و همبستگی پایین را انتخاب کرد، از الگوریتم XGBoost برای محاسبه بهترین ویژگیها از میان متغیرهای(ویژگیهای) باقیمانده استفاده میشود. مراحل در زیر توضیح داده شده است:
1. ایجاد دیتاست برای مجموعه باقیمانده از ویژگیها و تقسیم آنها به آموزش و اعتبارسنجی
2. محاسبه 10 ویژگی برتر با استفاده دیتاست آموزشی بر روی دیتاست اعتبارسنجی(مدل Xgboost را بر روی دستاست آموزشی، آموزش میدهد و اعتبار آن را بر روی دیتاست اعتبارسنجی بررسی میشود.)
3. تکرار مراحل 1 و 2 هر بار با مجموعهای متفاوت از ویژگیها
4. ادغام کلیه مجموعههای متشکل از 10 ویژگی و حذف ویژگیهای تکراری. این کار میتواند به بهترین مجموعه از ویژگیها ختم شود.
Featurewiz از دو الگوریتم فوق برای یافتن بهترین مجموعه از ویژگیها استفاده میکند. میتوان از آنها برای آموزش یک مدل یادگیری ماشین قوی استفاده کرد.
نصب و استفاده
Featurewiz با استفاده از Pypl قابلنصب است.
pip install featurewiz
پس از نصب، امکان وارد کردن Featurewiz مهیا میشود.
from featurewiz import featurewiz
اکنون، توسعهدهنده باید فقط یک خط کد بنویسد تا به بهترین مجموعه از ویژگیها در دیتاست دست پیدا کند.
out1, out2 = featurewiz(dataname, target, corr_limit=0.7, verbose=0, sep=",", header=0, test_data="", feature_engg="", category_encoders="")
Featurewiz نهتنها میتواند دیتاستهایی با یک متغیر هدف(اک برچسبی) را اجرا کند، بلکه قادر است دیتاستهایی با متغیرهای هدف چندبرچسبی را نیز مدیریت کند. دیتافریم حاصل از Featurewiz حاوی بهترین مجموعه از ویژگیها است و میتواند در امر آموزش مدل به کار برده شود. نیازی نیست توسعهدهندگان نوع مسئله را تصریح کنند. ویژگیها از توان تصمیم خودکار برخوردارند.
جمعبندی
در نوشتار حاضر، کتابخانه متنباز Featurewiz بررسی شد. این کتابخانه میتواند انتخاب ویژگی دیتاست را به حالت خودکار در آورد. افزون بر انتخاب ویژگی، Featurewiz قادر است مهندسی ویژگی را پیادهسازی کرده و صدها ویژگی را تنها با یک کد ایجاد کند. Featurewiz از دو الگوریتم (SULOV و XGBoost بازگشتی) برای انتخاب بهترین مجموعه از ویژگیها استفاده میکند. Featurewiz با انجام کل فرایند انتخاب ویژگی از طریق یک خط کد به جریان کاریِ دانشمندان داده سرعت میبخشد. دانشمندان داده میتوانند از چندین روشِ انتخاب ویژگی برای فیلتر کردن بهترین ویژگیها استفاده کنند. هفت مورد از این روشهای انتخاب ویژگی در لینک زیر توضیح داده شده است.