طبقه بندی در یادگیری ماشین چیست؟ – به زبان ساده + انواع و مفهوم


تصور کنید در کابینت را باز میکنید و میبینید همه چیز بهم ریخته و درهم است. پیدا کردن وسیلهای که نیاز دارید بسیار سخت و زمانبر خواهد بود. کار بسیار آسانتر میشد، اگر همه چیز گروهبندی شده بود. این دقیقا هدف الگوریتمهای «طبقه بندی در یادگیری ماشین» (Classification in Machine Learning) است که در این مطلب از مجله فرادرس سعی کردهایم تا حد ممکن کامل و روان بیان کنیم. طبقه بندی در یادگیری ماشین مبحث بسیار مهم، کلی و جذابی است که برنامهنویسان با تسلط به آن در زمینه هوش مصنوعی قادر به حل طیف گستردهای از مسائل مختلف، خواهند بود.
یادگیری نظارت شده چیست؟
قبل از پرداختن به مبحث طبقهبندی باید اول به «یادگیری نظارت شده» (Supervised Learning) نگاه کنیم. فرض کنید که درحال یادگیری مفهوم جدیدی در ریاضی هستید و بعد از حلکردن مسئله، اجازه دارید که به راه حلها رجوع کنید و ببینید آیا مسئله به روش صحیح حل شده یا نه، هربار که بعد از تلاش برای حل مسئلهای، به جواب و راه حل نگاه میکنید نقاط ضعف خودتان را پیدا و اصلاح می کنید درنتیجه بهمرور مهارت بیشتری کسب خواهید کرد. اما زمانی که به توانایی خود برای حل نوع خاصی از مسائل اعتماد داشته باشید دیگر به جوابها و راه حلها رجوع نخواهید کرد و سوالاتی که در مقابل شما قرارداده شدهاند توسط خودتان حل خواهند شد.
این همان روشی است که در یادگیری نظارت شده با مدلهای ماشین لرنینگ کار میشود. در یادگیری نظارت شده مدل با مشاهده نمونهها یادمیگیرد. همراه با متغیرهای ورودی به مدل، برچسبهای صحیح متناظر آنها را نیز به مدل نشان میدهیم. در طول آموزش مدل به هرکدام از برچسبهای متناظر با دادهی مربوطهاش نگاه میکند تا بتواند الگو بین دادهها و برچسبهای مربوط به هر نمونه داده را پیدا کند.
کاربردهای یادگیری ماشین
یادگیری ماشین تقریبا در همه کاربردهای زندگی وارد شده است. این اتفاق بهویژه در کشورهای توسعه یافته بیشتر قابل لمس و مشاهده است. در ادامه بعضی از نمونه کاربردهای یادگیری ماشین را فهرست کردهایم. سعی کردیم مواردی را بیان کنیم که با موضوع این مطلب همخوانی داشته باشند.
- Spam Detection: یادگیری نظارت شده با نگاه بر اینکه کدام ایمیلها اسپم هستند و کدام نیستند، به طبقهبندی و کشف ایمیلهای اسپم میپردازد.
- Speech Recognition: اگر به کامپیوتر آموزش بهدهید که صدای شما را تشخیص دهد میتوانید از فنآوری بازشناسی گفتار استفاده کنید.
- Object Recognition: اگر به کامپیوتر آموزش دهید که یک شی چه شکلی است و چطور میشود آن را از بین سایر اشیا تمیز داد، میتوانید از فنآوری تشخیص اشیا استفاده کنید.

در بالا، برخی از کاربردهای بیشمار یادگیری نظارت شده را نام بردیم اما یادگیری نظارت شده، دو زیرمجموعه اصلی دارد، که در زیر نام بردهایم و در ادامه، به بررسی طبقه بندی در یادگیری ماشین میپردازیم.
- «طبقهبندی» (Classification)
- «رگرسیون» (Regression)
طبقه بندی در یادگیری ماشین چیست؟
در یادگیری ماشین به فرایند تشخیص، درک و دستهبندی اشیا و ایدهها به دستههای موجود و تعریف شده به عنوان زیردستهای از جامعه فعلی، طبقهبندی میگویند. به کمک مجموعه دادههای آموزشی از پیش طبقهبندی شده، برنامههای طبقه بندی در یادگیری ماشین، آموزش میبینند و با استفاده از گسترهی وسیعی از الگوریتمها، «مجموعه دادهها» (Datasets) که در آینده با آن به عنوان مسئله روبهرو خواهند شد را میتوانند به دستههای مرتبط و معنیدار، طبقهبندی کنند.
الگوریتمهای استفاده شده برای طبقه بندی در یادگیری ماشین از دادههای آموزشی ورودی، برای پیشبینی احتمال عضویت دادهها در یکی از دستهبندیهای از پیشتعیین شده استفاده میکنند. یکی از پراستفادهترین اپلیکیشنهای طبقهبندی، نرمافزار فیلتر کردن ایمیلهای «هرزنامه» (Spam) از ایمیلهای عادی است که تا امروز توسط بزرگترین ارائه دهندگان خدمات سرویس ایمیل استفاده میشود.
بهطور خلاصه، طبقهبندی شکلی از «تشخیص الگو» (Pattern Recognition) است. در واقع، الگوریتمهای طبقهبندی روی دادههای آموزشی تمرین داده میشوند تا الگوهایی را شناسایی کنند که برای مجموعه دادههای بعدی هم - مانند توالی اعداد، کلمات، احساسات و هر چیزی که شبیه به دادههای آموزشی باشد- قابل استفاده باشند.
در این مطلب سعی خواهیم کرد که الگوریتمهای طبقهبندی را با جزییات بررسی کنیم و بفهمیم که چگونه برنامهای مانند نرمافزار تحلیلگر متن میتواند عملیاتی مانند تحلیل احساسات را انجام دهد، که برای دستهبندی متون بدون ساختار، برحسب نظرات متضاد -مثبت، منفی، خنثی یا سایر نظرات- استفاده میشود.

