انتخاب الگوریتم «یادگیری ماشین» (Machine Learning) و «داده‌کاوی» (Data Mining) مناسب برای یک مساله خاص، کاری مهم و نیازمند دانش، دقت، تجربه و گاه اندکی آزمون و خطا است. در مطلب «روش انتخاب الگوریتم داده کاوی — راهنمای کاربردی» به چگونگی انتخاب الگوریتم مناسب برای حل یک مساله خاص به طور کامل پرداخته شد. اما، گاه نیاز می‌شود عملکرد چند الگوریتم روی یک مساله مشخص با هم مقایسه شوند. به طور کلی، مقایسه کارایی الگوریتم‌های گوناگون، یک مبحث مهم در حوزه یادگیری ماشین و داده‌کاوی محسوب می‌شود. در این مطلب، روش مقایسه الگوریتم ها در یادگیری ماشین با توجه به کارایی با استفاده از کتابخانه «سایکیت‌لِرن» (Scikit-Learn) آموزش داده شده است.

از آنچه در این مطلب آموزش داده شده، می‌توان به عنوان قالبی برای مقایسه الگوریتم‌های گوناگون استفاده کرد؛ مخاطبان می‌توانند به میل خود، الگوریتم‌های دیگری را نیز به این لیست برای مقایسه اضافه کنند و قالب کامل‌تری را برای خود بسازند.

انتخاب بهترین مدل یادگیری ماشین

چطور می‌توان بهترین مدل یادگیری ماشین را برای حل یک مساله انتخاب کرد؟ هنگام کار روی پروژه‌های یادگیری ماشین، کاربران معمولا با مدل‌های خوب متعددی کار می‌کنند و چندین مدل را روی یک مساله خاص پیاده می‌کنند تا در نهایت، بهترین مدل را انتخاب کنند. هر مدل دارای کارایی متفاوتی برای یک مساله خاص است. با استفاده از روش‌های «نمونه‌سازی مجدد» (Resampling Methods)، مانند «اعتبارسنجی متقابل» (Cross Validation)، می‌توانید تخمینی از میزان مناسب بودن هر مدل روی «داده‌های دیده نشده» (منظور از Unseen Data، داده‌هایی است که برای آموزش مدل استفاده نشده‌اند و در واقع داده‌های جدیدی هستند که به مدل داده می‌شوند) به دست بیاید. فرد باید قادر باشد با بهره‌گیری از این تخمین‌ها، بهترین مدل و یا دو مدل بهتر از میان مدل‌های گوناگون ساخته و تست شده روی مساله را برگزیند.

مقایسه الگوریتم ها در یادگیری ماشین بر اساس کارایی

هنگامی که یک مجموعه داده جدید وجود دارد، بصری‌سازی داده‌ها با استفاده از روش‌های گوناگون، راهکار مناسبی برای بررسی داده‌ها از چشم‌اندازهای مختلف است. ایده مشابهی برای انتخاب مدل نیز وجود دارد. کاربر باید قادر به استفاده از راهکارهای متفاوت برای بررسی و تخمین صحت الگوریتم‌های یادگیری ماشین گوناگون برای حل یک مساله خاص، به منظور انتخاب یک یا دو بهترین گزینه جهت نهایی‌سازی مدل و استقرار آن باشد. یک راهکار برای انجام این کار، استفاده از روش‌های بصری‌سازی متفاوت برای نمایش میانگین صحت، واریانس و دیگر مشخصه‌های صحت مدل است. در بخش بعدی، چگونگی انجام این کار در «زبان برنامه‌نویسی پایتون» (Python Programming Language) و به زبان ساده شرح داده شده است.

مقایسه الگوریتم ها در یادگیری ماشین

