مهندسی ویژگی
مهندسی ویژگی یا استخراج ویژگی یا کشف ویژگی، فرایند استفاده از دانش دامنه برای استخراج ویژگیها (مشخصات، خواص، صفتها) از دادههای خام است.[۱] انگیزه استفاده از این ویژگیهای اضافی برای بهبود کیفیت نتایج حاصل از فرایند یادگیری ماشین است، در مقایسه با ارائه تنها داده خام به فرایند یادگیری ماشین. این کار مهم است زیرا دانشمندان داده، با مهندسی ویژگی، میتوانند انتخابهای پربارتری داشته باشند و فرایند را درک کنند. همچنین شفافیت بیشتر در مورد نتیجه و چشماندازها بهدست آید.[۲]
روند
فرایند مهندسی ویژگی عبارت است از:[۳]
- ویژگیهای طوفان فکری یا آزمایش[۴]
- تصمیمگیری برای ایجاد نوع ویژگیها
- ایجاد ویژگیها
- آزمایش تأثیر ویژگیهای شناسایی شده بر روی کار
- در صورت نیاز ویژگیهای خود را بهبود میبخشد
- تکرار
ویژگیهای معمول مهندسی
لیست زیر[۵] راههای متداول برای مهندسی کاربردی ویژگیها را ارائه میکند
- تبدیلهای عددی (مانند گرفتن کسر یا مقیاسبندی)
- رمزگذار دسته مانند رمزگذار تک-نمود یا هدف (برای دادههای رستهای)[۶]
- خوشهبندی
- مقادیر تجمیعشده گروه
- تجزیه و تحلیل مولفه اصلی (برای دادههای عددی)
ارتباط
ویژگیها از نظر مفهوم متفاوت هستند.[۷] حتی ویژگیهای نسبتاً کوچک ممکن است به یک نمونه کمک کنند. انتخاب ویژگی میتواند تعداد ویژگیها را کم کند تا از خاص شدن یک نمونه به مجموعه دادههای آموزشی (بیش از حد) جلوگیری کند.[۸]
پُکش
پُکش ویژگی زمانی اتفاق میافتد که تعداد ویژگیهای شناسایی شده به شکل نامناسبی افزایش یابد. علتهای متداول عبارتند از:
- قالبهای ویژگی - پیادهسازی قالبهای ویژگی به جای کدنویسی ویژگیهای جدید
- ترکیبشهای ویژگی - ترکیبشهایی (به انگلیسی: combination) که نمیتوانند با یک سیستم خطی نمایش داده شوند
پکش ویژگی را میتوان از طریق روشهایی مثل: منظم سازی، روشهای هسته و انتخابش ویژگی کاهش داد.[۹]
خودکارسازی
خودکارسازی مهندسی ویژگی یک موضوع تحقیقاتی است که تاریخ آن، به دهه ۱۹۹۰ برمی گردد. نرمافزار یادگیری ماشین که مهندسی ویژگیهای خودکار را شامل میشود از سال ۲۰۱۶ به صورت تجاری در دسترس بودهاست.[۱۰] ادبیات علمی مرتبط حدوداً به دو شکل تقسیم میشود:
- یادگیری درخت تصمیم چند-رابطه ای (MRDTL) از یک الگوریتم نظارت شده استفاده میکند که شبیه به درخت تصمیم است.
- آمیختن ویژگی عمیق از روشهای سادهتری استفاده میکند.
گسستهسازی
گسسته سازی اساساً شامل گرفتن مجموعه ای از مقادیر دادهها و گروهبندی مجموعههایی از آنها با هم به روشی منطقی در سطلها (یا سبدها) است. سبد بندی میتواند برای مقادیر عددی و همچنین مقادیر طبقهبندی اعمال شود. این میتواند به جلوگیری از برازش بیش از حد دادهها کمک کند، اما به قیمت از دست دادن جزئیات دادهها تمام میشود. گروهبندی دادهها را میتوان به صورت زیر انجام داد:[۱۱]
- گروهبندی فواصل مساوی
- گروهبندی بر اساس فرکانسهای مساوی (مشاهدات در سبد)
- گروهبندی بر اساس مرتبسازی درخت تصمیم (برای ایجاد ارتباط با هدف)
رمزگذاری دستهای
رمزگذاری دسته تکنیکی است که برای رمزگذاری ویژگیهای طبقهبندی به مقادیر عددی استفاده میشود که معمولاً برای الگوریتم درک آن سادهتر است. تکنیک تک نمود (OHE) یک تکنیک رایج برای رمزگذاری طبقهبندی شدهاست. در اینجا مقادیر مقوله ای بدون از دست دادن اطلاعات به اعداد ۱ و ۰ ساده تبدیل میشوند. همانند سایر تکنیکها، تک نمود نیز معایب خاص خود را دارد و باید به قدری از آن استفاده کرد. این میتواند منجر به افزایش چشمگیر تعداد ویژگیها و ایجاد ویژگیهای بسیار مرتبط شود.
مثالهای مهندسی ویژگیها
مهندسی ویژگی موفقیت شکست یک مدل پیشبینی را تعیین میکند و تعیین میکند که مدل چقدر برای انسان قابل درک باشد. مهندسی ویژگیهای پیشرفته در قلب مسابقه تایتانیک قرار دارد، یک نمونه مهندسی ویژگی محبوب که توسط Kaggle Fundamentals، یک جامعه آنلاین از دانشمندان داده و شرکت تابعه Google LLC توسعه یافتهاست. این پروژه رقبا را به چالش میکشد تا پیشبینی کنند کدام مسافران از غرق شدن کشتی تایتانیک جان سالم به در بردهاند. هر مسابقه Kaggle یک مجموعه داده آموزشی برای آموزش مدل پیشگو و یک مجموعه داده آزمایشی برای کار با آن ارائه میدهد. مسابقه تایتانیک همچنین اطلاعاتی دربارهٔ مسافران کشتی تایتانیک ارائه میدهد.[۱۲]
ابزار مهندسی ویژگیها
ابزارهای زیادی وجود دارد که به شما در خودکارسازی کل فرایند مهندسی ویژگیها و تولید مجموعه وسیعی از ویژگیها در مدت زمان کوتاهی برای کارهای طبقهبندی و رگرسیون کمک میکند.
خودبرازشکننده (AutoFeat)
خودبرازشکننده به انجام مدلهای پیشبینی خطی با مهندسی و انتخاب خودکار ویژگیها کمک میکند. خود برازش کننده به شما امکان میدهد واحدهای متغیرهای ورودی را انتخاب کنید تا از ساخت ویژگیهای فیزیکی بیمعنی جلوگیری کنید.[۱۳]
تیاسفرش (TsFresh)
tsfresh یک بسته پایتون است. تعداد زیادی از ویژگیها یا ویژگیهای سری زمانی را بهطور خودکار محاسبه میکند. علاوهبر این، این بسته شامل روشهایی برای ارزیابی قدرت توضیحی و اهمیت چنین صفاتی در وظایف رگرسیون و طبقهبندی است.
منابع
- ↑ "Machine Learning and AI via Brain simulations". Stanford University. Retrieved 2019-08-01.
- ↑ "Feature Engineering: A Framework and Techniques". www.dominodatalab.com (به انگلیسی). Retrieved 2023-01-26.
- ↑ "Big Data: Week 3 Video 3 - Feature Engineering". youtube.com.
- ↑ Jalal, Ahmed Adeeb (January 1, 2018). "Big data and intelligent software systems". International Journal of Knowledge-based and Intelligent Engineering Systems. 22 (3): 177–193. doi:10.3233/KES-180383 – via content.iospress.com.
- ↑ "Creating Features". kaggle.com (به انگلیسی). Retrieved 2021-09-30.
- ↑ "Category Encoders — Category Encoders 2.2.2 documentation". contrib.scikit-learn.org. Retrieved 2021-10-01.
- ↑ "Feature Engineering" (PDF). 2010-04-22. Retrieved 12 November 2015.
- ↑ "Feature engineering and selection" (PDF). Alexandre Bouchard-Côté. October 1, 2009. Retrieved 12 November 2015.
- ↑ "Feature engineering in Machine Learning" (PDF). Zdenek Zabokrtsky. Archived from the original (PDF) on 4 March 2016. Retrieved 12 November 2015.
- ↑ "Its all about the features". Reality AI Blog. September 2017. Archived from the original on 18 August 2019. Retrieved 25 June 2022.
- ↑ "8 Feature Engineering Techniques for Machine Learning". ProjectPro (به انگلیسی). Retrieved 2022-12-02.
- ↑ "What is Feature Engineering? Definition and FAQs | HEAVY.AI". www.heavy.ai (به انگلیسی). Retrieved 2022-12-02.
- ↑ Patel, Harshil (2021-09-02). "What is Feature Engineering — Importance, Tools and Techniques for Machine Learning". Medium (به انگلیسی). Archived from the original on 2 December 2022. Retrieved 2023-01-26.