الگوریتم طبقه بندی چیست؟
الگوریتم طبقهبندی، تکنیک یادگیری نظارت شدهای است که برای دستهبندی مشاهدات جدید بر پایه دادههای آموزشی بهکار میرود. در طبقهبندی، مدل هوش مصنوعی از مجموعهداده یا مشاهداتی که فراهم شده استفاده میکند تا یاد بگیرد چگونه مشاهدات جدید را بر اساس کلاسها یا گروههای گوناگون دستهبندی کند. این کلاسهای مختلف میتوانند شامل ۰ یا ۱، آبی یا قرمز، بله یا خیر، هرزنامه یا ایمیل عادی و غیره شوند. از «تارگتها» (Targets)، «برچسبها» (Labels) یا «دستهبندیها» (Categories) میتوان برای توصیف این کلاسها استفاده کرد. الگوریتم طبقهبندی چون یک تکنیک یادگیری نظارت شده است، از دادههای ورودی برچسب خورده استفاده میکند که شامل اطلاعات ورودی و خروجی میشود. در فرایند طبقهبندی (y)، تابع خروجی مستقل (x) به متغیر ورودی منتقل میشود.
به عبارت سادهتر، طبقه بندی در یادگیری ماشین نوعی از فرایند تشخیص الگو است که در آن الگوریتمهای طبقهبندی روی دادههای آموزشی کار میکنند تا الگوی مشابهی را برای پیشبینی، روی مجموعه دادههای جدید کشف کنند.
یادگیرنده ها در مسائل طبقه بندی
در مسائل طبقهبندی دو نوع مدل یادگیرنده هوشمند، وجود دارد که در فهرست زیر آورده شدهاند.
- یادگیرندههای تنبل (Lazy)
- یادگیرندههای مشتاق
یادگیرنده های تنبل یا Lazy
این نوع یادگیرندهها قبل از اینکه منتظر رسیدن مجموعه دادههای آزمایشی باشند، در ابتدا مجموعه دادههای آموزشی را ذخیره میکنند. وقتی از الگوریتم «یادگیرنده تنبل» (Lazy Learners) استفاده میشود، طبقهبندی با استفاده از مناسبترین دادههای مجموعهداده آموزشی انجام میشود. زمان کمتر برای یادگیری و بیشتر زمان برای پیشبینی صرف میشود. به عنوان چند نمونه میشود از «استدلال مورد محور» (Case-Based Reasoning) و الگوریتم KNN نام برد.
یادگیرنده های مشتاق یا Eager
قبل از بدست آوردن «مجموعه داده آزمایشی» (Test Dataset)، «یادگیرندههای مشتاق» (Eager Learners) مدل طبقهبندی را با استفاده از «مجموعه دادههای آموزشی» (Training Dataset) میسازند. آنها بیشتر زمان را برای یادگیری و مطالعهدادهها و زمان کمتر را برای پیشبینی کردن صرف میکنند. برای این نوع از یادگیرندهها به عنوان مثال میتوان از شبکههای عصبی مصنوعی (Artificial Neural Network - ANN)، بیز ساده (Naive Bayes) و درختهای تصمیم (Decision Trees) نامبرد.
در ادامه به بررسی ۴ نوع از مسائل طبقه بندی در یادگیری ماشین خواهیم پرداخت.
۴ گونه از مسائل طبقه بندی در یادگیری ماشین
قبل از اینکه به بررسی ۴ نوع مختلف از مسائل طبقه بندی در یادگیری ماشین بپردازیم، باید درباره «مدلسازی پیشبینی کننده طبقهبندی» (Classification Predictive Modeling) صحبت کنیم.

مدلسازی پیش بینی کننده طبقه بندی
یکی از مسائل طبقه بندی در یادگیری ماشین، موردی است که در آن یکی از «برچسب» (Label) های کلاس برای نمونه خاصی از داده ورودی پیشبینی شدهاست. مسائل دستهبندی شامل موارد بیان شده در زیر میشوند.
- فراهم کردن نمونهای و نشاندادن اینکه آیا این نمونه هرزنامه است یا نه.
- شناسایی کردن کاراکتری دستنویس به عنوان یکی از کاراکترهای رسمی شناخته شده.
- مشخص کردن اینکه کاربر فعلی به عنوان مشتری دارای پتانسیل ریزش، برچسب زدهشود یا نه.
برای طبقهبندی از دیدگاه مدلسازی، وجود مجموعهداده آموزشی با نمونههای بیشماری از ورودی و خروجی ضروری است. مدل با استفاده از مجموعهداده آموزشی، روش بهینهای را برای اتصال نمونه دادههای ورودی به برچسب کلاسهای مشخص تعیین می کند. بنابراین، مجموعهداده آموزشی باید شامل تعداد بسیار زیادی نمونه از هر برچسب کلاسی و بهطور شایستهای نماینده کل مسئله باشد.
در زمان آماده کردن برچسبهای کلاس برای الگوریتم مدلسازی، در ابتدا مقادیر رشتهای مانند «هرزنامه» (Spam) یا «غیر هرزنامه» (Not Spam) باید به مقادیر عددی تبدیل شوند. در روش رمزگزاری که بیشتر اوقات برای برچسبها استفاده میشود، عدد صحیح متمایزی را به هرکدام از برچسب کلاسها اختصاص میدهند. به عنوان مثال، هرزنامه را برابر با عدد ۰ و غیرهرزنامه را برابر عدد ۱ میگزارند.
برای طبقهبندی در مسائل مدلسازی، انواع متعددی از الگوریتمها وجود دارند که شامل طبقهبندی و مدلسازی پیشگویانه میشوند. بهطور معمول توصیه میشود که متخصصی آزمایشهای کنترل شده را برعهده بگیرد تا تعیین کند که کدام الگوریتم و چه پیکربندی برای الگوریتم، بیشترین کارایی را برای یک مسئله طبقهبندی خاص ارائه میدهد، زیرا هیچ نظریه قدرتمندی وجود ندارد تا مشخص کند چگونه الگوریتمهای خاص را برای مسائل مختلف نگاشت کنیم.
«الگوریتمهای مدلهای پیشبینیکننده طبقهبندی» (Classification Predictive Modeling Algorithms)، بر پایه خروجی خود ارزشیابی میشوند. یکی از معیارهای رایج آماری برای ارزشیابی کارایی مدل، بر پایه برچسبهای پیشبینی شده کلاس، میزان دقت طبقهبندی است. اگرچه عالی نیست اما میزان دقت طبقهبندی، محل مناسبی برای شروع بسیاری از کارهای مربوط به طبقهبندیها است.
مسئلهای، شاید بجای زدن برچسب خاصی از کلاس روی هر نمونهداده، نیازمند پیشبینی احتمال عضویت در یک کلاس برای هر نمونه باشد. این مطلب عدم قطعیت بیشتری را به پیشبینی اضافه میکند که کاربر یا اپلیکیشن میتوانند بعدا آن را تفسیر کنند. منحنی ROC، ابزار عیبیابی پرطرفداری برای ارزیابی احتمالات پیشبینی شده است.
۴ نوع مختلف از وظایف طبقه بندی در یادگیری ماشین وجود دارند که در زیر بهصورت فهرست نامبردهایم.
- «طبقهبندی دودویی» (Binary Classification)
- «طبقهبندی چندکلاسه» (Multi-Class Classification)
- «طبقهبندی چند برچسبی» (Multi-Label Classification)
- «طبقهبندی نامتوازن» (Imbalanced Classification)
در ادامه به هرکدام از این مدلهای طبقه بندی با جزییات دقیقتری نگاه خواهیم انداخت.
طبقه بندی دودویی
از مسائل طبقهبندی که در آنها دادهها فقط بین دو برچسب کلاس طبقهبندی شوند، به عنوان مسائل «طبقهبندی دودویی» (Binary Classification) نام برده میشود. به عنوان نمونه برای این مسائل از گزینههای زیر میتوان نامبرد.
- پیشبینی تغییر (خرید یا عدم خرید)
- پیشبینی ریزش مشتری (ریزش یا عدم ریزش مشتری)
- کشف ایمیل هزرنامه (هرزنامه یا غیرهرزنامه)

مسائل طبقهبندی دودویی اغلب به ۲ کلاس احتیاج دارند، یکی حالت عادی را نمایندگی میکند و دیگری حالت غیرعادی را. برای نمونه، شرایط عادی برای ایمیل «غیر هرزنامه بودن» و حالت غیرعادی «هرزنامه بودن» است. برای مثال بعد، از یک آزمایش پزشکی استفاده میکنیم، وقتی که شرایط عادی «سرطان شناسایی نشد» و حالت غیرعادی برابر با «سرطان کشف شد» باشد. برچسب 0 به حالت عادی کلاس تعلق میگیرد درحالی که برچسب 1 به شرایط غیرعادی کلاس تعلق میگیرد.
بیشتر اوقات از مدلی که توزیع احتمالات برنولی را برای هر مورد پیشبینی میکند، برای نمایش دادن مسئله طبقهبندی دودویی استفاده میشود. توزیع احتمال گسسته که بهعنوان «توزیع برنولی» (Bernoulli Distribution) شناخته میشود با موقعیتهایی که در آنها یک رخداد نتیجه باینری بدهد (0 یا 1) سروکار دارد. این مطلب در مورد طبقه بندی در یادگیری ماشین، بیانگر این است که مدل احتمال عضویت نمونه را - در کلاس با برچسب 1 یا کلاس با برچسب 0 - پیشبینی میکند.
در پایین چند نمونه از الگوریتمهای مشهور طبقهبندی دودویی را فهرست کردهایم.
- «رگرسیون لجستیک» (Logistic Regression)
- «ماشین بردار پشتیبان» (Support Vector Machine)
- «بیز ساده» (Simple Bayes)
- «درخت تصمیمگیری» (Decision Trees)
بعضی از الگوریتمهای طبقه بندی در یادگیری ماشین، مانند ماشین بردار ساده و رگرسیون لجستیک، بهطور اختصاصی بهمنظور طبقهبندی دودویی ساخته شدهاند و بهصورت پیشفرض اصلا قابلیت پشتیبانی بیش از دو کلاس را ندارند.
طبقه بندی چندکلاسه
در وظایف مربوط به طبقهبندی چندکلاسه از برچسبهای چندکلاسه استفاده میشود. برای کمک به درک بهتر موضوع چند مورد را در ادامه مثال میزنیم.
- تشخیص چهره
- طبقهبندی گونههای گیاهی
- تشخیص نویسهها با استفاده از نور ( OCR)
طبقهبندی چند کلاسه برعکس طبقهبندی دودویی،به هیچ وجه نمیداند که خروجی عادی و غیرعادی چیست. درعوض، نمونهها در چندین کلاس شناخته شده دستهبندی میشوند. حتی در بعضی از موارد تعداد برچسبهای کلاسها میتوانند نسبتا زیاد شوند. برای نمونه، در یک سیستم تشخیص چهره، مدل هوش مصنوعی باید پیشبینی کند که یک عکس از بین هزاران یا دهها هزار صورت، متعلق به کدام شخص است.
مدلهای ترجمه متن یا مسائل دیگری که شامل پیشبینی کلمات هستند، میتوانند به عنوان موارد خاصی از طبقهبندی های چند کلاسه دستهبندی شوند. هر کلمهای در میان لغاتی که باید پیشبینی شوند به یک عملیات طبقهبندی چندکلاسه نیاز دارد، اینجا است که تعداد کلاسهای ممکن قابل پیشبینی را اندازه لغتنامه تعیین میکند که میتواند از دهها هزار تا صدها هزار لغت را شامل شود.
توزیع احتمالی چند دسته ای
طبقهبندی چندکلاسه بیشتر اوقات با استفاده از مدلی، مدل سازی میشود که «توزیع احتمالی چنددستهای» (Multinoulli Probability Distribution) را برای هر نمونه، پیشبینی میکند. توزیع احتمالی چنددستهای همچنین بهعنوان «توزیع دستهای» (Categorial Distribution) نیز شناخته میشود، زیرا میتوان از آن برای مدلسازی رویدادهایی با K نتیجه ممکن استفاده کرد. هر رخدادی که «خروجی دستهای» (Categorical Outcome) دارد - خروجی میتواند از2, 3, 4, ..., K حالت مختلف داشته باشد - به وسیله توزیع چنددستهای پوشش داده میشود که خود از نوع «توزیع احتمال گسسته» (Discrete Probability Distribution) است. از لحاظ طبقه بندی در یادگیری ماشین، این مطلب اشاره به این دارد مدل بیشترین احتمال تعلق نمونه دادهشده به برچسبی از یک کلاس خاص را پیشبینی میکند.
توزیع برنولی میتواند به عنوان حالت خاصی از «توزیع احتمالی چنددستهای» (Multinoulli Probability Distribution) در نظر گرفته شود که در آن تعداد نتایج ممکن، برابر با 2 است (K = 2). در یادگیری ماشین، «توزیع چنددستهای» (Multinoulli Distribution) میتواند برای مدلسازی کلاس مورد انتظار نمونهای به مجموعهای از K تعداد، کلاس استفاده شود. به عنوان مثال، ممکن است بخواهیم بر اساس ویژگیهای هر گل، پیشبینی کنیم که گلی متعلق به کدام گونه در مجموعه K گونه است. در این صورت، گونههای K از «توزیع چنددستهای» (Multinoulli Distribution) پیروی میکنند.

برای طبقهبندی چندکلاسه، بسیاری از تکنیکهای طبقهبندی دودویی قابل استفادهاند.
چند نمونه از الگوریتم های طبقه بندی چندکلاسه
در پایین چند نمونه از الگوریتمهای مشهور طبقهبندی چندکلاسه را که متخصصین هوش مصنوعی بیشتر استفاده میکنند، فهرست کردهایم.
- Progressive Boosting
- «درخت انتخاب» (Choice Tree)
- «نزدیکترین همسایگی» (Nearest K Neighbors)
- «جنگل خشن» (Rough Forest)
- «بیز ساده» (Simple Bayes)
الگوریتمهایی که برای طبقهبندی دودویی ساخته شدهاند برای حل مسائل چندکلاسه نیز قابل استفادهاند. برای انجام این کار از روشی به نام «یکی در مقابل همه» (One-Vs-Rest) یا «یک مدل برای هر جفت از کلاسها» (One Model For Each Pair Of Classes) استفاده میشود. این روش، شامل چندین مدل طبقهبندی دودویی جفت شده برای هر کلاس درمقابل بقیه کلاسها میباشد. روش دیگری به نام «یک در مقابل یک» (One-Vs-One) هم وجود دارد که در ادامه برای هردو روش توضیح مختصری آوردهایم.
- یک در مقابل یک: برای هر جفت از کلاسها، از یک مدل طبقهبندی دودویی بصورت جداگانه استفاده میشود.
- یک در مقابل همه: از یک مدل طبقهبندی دودویی برای هرکلاس در مقابل بقیه کلاسها استفاده میشود.
الگوریتمهای طبقهبندی دودویی که در ادامه نام بردهایم، میتوانند از این تکنیکهای طبقهبندی چندکلاسه استفاده کنند.
- «ماشین بردار پشتیبان» (Support Vector Machine)
- «رگرسیون لجستیک» (Logistic Regression)
طبقه بندی چند برچسبی
مسائل طبقهبندی چندبرچسبی، تعداد دو یا بیشتری برچسب از کلاسها را برای هر نمونه ارائه میدهند و درنتیجه هنگام پیشبینی کردن امکان الصاق چندین برچسب به هر نمونه را دارند. به مثال طبقهبندی عکسها فکر کنید. مدل تشخیص اشیا در اینجا میتواند وجود بسیاری از چیزهای شناخته شده در تصویر را پیشبینی کند. چیزهایی مانند اشخاص، سیب، دوچرخه و غیره. هر تصویر منحصر به فردی میتواند شامل چندین شی مختلف در یک صحنه شود.
این نوع طبقهبندی با طبقهبندی چندکلاسه و طبقهبندی دودویی که انتظار فقط یک برچسب از کلاسهای ممکن را برای هر واقعهای دارند، بهطور قابل توجهی متفاوت است. بهطور متداول با استفاده از مدلی که خروجیهای زیادی را پیشبینی میکند، مسائل طبقهبندی چند برچسبی مدلسازی میشوند. که احتمال وقوع هر خروجی با «توزیع احتمالی برنولی» (Bernoulli Probability Distribution) پیشبینی شده است. در حقیقت، این رویکرد برای هر نمونه به صورت مجزا، چندین عملیات پیشبینی با روش طبقهبندی دودویی انجام میدهد.
روشهای طبقهبندی چندسطحی را که برای مسائل طبقهبندی چندکلاسه یا دودویی استفاده میشوند، نمیتوانیم به صورت مستقیم بهکار ببریم. نسخههایی از الگوریتمها که به اصطلاح چندسطحی نامیده میشوند -درواقع چنین نیستند- نسخههای اختصاصیسازی شدهای از الگوریتمهای عادی طبقه بندی در یادگیری ماشین هستند. این الگوریتمها شامل موارد زیر میشوند.
- «تقویت گرادیان چند برچسبی» (Multi-label Gradient Boosting)
- «جنگل تصادفی چند برچسبی» (Multi-label Random Forests)
- «درخت تصمیم چند برچسبی» (Multi-label Decision Trees)
طبقه بندی نامتوازن
واژه طبقهبندی نامتوازن، به نوعی از طبقه بندی در یادگیری ماشین اشاره دارد که در آن توزیع نمونهها در کلاسها باهم برابر نیست. اکثر نمونههای مجموعه دادههای آموزشی به کلاس عادی تعلق دارند، درحالی که تعداد کمی از آنها به کلاس غیرعادی - نامتوازن - تعلق دارند، یا برعکس. این نابرابری باعث میشود که مسائل طبقهبندی نامتوازن درواقع، به مسائل طبقهبندی دودویی تبدیل شوند. بهعنوان نمونه میشود از موارد زیر نامبرد.
- روشهای تشخیص بالینی
- کشف دادههای پرت
- بررسی تقلب