یک راهکار برای مقایسه الگوریتم‌های یادگیری ماشین، حصول اطمینان از این این موضوع است که هر الگوریتم به شیوه مشابهی روی داده‌های مشابه ارزیابی می‌شود. می‌توان بدین شکل، به ارزیابی هر الگوریتم با بهره‌گیری از «چارچوب تست خودکار» (Automated Test Framework) پرداخت. در مثالی که در ادامه آمده، شش الگوریتم متفاوت «رگرسیون لجستیک» (Logistic Regression)، «آنالیز تشخیص خطی» (Linear Discriminant Analysis)، «درخت دسته‌بندی و رگرسیون» (Classification and Regression Trees)، «بیز ساده» (Naive Bayes)، «ماشین بردار پشتیبان» (Support Vector Machines) و «K نزدیک‌ترین همسایگی» (K-Nearest Neighbors) با یکدیگر مقایسه شده‌اند.

مساله‌ای که در اینجا مورد بررسی قرار می‌گیرد، یک مجموعه داده دسته‌بندی دودویی استاندارد از مخزن یادگیری ماشین UCI است که «Pima Indians Onset of Diabetes» [+] نامیده می‌شود. مساله دارای دو دسته و هشت متغیر عددی در مقیاس‌های گوناگون است. در اینجا، اعتبارسنجی متقابل ۱۰-لایه برای ارزیابی هر الگوریتم مورد استفاده قرار می‌گیرد. مساله مهمی که باید به آن توجه داشت این است که همه الگوریتم‌ها با «بذر» (Seed) تصادفی مشابهی پیکربندی شده‌اند تا این اطمینان حاصل شود که تقسیم‌بندی مشابهی روی داده‌های تست انجام شده و هر الگوریتم به شیوه دقیقا مشابهی ارزیابی شده است. به هر الگوریتم، یک نام اختصاری داده شده که برای خلاصه‌سازی بعدی نتایج مفید است.

با اجرای مثال بالا، لیستی از نام کوتاه الگوریتم به همراه میانگین صحت و صحت انحراف معیار ارائه شده است.

LR: 0.769515 (0.048411)
LDA: 0.773462 (0.051592)
KNN: 0.726555 (0.061821)
CART: 0.695232 (0.062517)
NB: 0.755178 (0.042766)
SVM: 0.651025 (0.072141)

در عین حال، قطعه کد بالا یک نمودار جعبه‌ای نیز فراهم می‌کند که توزیع صحت امتیازها برای هر لایه اعتبارسنجی برای هر الگوریتم را نمایش می‌دهد.

مقایسه الگوریتم های یادگیری ماشین -- راهنمای کاربردی

با توجه به نتایج و نمودار ارائه شده در بالا، الگوریتم رگرسیون لجستیک و آنالایز تشخیص خطی نسبت به سایر الگوریتم‌‌ها خروجی بهتری داشته‌اند.

خلاصه

در این مطلب، چگونگی ارزیابی الگوریتم‌های یادگیری ماشین گوناگون روی یک مجموعه داده با استفاده از کتابخانه سایکیت لرن بیان شده است. همچنین، چگونگی استفاده از چارچوب تست خودکار مشابه برای ارزیابی الگوریتم‌ها و خلاصه‌سازی عددی نتایج و ترسیم نمودار جعبه‌ای برای آن‌ها بیان شد. می‌توان از الگوی ارائه شده برای ارزیابی این الگوریتم‌ها روی دیگر مسائل نیز استفاده کرد و یا، این الگو را برای دیگر الگوریتم‌ها نیز توسعه داد.

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

الهام حصارکی (+)

«الهام حصارکی»، فارغ‌التحصیل مقطع کارشناسی ارشد مهندسی فناوری اطلاعات، گرایش سیستم‌های اطلاعات مدیریت است. او در زمینه هوش مصنوعی و داده‌کاوی، به ویژه تحلیل شبکه‌های اجتماعی، فعالیت می‌کند.

بر اساس رای 2 نفر

آیا این مطلب برای شما مفید بود؟

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *