در این مطلب و چندین مطلب پیش رو می خواهیم در مورد سه روش یادگیری ماشین صحبت کنیم که شامل یادگیری نظارت شده یا یادگیری با نظارت (Supervised Learning)، یادگیری بی نظارت (Unsupervised Learning) و یادگیری تقویتی (Reinforcement Learning) می شود. لطفا اگر با مفاهیم یادگیری ماشین آشنا نیستید یا آنها را فراموش کرده اید، پیش از هر چیز لینک های زیر را بخوانید.

مفاهیم و واژگان در یادگیری ماشین

بارگذاری داده ها در کتابخانه Scikit-Learn

پاسخ دادن به پرسش ها بوسیله داده ها

یادگیری نظارت شده

نخستین نوع یادگیری ماشینی که می خواهیم توضیح دهیم، یادگیری نظارت شده (یادگیری با نظارت) است. نکته کلیدی در یادگیری نظارت شده این است که ماشین ها یادگیری را با استفاده از یک مجموعه داده برچسب دار (Labled Data) انجام می دهند که هر عنصر درون یک مجموعه داده برچسب دار متشکل از جفت های ورودی/خروجی (Input/Output Pair) است.

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

در یادگیری نظارت شده هدف این است که از روی داده های برچسب دار یک مدل (Model) ایجاد کنیم تا پس از این توسط مدل بتوانیم خروجی ها را بر اساس داده های ورودی جدید پیش بینی کنیم به عبارت دیگر، در واقع ماشین رابطه میان ورودی و خروجی را یاد می گیرد.

بنابراین در یادگیری نظارت شده، بوسیله مجموعه داده های برچسب دار که شامل ورودی ها و پاسخ های درست است را در اختیار الگوریتم یادگیری ماشین قرار می دهیم تا از روی این مجموعه داده ها یادگیری صورت گیرد و به عبارت بهتر، رابطه میان ورودی و پاسخ ها را یاد بگیرد. از این پس ماشین قادر خواهد بود با ورود داده های جدید که تا پیش از این به ماشین وارد نشده بودند (از قبل دیده نشده)، جواب هایی را بر اساس مدلی که پیش از این یادگرفته بود، پیش بینی کند.

به طور مثال فرض کنید می خواهیم ایمیل ها را به دو دسته اسپم (Spam) و غیر اسپم (Non Spam) دسته بندی (Classification) کنیم. در یادگیری نظارت شده نیاز به یک نمونه داده (Sample Data) برچسب گذاری شده داریم. در شکل زیر یک نمونه داده کوچک را مشاهده می کنید.

در مطلب های پیش رو مفهوم کلاس بندی را توضیح داده ایم.

در واقع برجسب تجربیات یک گروه می تواند بر اساس کلمه ها یا ویژگی های درون پیام های ایمیل ها، ویژگی هایی را تعریف کند و سپس تعیین کند که آیا بر اساس یک یا چند ویژگی، می توانیم به آن ایمیل برچسب اسپم بودن یا اسپم نبودن را بدهیم. پس می بینید که مجموعه ای برچسب دار ایجاد کرده ایم.

بنابراین آنچه را که تا کنون توضیح دادیم را می توانیم به صورت زیر خلاصه کنیم:

۱یادگیری با نظارت مبتنی بر داده های برچسب دار است که به طور نمونه مشخص می کنند بر اساس کدام متن های ارسالی به ایمیل، یک پیغام باید به صورت اسپم در نظر گرفته شوند

۲در مجموعه داده های با نظارت بر اساس چندین و چند نمونه داده ورودی، یک پاسخ یا همان مقدار هدف (Target) وجود دارد که الگوریتم یادگیری از این ارتباط برای ایجاد مدل استفاده می کند. در واقع هدف و وظیفه الگوریتم یادگیری ایجاد یک مدل از روی داده های برچسب است که از  این مدل برای پیش بینی از روی داده های ورودی جدید استفاده می شود.

۳پس از آنکه داده ها جمع آوری شدند، ممکن است لازم باشد تا داده را به فرمت مناسب الگوریتم یادگیری تبدیل کنیم. این گام را پیش پردازش داده ها می گویند. همچنین توجه داشته باشید که منبع داده ها به فرمت های متفاوت وجود دارند. یکی از مهمترین انواع فرمت های، فایل های CSV هستند که هر خط آن شامل چندین داده ورودی و پاسخ مطابق با ورودی ها است. همچنین فرمت معادل و شبیه به CSV فایل های اکسل (Excel) هستند.

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

مجموعه داده (Dataset) بالا بسیار ساده و غیر کاربردی است ولی می توانیم نتیجه بگیریم که اگر در متن ایمیل حداقل دو واژه از چهار واژه وجود داشته باشد، پس آن ایمیل اسپم است و مقدار ۱ برای آن در زیر ستون Spam قرار می گیرد. البته این مسئله تنها برای پیام های ایمیل کاربرد ندارد بلکه شما می توایند برای نظرهای سایت خود نیز یک برنامه یادگیری ماشین بنویسید که تشخیص دهد که آیا نظر ارسال شده اسپم است یا خیر.