1. پیشپردازش دادهها:
همه مدلهای یادگیری ماشینی برای بهبود آموزش نیاز به پیشپردازش داده دارند. نحوه بازنمایی دادهها میتواند تأثیر زیادی بر نحوه یادگیری مدل یادگیری ماشین از آن داشته باشد. برای مثال، وقتی دادههای عددی بهطور مناسب مقیاسگذاری شوند، مدلها تمایل دارند سریعتر و قابل اعتمادتر همگرا شوند. تکنیکهای انتخاب و تبدیل دادهها کلید افزایش کیفیت پیشبینی مدلها هستند.
هنر مهندسی ویژگی سعی میکند توانایی مدل را برای یادگیری بهبود بخشد و در صورت نیاز منابع محاسباتی را کاهش دهد. این کار را با تبدیل[1] و فرافکنی[2] (مثلاً کاهش ابعاد)، حذف[3] (روشهای انتخاب ویژگی) یا ترکیب ویژگیهای[4] دادههای خام برای ایجاد نسخه جدیدی از مجموعه داده انجام میدهد.
مهم: مهندسی ویژگی باید در آموزش و خدمت ثابت باشد
در طول آموزش، شما کل مجموعه داده را در دسترس خود دارید. بنابراین، میتوان از خصوصیات سراسری ویژگیهای فردی در تبدیل مهندسی ویژگی استفاده کرد.
· برای مثال، میتوانید انحراف استاندارد ویژگیها را محاسبه کنید و از آن برای انجام نرمالسازی استفاده کنید. باید تاکید کرد که وقتی مدل را ارائه میدهید، باید همان مهندسی ویژگی را انجام دهید تا همان نوع دادههایی را به مدل بدهید که مدل روی آن آموزش داده شده است. بنابراین، اگر دادهها را نرمال کردهاید و از انحراف استاندارد استفاده کردهاید، این ثابتهای سراسری باید ذخیره شوند و در حین ارائه نیز از آنها استفاده شود. انجام ندادن آن یک منبع بسیار رایج مسئله در سیستمهای تولید است و اشکال زدایی چنین خطاهایی ممکن است دشوار باشد.
· یا، اگر هنگام آموزش یک Hot Vector برای یک ویژگی دستهبندی ایجاد کردهاید، باید هنگام ارائه مدل، یک Hot Vector نیز ایجاد کنید.
این مجموعه/سند شامل موضوعات زیر مرتبط با مهندسی ویژگی خواهد بود:
· بخش 2 به عملیات پیش پردازشی که برای مهندسی ویژگی استفاده می شود، روشن میکند
· بخش 3 در مورد پاکسازی دادهها خواهد بود و در مورد برخی از روشهای آماری که ممکن است برای تشخیص نقاط پرت در مجموعه داده استفاده شود صحبت خواهد کرد.
· بخش 4 در مورد مقیاسگذاری ویژگیها صحبت خواهد کرد
2. عملیات پیشپردازش
اجازه دهید در مورد برخی از عملیات پیشپردازش که برای مهندسی ویژگی استفاده میشود صحبت کنیم
· پاکسازی دادهها: این شامل حذف یا تصحیح دادههای اشتباه است
· تنظیم ویژگی: اغلب نیاز به انجام تبدیل روی دادهها مانند مقیاسبندی، نرمالسازی دادهها است زیرا مدلهای یادگیری ماشین و شبکههای عصبی به طیف وسیعی از ویژگیهای عددی حساس هستند.
· استخراج ویژگی: کاهش ابعاد در مقابل روشهای انتخاب ویژگی: نباید همه چیز را به مدل یادگیری ماشینی خود بیاندازید و برای تعیین اینکه کدام ویژگی واقعاً مفید هستند، به فرآیند آموزشی خود تکیه کنید. بنابراین، انجام انتخاب ویژگی و | ضروری است یا کاهش ابعاد برای کاهش تعداد ویژگیهای یک مجموعه داده. در حالی که هر دو «انتخاب ویژگی» و «کاهش ابعاد» برای کاهش تعداد ویژگیهای یک مجموعه داده استفاده میشوند، یک تفاوت مهم وجود دارد:
· انتخاب ویژگی به سادگی انتخاب و حذف ویژگیهای داده شده بدون تغییر آنهاست
· در حالی که کاهش ابعادی ویژگیها را به بعد پایینتر تبدیل میکند
انتخاب ویژگی ویژگیهایی را مشخص میکند که به بهترین شکل نشان دهنده رابطه بین همه در فضای ویژگی و همچنین هدفی است که مدل سعی میکند پیشبینی کند. روشهای انتخاب ویژگی ویژگیهایی را که بر نتیجه تأثیری ندارند حذف میکنند. این امر اندازه فضای ویژگی را کاهش میدهد، بنابراین منابع مورد نیاز برای پردازش دادهها و پیچیدگی مدل را نیز کاهش میدهد. من در مورد انتخاب ویژگی و کاهش ابعاد در اینجا بحث کردهام.
· Bucketizing و Binning: گاهی اوقات ممکن است مفید باشد که محدودههای مختلف داده را در یک Hot Encoding مانند شکل زیر قرار دهید. برای مثال، اگر با مجموعه دادههای خانههایی که در طول سالها ساخته شدهاند سر و کار دارید، میتوانید سالهای مختلف را مطابق شکل زیر در نظر بگیرید:
3. پاکسازی دادهها
همانطور که گفته شد، پاکسازی دادهها شامل حذف یا تصحیح دادههای اشتباه است. نقاط پرت معمولاً به عنوان نمونههایی تعریف میشوند که معمولاً از جریان اصلی دادهها دور هستند. نقاط پرت در مجموعه داده ممکن است ناشی از خطای اندازهگیری یا ورودی، خرابی دادهها و غیره باشد. روشهای آماری ممکن است برای شناسایی نقاط پرت در مجموعه داده استفاده شود. برخی از این روشها در زیر مورد بحث قرار میگیرند. با این حال، نکتهای که باید مورد توجه قرار گیرد این است که هر یک از روشهای مورد بحث باید با دقت مورد استفاده قرار گیرد. در پایان، به دانش حوزه موضوعی شما و بررسی نامزدهای پرت برمیگردد. همیشه ممکن است یک مقدار غیرمعمول بخشی از تغییرات طبیعی فرآیند باشد تا یک نقطه مسئلهساز.
۳.۱ روش درصد:
در روش صدک، شما یک آستانه خاص در صدک تعیین میکنید. به عنوان مثال، هر چیزی بالاتر از صدک 98٪ و صدک کمتر از 2٪ ممکن است به عنوان یک نقطه پرت در نظر گرفته شود و سپس شما این نمونهها را از مجموعه داده برش دهید یا آن را محدود کنید. روش درصد دلخواه است و شما باید بر اساس دانش دامنه به صورت دستی آستانه را تعیین کنید.
3.2 استفاده از Z-score برای تشخیص نقاط پرت
Z-score غیرعادی بودن یک مشاهده را زمانی که دادههای شما از توزیع نرمال پیروی میکنند کمیت میکند. Z-scores تعداد انحرافات استاندارد بالاتر و کمتر از میانگین هر مقدار است. Z-score 2 نشان میدهد که یک مشاهده 2 انحراف استاندارد بالاتر از میانگین است در حالی که Z-score 2 نشان میدهد که 2 انحراف استاندارد کمتر از میانگین است.
از نظر ریاضی،
Z-score توسط:
درصد در مقابل Z-score:
باید تاکید کرد که در حالی که صدک از میانه به عنوان یک میانگین استفاده میکند (صدک 50)، Z-score از میانگین به عنوان میانگین استفاده میکند. بنابراین، Z-score 0 مقداری برابر با میانگین را نشان میدهد. هر چه امتیاز Z از میانگین دورتر باشد، غیرعادیتر است.
۳.۳ حذف نقاط پرت با استفاده از محدوده بین چارکی (IQR)
بر خلاف میانگین و انحراف معیار، محدوده بین چارکی و میانه معیارهای قوی هستند. اگر مجموعه داده به طور معمول توزیع شده باشد، میتوانید از انحراف استاندارد برای تعیین درصد مشاهداتی که در فواصل مشخصی از میانگین قرار میگیرند استفاده کنید. با این حال، اگر دادهها به طور معمول توزیع/توزیع ناهنجار نباشند، کار نمیکند و IQR یک جایگزین عالی است.
محدوده بین چارکی چیست؟
محدوده بین چارکی[5] (IQR) گسترش نیمه میانی دادهها را اندازهگیری میکند. این محدوده برای 50 درصد وسط نمونه شما است. IQR برای ارزیابی تغییرپذیری جایی که بیشتر مقادیر قرار دارند استفاده میشود. برای یافتن نقاط پرت، از یک ضریب (معمولاً 1.5) استفاده میشود تا از صدک 25 کم شود - که حد پایین Q1 را به 1.5 IQR میدهد و به صدک 75 اضافه میکند (یعنی حد بالایی Q3 + 1.5 IQR) استفاده میشود. هر نمونهای که فراتر از حد پایین و بالایی باشد به عنوان "پرت" دستهبندی میشود.
شکل زیر ریاضیات را بهتر نشان میدهد:
4. مقیاسگذاری ویژگیها
۵.۱ چرا مقیاسگذاری ویژگیها؟
مجموعه دادههای دنیای واقعی اغلب حاوی ویژگیهایی هستند که در درجه بزرگی و واحدهایشان متفاوت است. بنابراین، برای اینکه مدل یادگیری ماشین همه ویژگیها را در یک مقیاس تفسیر کند، باید «مقیاسگذاری ویژگی» را انجام دهیم.
مقیاسبندی ویژگی به الگوریتمهایی برای به حداقل رساندن تابع هزینه مانند نزول گرادیان کمک میکند تا سریعتر همگرا شوند و در بسیاری از موارد همانطور که در بخش بحث شد اجباری شوند. برای درک مقیاس گذاری ویژگی، اجازه دهید رابطه بین مقادیر ویژگی و پارامترها را از طریق یک مثال بررسی کنیم.
اهمیت مقیاسگذاری ویژگی:
برای درک اهمیت مقیاسگذاری ویژگی در بصریترین مفهوم، به تجزیه و تحلیل مؤلفه اصلی[6] (PCA) فکر کنید.
PCA سعی میکند اجزای اصلی را با انتخاب یک “u” (جهتی که در آن نقاط داده را نمایش میدهید) مکانیابی کند تا حداکثر واریانس را بدست آورید. شما حداکثر واریانس را میخواهید زیرا میخواهید حداکثر اطلاعات را از مجموعه دادههای خود حفظ کنید.
فرض کنید مجموعه دادههای شما از ویژگی «قد» و «وزن» تشکیل شده است، سپس، به دلیل تفاوت ذاتی در مقیاسها در قد و وزن، PCA ممکن است جهت حداکثر واریانس مربوط به محور «وزن» را تعیین کند - در صورت عدم وجود ویژگی مقیاسگذاری انجام شده است - که به وضوح نادرست است زیرا تغییر ارتفاع 1 متر بسیار قابل توجه است. از این رو مقیاسبندی ویژگی در اینجا اجباری میشود.
و همچنین در الگوریتمهایی مانند K Nearest Neighbors که در آن با فواصل اقلیدسی سروکار دارید.
۵.۲ درک مقیاسگذاری ویژگی از طریق یک مثال
اجازه دهید مثال “Hello World” را از یادگیری ماشین در نظر بگیریم که در آن شما قیمت خانه را پیشبینی میکنید – و ویژگیهای مرتبط:
· اندازه در فوت مربع - ویژگی x1
· تعداد اتاق خواب - ویژگی x2
در اینجا اندازه بر حسب فوت مربع ممکن است از 300 تا 2000 فوت مربع و تعداد اتاق خوابها از 0 تا 5 متغیر باشد. بنابراین، ویژگی x1 محدوده نسبتاً زیادی از مقادیر را به خود میگیرد و ویژگی x2 دامنه مقادیر نسبتاً کمتری را به خود اختصاص میدهد.
بیایید بگوییم مدل مرتبط با پیشبینی قیمت با معادله زیر ارائه میشود و اجازه دهید بگوییم که در حال پیشبینی قیمت برای یک خانه 5 خوابه به مساحت 2000 فوت مربع هستیم.
یکی از پارامترهای مدل میتواند این باشد:
این منجر به ارزیابی قیمت موارد زیر میشود:
بیایید بگوییم که قیمت 500 هزار تقریباً قیمت مناسب است، بنابراین، مدل پارامترها را به درستی ارزیابی کرده است.
در اینجا، ممکن است توجه شود که وقتی مقدار ویژگی نسبتاً بزرگ است (x1 -> 2000 فوت مربع)، مقدار پارامتر مربوطه کوچک است (w1 ۱/۰ است) و زمانی که مقدار ویژگی نسبتاً کوچک است (x2 5 اتاق خواب است)، مقدار پارامتر مربوطه نسبتاً بزرگ است (w2 50 است).
اجازه دهید موارد فوق را به صورت بصری بررسی کنیم. اجازه دهید نمودار پراکندگی ویژگیها را بدست آوریم: اندازه بر حسب فوت مربع در محور افقی در مقابل تعداد اتاق خوابها در محور عمودی است - برای برخی از نمونههای آموزشی که در زیر نشان داده شده است:
حال، اجازه دهید ببینیم که تابع هزینه چگونه ممکن است در نمودار کانتور به نظر برسد. ممکن است یادآوری شود که با تعریف "کانتور" - همه نقاط روی یک کانتور خاص ارزش یکسانی از تابع هزینه را نشان میدهند.
همانطور که ممکن است از شکل بالا متوجه شوید، خطوط بیضیهایی را تشکیل میدهند که در امتداد یک طرف کوتاهتر هستند (ضلع مربوط به w1 و در امتداد دیگر طولانیتر - محور مربوط به w2).
در چنین حالتی، الگوریتم کمینهسازی، مانند نزول گرادیان، ممکن است زمان زیادی طول بکشد تا همگرا شود، زیرا ممکن است قبل از اینکه بتواند حداقلهای سراسری را که در شکل زیر تقلید شده است، پیدا کند:
چگونه مسئله فوق را حل کنیم؟
در چنین حالتی، ممکن است مقیاسگذاری ویژگیها بهعنوان x1 فوت مربع و x2 تعداد اتاقخوابها بهگونهای مفید باشد که ویژگیهای مقیاسشده/تبدیل شده بین 0 و 1 قرار گیرند. شکل زیر:
همانطور که ممکن است متوجه شوید، نمودار مقیاسگذاری شده با نمودار مقیاس نشده/تبدیل نشده متفاوت است. این به این دلیل است که ویژگیهای مقیاس شده x1 و x2 اکنون محدوده مقادیر سازگاری را با یکدیگر دریافت میکنند و اکنون اگر الگوریتم کمینهسازی را مانند نزول گرادیان روی ویژگیهای مقیاس شده اجرا کنید، نمودارهای کانتور تابع هزینه به صورت زیر به نظر میرسد:
همانطور که ممکن است متوجه شوید، نمودارهای کانتور دیگر بلند و لاغر نیستند و شیب نزول مسیری مستقیم به حداقل سراسری پیدا میکند که در شکل زیر نشان داده شده است.
بنابراین، برای نتیجهگیری، میتوان بیان کرد: اگر ویژگیهای مختلفی دارید که دامنه مقادیر متفاوتی را به خود اختصاص میدهند، میتواند باعث شود الگوریتمهایی مانند شیب نزول به آرامی همگرا شوند، اما ویژگیها را مجدداً مقیاس کنید تا مقادیر قابل مقایسه آنها ممکن است الگوریتم کمینهسازی را به طور قابل توجهی سرعت بخشد.
۵.۳ راههای ممکن برای مقیاسگذاری ویژگیها
اجازه دهید اکنون راههای ممکن برای مقیاسگذاری ویژگیها را ببینیم، این موارد عبارتند از:
· تقسیم بر حداکثر: در اینجا هر ویژگی را میگیریم و هر نمونه از ویژگی را بر مقدار حداکثر تقسیم میکنیم تا هر مقدار بین 0 و 1 قرار گیرد (0 <= x1 <= 1)
بنابراین، با در نظر گرفتن همان مجموعه داده، در اصل،
مقیاسگذاری بر اساس تقسیم بر حداکثر:
بنابراین،
· میانگین نرمالسازی: در نرمالسازی میانگین، با ویژگیهای اصلی شروع میشود و آنها را مجدداً مقیاس میدهد تا در مرکز 0 قرار گیرند. به طور معمول، ویژگیها بین -1 و +1 قرار دارند. ویژگیهای مقیاسگذاری مجدد بر اساس میانگین نرمالسازی عبارتند از:
یعنی: برای ویژگی x1، میانگین x1 را برای تمام مثالهای آموزشی محاسبه میکنیم و سپس حداکثر و حداقل مقدار مربوط به ویژگی x1 را از تمام مثالهای آموزشی میگیریم.
· نرمالسازی Z-score: یکی دیگر از روشهای رایج مقیاسگذاری ویژگی، نرمالسازی Z-score است. برای انجام نرمالسازی Z-score، باید انحراف استاندارد هر ویژگی را محاسبه کنیم. نرمالسازی Z-score برای ویژگی x1 توسط:
کجا،
µ1 میانگین تمام مثالهای آموزشی مربوط به ویژگی x1 است و انحراف معیار است
5.4 کتابخانههای Scikit-Learn برای مقیاسگذاری ویژگیها
3 نوع مختلف اسکالر در کتابخانه Scikit-learn برای مقیاسگذاری ویژگیها وجود دارد. این موارد عبارتند از:
· Min-Max Scalar
· Standard Scalar
· Robust Scalar
اسکالر حداقل حداکثر:
با استفاده از اسکالر Min-Max، همه ویژگیها به محدوده تبدیل میشوند: [۱، ۰]، یعنی حداقل و حداکثر مقدار ویژگی بین 0 و 1 خواهد بود.
مقیاسگذاری استاندارد:
Standardscaler ویژگیها را با حذف میانگین و مقیاسگذاری آن به واریانس واحد استاندارد میکند. نمره استاندارد یک نمونه به صورت زیر محاسبه میشود:
که در آن μ و σ به ترتیب میانگین و انحراف معیار هستند
میانگین و انحراف استاندارد ذخیره میشوند تا بعداً در طول خدمت مدل استفاده شوند. اسکالر استاندارد اغلب در بسیاری از الگوریتمهای یادگیری ماشین استفاده میشود. با این حال، الگوریتم ممکن است به خوبی کار نکند اگر ویژگی فردی کم و بیش استاندارد توزیع نرمال نباشد.
اسکالر قوی:
این اسکالر میانه را حذف میکند و دادهها را با توجه به محدوده چندک - محدوده بین چارکی (IQR) که بین چندک اول و سوم قرار دارد، مقیاس میکند.
باید تاکید کرد که استانداردسازی مجموعه داده اغلب انجام میشود - یعنی با استفاده از اسکالر استاندارد همانطور که در بالا توضیح داده شد، با این حال، نقاط پرت میتوانند میانگین / واریانس را به صورت منفی تحت تاثیر قرار دهند و در چنین شرایطی، میانه و محدوده بین چارکی به شما نتایج بهتر نشان میدهد.
اسکالر ترجیحی کدام است؟ Min-Max scalar | Standard Scalar | Robust Scalar؟
Min-Max Scalar هر مقدار در ستون را به نسبت در محدوده [0,1] تغییر میدهد.
اسکالر استاندارد هر مقدار در ستون را در محدوده میانگین و انحراف استاندارد تغییر میدهد. این روش زمانی استفاده میشود که توزیع گاوسی باشد
اگر مقادیر پرت در مجموعه داده وجود داشته باشد، Robust Scalar گزینه ترجیحی است. به جای آن، اگر فردی با موارد پرت در یک اسکالر استاندارد تجزیه و تحلیل داده اکتشافی یا اسکالر Min Max برخورد کرده باشد، بسته به اینکه دادهها به طور معمول توزیع شدهاند یا نه، ممکن است به آن متوسل شوند.
6. روش انتخاب ویژگی: مقدمه
پس از صحبت در مورد: پاکسازی دادهها، تکنیکهای آماری مختلف برای پاکسازی دادهها و به دنبال آن مقیاسگذاری ویژگیها و اهمیت مقیاسگذاری ویژگیها در الگوریتمهایی مانند تجزیه و تحلیل مؤلفههای اصلی، K-نزدیکترین همسایهها و همچنین در طول به حداقل رساندن تابع هزینه و برخی از نوت بوکهای من که این موارد را نشان میدهند. تکنیکهای پاکسازی دادهها و مقیاسگذاری ویژگیها، وقت آن است که در مورد برخی از روشهای انتخاب ویژگی بحث کنیم.
در این مقاله، من با جزئیات کافی در مورد روشهای انتخاب ویژگی بحث کردهام - از این رو این پست بر روی اشاره به برخی تمرکز خواهد داشت. نکات برجسته و دفترچههایی که کاربرد این روشها را نشان میدهد.
۷. نکات برجسته روشهای انتخاب ویژگی
روشهای انتخاب ویژگی ممکن است به روشهای نظارت شده و بدون نظارت دستهبندی شوند. در حالی که روشهای نظارت شده همبستگی بین ویژگیها و متغیر هدف را در نظر میگیرند، روشهای بدون نظارت همبستگی بین ویژگیها و متغیر هدف را در نظر نمیگیرند.
روشهایی که تحت انتخاب ویژگی نظارت شده قرار میگیرند عبارتند از:
· روشهای فیلتر کردن
· روشهای لفاف و
· روشهای تعبیه شده
روشهای فیلتر کردن:
در متدهای فیلتر، با تمام ویژگیها شروع میکنیم و بهترین زیرمجموعهای را که قرار است به مدل یادگیری ماشین بدهیم، انتخاب میکنیم. در این روشها، یک ماتریس همبستگی دریافت میکنیم که به ما میگوید چگونه ویژگیها با یکدیگر و متغیر هدف همبستگی دارند. برخی از همبستگیهایی که معمولا استفاده میشوند، همبستگی پیرسون، همبستگی رتبه تاو کندال و همبستگی اسپیرمن هستند.
روشهای لفافدار:
روشهای محبوب برای انتخاب ویژگی عبارتند از حذف به جلو[7]، حذف به عقب[8] و حذف ویژگی بازگشتی[9]
انتخاب رو به جلو[10] یک روش حریصانه است که در آن ما هر بار یک ویژگی را انتخاب میکنیم، آن را به مدل یادگیری ماشین منتقل میکنیم و اهمیت را ارزیابی میکنیم. ما روند افزایش ویژگیها را در هر تکرار تکرار میکنیم تا زمانی که هیچ بهبودی مشاهده نشود. در این مرحله، ما بهترین زیرمجموعه از همه ویژگیها را ایجاد میکنیم.
انتخاب به عقب[11] فقط معکوس انتخاب رو به جلو است. در انتخاب معکوس، ما با "همه ویژگیها" شروع میکنیم و عملکرد مدل را با حذف یک ویژگی در یک زمان ارزیابی میکنیم.
حذف ویژگی بازگشتی: در حذف ویژگی بازگشتی، از یک مدل برای ارزیابی اهمیت ویژگی استفاده میکنیم. دستهبند جنگل تصادفی یکی از انواع مدلهایی است که میتوانیم اهمیت ویژگی را ارزیابی کنیم. ابتدا تعداد ویژگیهای مورد نظر را انتخاب میکنیم و مدل را متناسب میکنیم. مدل ویژگیها را بر اساس اهمیت رتبهبندی میکند و سپس کماهمیتترین ویژگیها را کنار میگذاریم. تکرار میکنیم تا تعداد ویژگیهای مورد نظر باقی بماند. انتخاب ویژگی بازگشتی اغلب در بین همه بهترین عملکرد را دارد.
8. مراجع
Boxplots:
https://towardsdatascience.com/creating-boxplots-with-the-seaborn-python-library-f0c20f09bd57
https://datavizpyr.com/boxplots-with-points-using-seaborn-in-python/
You-Tube
https://www.youtube.com/watch?v=A3gClkblXK8&list=PLeo1K3hjS3ut5olrDIeVXk9N3Q7mKhDxO&index=5