اگرچه حل این مسائل، ممکن است به روشهای منحصر بهفردی نیاز داشته باشند اما به روش طبقهبندی دودویی مدلسازی شدهاند. به وسیله «بیش نمونهگیری» (Oversampling) از کلاس اقلیت یا «کم نمونهگیری» (Undersampling) از کلاس اکثریت، استراتژیهای تخصصی بهکار برده میشوند تا ترکیب نمونهها در مجموعه دادهی آموزشی تغییر کند. نمونههایی از این مورد، شامل موارد زیر میشود.
- «بیش نمونه گیری اسموت» (SMOTE Oversampling)
- «کم نمونه گیری تصادفی» (Random Undersampling)
میتوان از تکنیکهای مدلسازی تخصصی، مانند الگوریتمهای «حساس به هزینه» (Cost-Sensitive) یادگیری ماشین استفاده کرد. این رفتار در زمان «متناسبسازی» (Fitting) مدل روی مجموعه دادههای آموزشی، به کلاس اقلیت اولویت دیده شدن بیشتری میدهد. چند مدل از این تکنیکهای تخصصی را در ادامه نام بردهایم.
- «ماشین بردار پشتیبان حساس به هزینه» (Cost-sensitive Support Vector Machine)
- «درخت تصمیم حساس به هزینه» (Cost-Sensitive Decision Tree)
- «رگرسیون لجستیک حساس به هزینه» (Cost-Sensitive Logistic Regression)
از آنجا که گزارش دقت طبقهبندی ممکن است گمراهکننده باشد، وجود شاخصهای عملکرد به عنوان جایگزینی برای آن، احتمالا ضروری خواهد بود. در ادامه به چند مورد از این شاخصها اشاره کردهایم.
- «معیار F برای اندازهگیری» (F-Measure)
- «دقت» (Precision)
- «صحت» (Recall)
در ادامه مطلب به بررسی انواع الگوریتمهای طبقه بندی در یادگیری ماشین، خواهیم پرداخت.
انواع الگوریتم های طبقه بندی
برپایه مجموعهدادهای که با آن کار میکنید، روشهای طبقهبندی مختلفی را میتوانید بهکار ببرید. این امر به خاطر این است که مطالعات بسیار گستردهای در علم آمار بهروی مبحث طبقهبندی انجام شده است. در ادامه نگاه مختصری به ۶ مورد از برترین الگوریتمهای ماشین لرنینگ خواهیم انداخت.
رگرسیون لجستیک
«رگرسیون لجستیک» (Logistic Regression)، تکنیک طبقهبندی یادگیری نظارت شدهای است که بیشترین احتمال را برای متغیر هدف پیشبینی میکند. فقط یک انتخاب بین دو کلاس وجود خواهد داشت. دادهها فقط میتوانند نسبت به 1 یا «بله» به نمایندگی از موفقیت یا به 0 یا «خیر» به نمایندگی از شکست، کد شوند. متغیر وابسته بهطور بسیار موثری با استفاده از رگرسیون لجستیک قابل پیشبینی است. میتوانید در زمانی که نتیجه پیشبینی، دستهبندی شده باشد مانند صحیح یا غلط، بله یا خیر، 0 یا 1 و مواردی مانند اینها، از رگرسیون لجستیک استفاده کنید. همچنین این روش میتواند برای تعیین این که ایمیلی هرزنامه است یا نه، بهکار برود.
بیز ساده
«بیز ساده» (Naive Byes) تعیین میکند که آیا نمونه دادهای در دستهبندی منحصر بهفردی قرار میگیرد یا نه. از این الگوریتم برای دستهبندی کلمات یا عبارات در تحلیل متن استفاده میشود. برای اینکه بررسی کند آیا در یک دستهبندی از پیش تعیین شده قرار میگیرند یا نه.
متن | برچسب |
«یک بازی عالی» | ورزشی |
«انتخابات تمام شد» | غیرورزشی |
«چه رکورد شگفت انگیزی» | ورزشی |
«یک بازی تمیز و فراموش نشدنی» | ورزشی |
«برنده نهایی مسابقات املا، یک شگفتی بود» | غیرورزشی |
نزدیک ترین همسایگی
«نزدیکترین همسایگی» (K-Nearest Neighbors | KNN)، احتمال عضویت نمونه دادهای را در گروهها محاسبه میکند. با توجه بر این اصل که کدام گروه از نمونه دادهها به آن نزدیکتر هستند این محاسبه انجام میشود. زمانی که از KNN برای طبقهبندی استفاده میکنید، این شما هستید که تعیین میکنید، چگونه دادهها برحسب نزدیکترین همسایگی دستهبندی شوند.
درخت تصمیم
«درخت تصمیم» (Decision Tree)، نمونهای از یادگیری نظارت شده است. اگرچه که میتواند هم مسائل مربوط به رگرسیون را حل کند و هم طبقهبندی، اما در مسائل مربوط به طبقهبندی بهترین است. مانند فلوچارت، نمونهدادهها را به دو گروه شبیه به یکدیگر تقسیم میکند، از تنه درخت شروع میکند و از طریق شاخهها و برگها حرکت میکند تا جایی که دستهبندیها در نزدیکترین ارتباط بایکدیگر باشند.
الگوریتم جنگل تصادفی
«الگوریتم جنگل تصادفی» (Random Forest Algorithm)، شاخهی توسعه یافتهای از الگوریتم درخت تصمیم است بهاین صورت که در ابتدا با استفاده از دادههای آموزشی، تعدادی درخت تصمیم ایجاد میشوند سپس دادههای خود را روی یکی از درختهای ساخته شده به عنوان جنگل تصادفی «متناسبسازی» (Fitting) میکنند. میانگین دادهها را محاسبه میکنند تا به نزدیکترین درخت داده، مبتنی بر اندازه دادهها متصل کنند. این مدلها برای بهبود مشکلات در الگوریتم درخت تصمیم، درباره الصاق اجباری و بیهوده دادهها به یک دسته بسیار عالی هستند.
ماشین بردار پشتیبان
«ماشین بردار پشتیبان» (Support Vector Machine)، روش مشهوری برای حل مسائل طبقه بندی در یادگیری ماشین و رگرسیون بهصورت نظارت شده است. این روش با استفاده از الگوریتمها برای طبقهبندی و آموزش دادهها بر اساس قطبیت، فراتر از پیشبینی X/Y عمل میکند.

