به آخرین قسمت از مجموعه مقالات یادگیری ماشین خوش آمدید. در این قسمت درباره بهینه سازی در یادگیری ماشین و افزایش دقت مدل صحبت میکنیم.
در مقاله یادگیری ماشین با پایتون در 6 گام، اولین مدل یادگیری نظارتی خود را ساختیم. ابتدا با محیط کدنویسی Jupyter Notebook آشنا شدیم. سپس مجموعهداده مربوط به قیمت خانه در ملبورن استرالیا را از سایت kaggle دانلود کردیم. پس از پاکسازی مجموعه داده، آن را به دو بخش داده آموزشی و آزمایشی تقسیم کردیم. الگوریتم gradient boosting را اجرا کرده و در آخر نتایج را ارزیابی کردیم. اما اگر دقت مدل خوب نبود، چکار کنیم؟
. . . .
بهینه سازی در یادگیری ماشین
میخواهیم دقت مدل را بهبود ببخشیم و تأثیرات بیشبرازش را کاهش دهیم. یک نقطه خوب برای شروع این کار و انجام بهینه سازی در یادگیری ماشین، تغییر ابرپارامترهای مدل است.
ابتدا با تغییر max_depth از “30” به “5” شروع میکنیم. سپس نتایج زیر تولید میشود:
#Results will differ due to the randomized data split
Training Set Mean Absolute Error: 129412.51
با اینکه میانگین قدرمطلق خطای مجموعه آموزشی بیشتر شده است، اما مشکل بیشبرازش کمتر شده پس باید نتایج داده آزمایشی بهبود پیدا کند. قدم دیگر برای بهینهسازی مدل، اضافهکردن درختهای بیشتر است. اگر n_estimators را 250 قرار بدهیم، این نتایج را میبینیم:
#Results will differ as per the randomized data split
Training Set Mean Absolute Error: 118130.46
Test Set Mean Absolute Error: 159886.32
بهینهسازی دوم نرخ قدرمطلق خطای مجموعه آموزشی را تقریباً 11000 دلار کاهش میدهد و الان فاصله کمتری بین نتایج آموزشی و آزمایشی برای میانگین قدرمطلق خطا داریم.
اگر تصمیم گرفتید تا این مدل یادگیری ماشین نظارتی را روی سیستم خود اجرا کنید، برای بهینه سازی در یادگیری ماشین پیشنهاد میکنیم که تغییر هرکدام از ابر پارامترها را بهتنهایی آزمایش کنید و تأثیر آنها را بر میانگین قدرمطلق خطا تحلیل کنید. علاوهبرآن، تغییراتی را در زمان پردازش ماشین بر اساس ابرپارامترهای انتخابی متوجه خواهید شد.
برای مثال، مقدار “5” برای max_depth، زمان کل پردازش را نسبت به زمانی که آن را “30” قرار داده بودیم کاهش میدهد، چون حداکثر تعداد لایههای شاخهها بسیار کمتر است. سرعت پردازش و منابع، زمانی که به سمت کار با مجموعهدادههای بزرگتر بروید، یک مورد مهم بهحساب خواهد آمد.
انتخاب ویژگی (Feature Selection)
تکنیک بهینهسازی مهم دیگر در روش های بهینه سازی در یادگیری ماشین، انتخاب ویژگی (Feature Selection) است. همانطور که بهخاطر دارید، در مرحله پاکسازی 9 ویژگی را حذف کردیم. الان زمان مناسبی است که درباره آن ویژگیها تجدیدنظر کنید و تحلیل کنید که آیا آنها بر روی صحت کلی مدل تأثیری دارند. “SellerG” ممکن است یک ویژگی جالب برای اضافهکردن به مدل باشد بهخاطر اینکه احتمالاً شرکت معاملات املاکی که ملک را میفروشد بر روی قیمت نهایی فروش تأثیر داشته باشد.
برعکس، حذف ویژگیها از مدل فعلی ممکن است زمان پردازش را، بدون کاهش چشمگیر دقت، کاهش بدهد -یا حتی دقت را بهبود ببخشد. برای انتخاب مؤثر ویژگیها، بهتر است که تغییرات ویژگیها را به تفکیک انجام دهید و نتایج را تحلیل کنید، بهجای آنکه یکدفعه چندین تغییر را اعمال کنید.
دوره آموزشی: هنوز انجام پروژه یادگیری ماشین شروع نکردید، چون برنامهنویسی بلد نیستید؟ اصلا نگران نباشید. دوره آموزش پایتون ویژه هوش مصنوعی را در کانال یوتیوب دیتاهاب ببینید.
جستجوی گرید (Grid Search)
درحالیکه آزمونوخطای دستی تکنیک مؤثری برای درک تأثیر انتخاب متغیر و ابرپارامترها است، اما روشهای خودکاری نیز برای بهینهسازی بهینه سازی در یادگیری ماشین وجود دارد، مثل جستجوی گرید (Grid Search). جستجوی شبکهای این امکان را فراهم میکند تا طیفی از تنظیماتی که میخواهید آنها را برای هر ابرپارامتر آزمایش کنید، لیست کنید سپس تمامی احتمالات ممکن را امتحان کنید.
یک فرایند خودکار رأیگیری برای تشخیص مدل بهینه اتفاق میافتد. چون مدل باید هر ترکیب ممکن از ابرپارامترها را آزمایش کند، اجرای جستجوی شبکهای زمان برخواهد بود!
در نهایت، اگر میخواهید از یک الگوریتم یادگیری ماشین نظارتی متفاوت بهغیراز gradient boosting استفاده کنید، بیشتر کدهای مورداستفاده در این تمرین قابل تکرار است. برای مثال، از همین کد برای بارگذاری مجموعهداده جدید، نمایش dataframe، حذف ویژگیها، حذف ردیفها، تقسیم و جابهجایی مجموعهداده و ارزیابی میانگین قدرمطلق خطا میتوان برای بهینه سازی در یادگیری ماشین استفاده کرد.
. . . .
و در انتها…
در این مقاله، بهینه سازی در یادگیری ماشین را بررسی کردیم. در اولین قدم، تغییر هایپرپارامترهای مدل بود. گزینه دیگر انتخاب ویژگی بود که از روشهای خیلی مهم است. در آخر جستجوی شبکهای معرفی شد.
دوره آموزشی: مباحث یادگیری ماشین در اینجا به پایان میرسد. برای یادگیری ماشین به صورت عملی، آموزش یادگیری ماشین به زبان ساده با پایتون را در کانال یوتیوب دیتاهاب ببینید.