انواع روش های آموزش مدل ها در یادگیری ماشین
فرایند آموزش مدلها، به ۴ شکل اصلی انجام میشود که در واقع بستگی به نوع خود مسئله و البته نوع دادههای در دسترس برای آموزش مدل دارد. در ادامه این ۴ مدل اصلی را شرح دادهایم.
رویکرد یادگیری نظارت شده
رویکرد یادگیری نظارت شده، بهصورت مستقیم، الگوریتمها را تحت نظارت نزدیک انسان آموزش میدهد. در ابتدا هردو داده ورودی و خروجی، برای الگوریتم فراهم شده است. سپس الگوریتم، قواعدی را توسعه میهد که باعث نگاشت دادههای ورودی روی برچسبهای خروجی میشود. رویهی آموزشدادن تکرار میشود تا هرچه سریعتر بالاترین سطح عملکرد بدست آید.
یادگیری نظارت شده به دو رویکرد اصلی تقسیم میشود که در ادامه به آنها اشاره کردهایم.
- رگرسیون
- طبقهبندی
مبحث کلی این مطلب هم درباره « طبقه بندی در یادگیری ماشین » (Classification in Machine Learning) است که زیر مجموعه یادگیری نظارت شده است.
یادگیری نظارت نشده
«یادگیری نظارت نشده» (Unsupervised Learning)، برای بررسی ساختار جداییناپذیر دادهها و نتیجهگیری اطلاعات هوشمندانه و با معنی از آنها بهکار میرود. این تکنیک با نگاه کردن به الگوها و نشانههای درون دادههای بدون برچسب، بهدنبال اطلاعاتی میگردد که نتایج بهتری ایجاد کنند. در ادامه دو نوع موجود از یادگیری نظارت نشده را نام میبریم.
- «خوشه بندی» (Clustering)
- «کاهش ابعاد» (Dimensionality Reduction)
یادگیری نیمه نظارت شده
«یادگیری نیمه نظارت شده» (Semi-Supervised Learning) در طیف مابین یادگیریهای نظارت شده و نظارت نشده قرار میگیرد. این رویکرد، مهمترین جوانب هر دو دنیا را در هم ادغام میکند تا مجموعه منحصر بهفردی از الگوریتمها را برای استفاده ایجاد کند.
یادگیری تقویتی
هدف از «یادگیری تقویتی» (Reinforcement Learning) ایجاد الگوریتمهای «خودگردان» (Autonomous) و «خود بهبودبخش» (Self-Improving) است. هدف الگوریتم این است که خود را به وسیله چرخه دائمی از سعی و خطا بهبود ببخشد. این چرخه دائمی برپایه برهمکنش و ترکیبات بین دادههای ورودی و دادههای برچسب خورده شکل میگیرد.
روش های طبقه بندی
در ادامه چند مورد از روشهای طبقه بندی در یادگیری ماشین را توضیح دادهایم.
بیز ساده
بیز ساده، الگوریتم طبقهبندی است که فرض میکند، پیشبینی کنندهها در یک مجموعه داده، مستقل از هماند. این مطلب به این معناست که فرض میکند ویژگیها به یکدیگر هیچ ارتباطی ندارند. برای مثال، اگر موزی داده شود، الگوریتم طبقهبندی کننده متوجه میشود که میوه زرد رنگ، کشیده، دراز و مخروطی شکل است. همه این ویژگیها بهطور مستقل از هم باهم همکاری میکنند تا احتمال موز بودن میوه افزایش پیدا کند درحالی که به یکدیگر وابسته نیستند.

بیزساده برپایه برهان بیز بنا شدهاست که به صورت زیر بیان میشود.
در اینجا:
- عبارت P(A | B) بیان کننده احتمال وقوع رخداد A به شرط وقوع رخداد B است.
- عبارت P(A) بیان کننده احتمال وقوع رخداد A است.
- عبارت P(B) بیان کننده احتمال وقوع رخداد B است.
- عبارت P(B | A) بیان کننده احتمال وقوع رخداد B به شرط وقوع رخداد A است.
- درخت تصمیم
درخت تصمیم، الگوریتمی است که برای تصویرسازی نمایش فرایند تصمیمگیری بهکار میرود. درخت تصمیم میتواند به وسیله پرسیدن سوالهای «بله - خیر» و جدا کردن جواب برای هدایت به سمت تصمیم بعدی، ساخته شود. سوالها گرهها را تشکیل میدهند و نتیجه تصمیمات در برگهای گرهها جایگزاری میشوند. درختی که در زیر رسم شده است، برای تصمیم گرفتن درباره امکان بازی تنیس، بهکار میرود.

در شکل بالا بسته به شرایط آب و هوایی، رطوبت و باد، تصمیم برای انجام بازی تنیس به صورت سیستماتیک گرفته میشود. در درختهای تصمیم، تمام عبارات غلط روی شاخه سمت چپ درخت و تمام عبارات صحیح روی شاخه سمت راست درخت قرار میگیرند. با دانستن این مطلب، میشود درختی ساخت که ویژگیها روی گرهها قرار بگیرند و کلاسهای نتیجه روی برگها قرار بگیرند.
نزدیک ترین همسایگی یا KNN
نزدیکترین همسایگی، الگوریتم پیشبینی و طبقهبندی است که برای تقسیم دادهها بین کلاسها برپایه فاصله بین نقاط داده، بهکار میرود. الگوریتم نزدیکترین همسایگی فرض میکند که نقاط دادهای که به یکدیگر نزدیکاند، باید شبیه هم باشند درنتیجه نقطهدادهای که باید طبقهبندی شود با نزدیکترین خوشه در یک دسته قرار خواهد گرفت.


ارزیابی مدل طبقه بندی
بعد از اینکه طراحی مدل را تمام کردیم، باید کارایی مدل را ارزیابی کنیم تا مشخص شود که آیا مدل رگرسیون است یا طبقهبندی. برای سنجیدن انواع مدل طبقه بندی در یادگیری ماشین از گزینههای زیر استفاده خواهیم کرد.
ماتریس Confusion
« ماتریس درهم ریختگی» (Confusion Matrix) ویژگیها و خصوصیات مفیدی دارد که در ادامه به آنها اشاره کردهایم.
- کارایی مدل را توصیف میکند و اطلاعات را بهصورت ماتریس یا جدولی به عنوان خروجی برمیگرداند.
- نام دیگرش ماتریس خطا است.
- ماتریس با نتایج پیشبینیها به صورت فشرده، همراه با تعداد کل حدسهای صحیح و غلط، تشکیل میشود.
صورت کلی ماتریس در جدولی که ترسیم کردهایم ظاهر میشود.
واقعا مثبت | واقعا منفی | |
مثبت پیشبینی شده | «مثبت صحیح» (True Positive - TP) | «مثبت غلط» (False Positive - FP) |
منفی پیشبینی شده | «منفی غلط» (False Negative - FN) | «منفی صحیح» (True Negative - TN) |
در این جا: «دقت» (Accuracy) = مجموع کل / ( تعداد پیشبینی صحیح منفی یا TN + تعداد پیشبینی صحیح مثبت یا TP )
Log Loss یا زیان آنتروپی متقاطع
در ادامه تعدای از ویژگیهای اصلی روش «زیان آنتروپی متقاطع» (Cross-Entropy Loss) را فهرست کردهایم.
- این روش برای ارزیابی عملکرد الگوریتم طبقهبندی بهکار میرود و خروجی، مقداری احتمالی بین صفر و یک خواهد بود.
- برای موفقیت یک مدل طبقهبندی دودویی، مقدار Log Loss باید نزدیک صفر باشد.
- اگر مقداری که انتظارش را میکشیدیم با مقدار واقعی تفاوت داشته باشد، مقدار Log Loss افزایش پیدا میکند.
- هرچه مقدار Log Loss پایینتر باشد، نمایانگر دقت بالاتر مدل است.
میزان زیان آنتروپی متقاطع برای طبقهبندی دودویی به صورت زیر محاسبه میشود.
که در این فرمول p نماینده خروجی پیشبینی شده و y نماینده خروجی واقعی است.
ناحیه زیر منحنی مشخصه عملکرد سیستم
در ادامه ویژگیهای اصلی «ناحیه زیر منحنی مشخصه عملکرد سیستم» (AUC-ROC Curve) را فهرست کردهایم.
- کلمه مخفف AUC به «ناحیه زیر منحنی» (Area Under the Curve) و کلمه مخفف ROC به «منحنی نمودار مشخصه عملکرد» (Receiver Operating Characteristics Curve) اشاره میکند.
- گرافی است که کارایی مدل طبقهبندی را در آستانههای گوناگون نمایش میدهد.
- منحنی AUC-ROC برای نمایش میزان کیفیت عملکردی که مدل طبقهبندی چندکلاسه ارائه میدهد بهکار میرود.
- از «نرخ مثبت صحیح» (True Positive Rate - TPR) و «نرخ مثبت غلط» (False Positive Rate - FPR) برای رسم منحنی ROC استفاده میشود. نرخ مثبت واقعی (TPR) روی محور Y و نرخ مثبت اشتباه (FPR) روی محور X نمایشداده میشود.
مثال کاربردهای الگوریتم های طبقه بندی در یادگیری ماشین
اپلیکیشنهای زیادی وجود دارند که با الگوریتمهای طبقهبندی کار میکنند. در ادامه به چند مورد از آنها اشاره میکنیم.
- بازشناسی گفتار
- کشف هرزنامهها در میان ایمیلها
- دستهبندی داروها
- شناسایی سلول تومورهای سرطانی
- احراز هویت بیومتریک یا زیستی
- و غیره

ارزیابی طبقه بندی کننده ها
ارزیابی برای راستی آزمایی دقت و اثربخشی یک طبقهبندی کننده، مهمترین مرحله بعد از اتمام مرحله تولید آن است. به روشهای گوناگونی میتوانیم یک طبقهبندی کننده را ارزیابی کنیم. تعدادی از این روشها را در پایین مرور خواهیم کرد. برای شروع از «اعتبار سنجی متقابل» (Cross-Validation) سخن خواهیم گفت.
اعتبار سنجی متقابل
بزرگترین مشکل با بیشتر مدلهای یادگیری ماشین، وقوع «بیشبرازش شدن» (Over-Fitting) است. میتوان با روش K-Fold در اعتبار سنجی متقابل وجود بیشبرازش را بررسی کرد. با این روش، مجموعهداده به صورت تصادفی به K تعداد زیرمجموعه هماندازه با عناصر مجزا و منحصر به فرد تقسیم میشود. یکی برای آزمودن مدل کنار گذاشته میشود و دیگر زیرمجموعهها برای آموزش دادن مدل بهکار میروند. این روند برای تک تک فولدها، یعنی K بار انجام میشود.
Holdout Method
«روش برگزاری» (Holdout Method) پراستفادهترین روش برای ارزیابی «طبقهبندها» (Classifiers) است. مطابق این روش مجموعه دادهی داده شده به دو زیر مجموعه آموزشی و آزمایشی تقسیم میشود که به ترتیب شامل ۸۰٪ و ۲۰٪ از کل دادهها میشوند. مجموعه آموزشی مشاهده نشده برای ارزیابی توانایی پیشبینی دادهها - بعد از اینکه مدل توسط مجموعه دادههای آموزشی، آموزش دید- بهکار میرود.
منحنی مشخصه عملکرد
برای نمایش تصویری مقایسه مدلهای طبقه بندی در یادگیری ماشین از «منحنی مشخصه عملکرد» (ROC Curve) استفاده میشود. این نمودار همبستگی بین «نرخ مثبت غلط» (False Positive Rate) و «نرخ مثبت صحیح» (True Positive Rate) را روی تصویر توضیح میدهد. میزان دقت مدل توسط ناحیه زیر منحنی مشخصه عملکرد، تعیین میشود.
انحراف و واریانس
انحراف که بهآن بایاس یا «سوگیری» (Bias) نیز گفته میشود، به اختلاف بین مقادیر واقعی و مقادیر پیشبینی شده میگویند. بایاس یا انحراف، فرضیات سادهای است که مدل درباره دادههای ما انجام میدهد تا بتواند درباره دادههای جدید پیشبینی کند که مستقیما با الگوهای پیدا شده در دادههای ما مطابقت دارد. زمانی که مقدار انحراف بالا باشد، فرضیاتی که توسط مدل ما ایجاد شدهاند بسیار ابتدایی هستند، مدل نمیتواند ویژگیهای مهم داده ما را درک کند، به این اتفاق «کمبرازش شدن» (Underfitting) میگویند.

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

دقت و صحت
برای محاسبه دقت در مدلهایی که بر مبنای یادگیری نظارتشده ایجاد میشوند، دو معیار مهم وجود دارد، «دقت» (Precision) و «صحت» (Recall)، که در ادامه بهبیان آن ها پرداختهایم.
- «دقت» (Precision): برای محاسبه توانایی مدل در طبقهبندی صحیح مقادیر، استفاده میشود. به وسیله تقسیم تعداد نمونه دادههایی که بهطور صحیح طبقهبندی شدند بر کل نمونه دادههای طبقهبندی شده، به ازای هر برچسب کلاس، بدست میآید.
- «صحت» (Recall): برای محاسبه توانایی مدل در پیشبینی مقادیر مثبت بهکار میرود. اما «مدل اغلب چگونه مقادیر صحیح مثبت را پیشبینی میکند؟». این معیار به وسیله نسبت گرفتن از مقادیر مثبت صحیح تشخیص داده شده به کل مقادیر واقعی مثبت موجود، محاسبه میشود.
انتخاب الگوریتم ها
برای تکمیل استراتژی توضیح داده شده در متن بالا، میتوانیم از روندهایی که در ادامه فهرست کردهایم برای انتخاب الگوریتم بهینه هر مدل، استفاده کنیم.
- اطلاعات مسئله را مطالعه کنید.
- مجموعه دادههای مستقل و وابسته را بر پایه ویژگیهای مستقل و وابسته ایجاد کنید.
- برای مجموعه داده، زیرمجموعه دادههای آزمایشی و آموزشی ایجاد کنید.
- از الگوریتمهای زیادی شامل SVM, «درخت تصمیم» (Decision Tree)، KNN و غیره، برای آموزش مدل استفاده کنید.
- «طبقهبند» (Classifier) را درنظر بگیرید.
- دقیقترین «طبقهبند» (Classifier) را انتخاب کنید.
میزان دقت، بهترین معیار برای کارآمدتر کردن مدل طبقه بندی در یادگیری ماشین است. هرچند احتمالا نسبت به زمانی که برای انتخاب الگوریتم بهینه مدل شما لازم است، مدت زمان بیشتری طول خواهد کشید.
سوالات متداول
در انتهای این مطلب از مجله فرادرس به بررسی پاسخ برخی از سوالات متداول میپردازیم.
الگوریتم طبقه بندی در یادگیری ماشین چیست؟
طبقهبندی مستلزم پیشبینی برچسب کلاس برای نمونههای خاص از دادههای ورودی میباشد. برای مثال، میتواند شناسایی کند که کدی اسپم است یا نه. میتواند دست نویسهها را به شرطی که شامل یکی از کاراکترهای شناخته شده باشند، دستهبندی کند.
بهترین الگوریتم طبقه بندی در یادگیری ماشین چیست؟
در مقایسه با سایر الگوریتمهای طبقهبندی مانند رگرسیون لجستیک، ماشین بردار پشتیبان و درخت تصمیم، الگوریتم طبقهبندی بیز ساده، نتایج بهتری را ارائه میدهد.
ساده ترین الگوریتم طبقه بندی در یادگیری ماشین چیست؟
روش KNN، یکی از سادهترین و قابل فهمترین تکنیکهای طبقهبندی است.
تفاوت طبقهبندی با الگوریتم در یادگیری ماشین چیست؟
تکنیک یا مجموعه دستورالعملهایی که کامپیوترها برای دستهبندی دادهها استفاده میکنند به عنوان طبقهبندی نامیده میشود. درنتیجه طبقهبندها است که صحبت از کارایی مدل طبقه بندی در یادگیری ماشین میشود. طبقهبندی برای آموزش مدل استفاده میشود که درنهایت دادههای شما را طبقهبندی میکند.
طبقه بندی چیست و چه انواعی دارد؟
طبقهبندی یک نوع دستهبندی یا تقسیم در سیستمی است که اشیا را در گروهها یا انواع مختلف سازماندهی میکند. میتوانید با چهار نوع از دستهبندی برای انواع طبقه بندی در یادگیری ماشین کارکنید.
- طبقهبندی دودویی
- طبقهبندی چندکلاسه
- طبقهبندی چندبرچسبه
- طبقهبندی نامتوازن
تفاوت بین طبقه بندی با خوشه بندی چیست؟
هدف خوشهبندی این است که با محاسبه بهترین معیار، آیتمهایی را که در نوع مشابه یکدیگر هستند دستهبندی کند. ولی در طبقهبندی، گروهها از قبل وجود دارند و هدف پیشبینی برچسب هرنمونه داده متناسب با یکی از گروههای موجود است و این نقطه اختلاف بین «خوشهبندی» (Clustering) و «طبقهبندی» (Classification) است.
جمع بندی
برای جمعبندی بیان میکنیم که طبقهبندی میتواند به عنوان روش استاندارد یادگیری نظارت شده، در نظر گرفته شود. زمانی که در تلاش برای تعیین این هستید که آیا نمونه خاصی درون دستهبندی از پیش تعیین شدهای قرار میگیرد یا نه، طبقهبندی استراتژی ارزشمندی است که به کمک شما میآید.