آموزش الگوریتم ماشین بردار پشتیبان svm
ماشین بردار پشتیبانی (Support vector machines – SVMs) یکی از روشهای یادگیری بانظارت است که از آن برای طبقهبندی و رگرسیون استفاده میکنند. این روش از جمله روشهای نسبتاً جدیدی است که در سالهای اخیر کارایی خوبی نسبت به روشهای قدیمیتر برای طبقهبندی از جمله شبکههای عصبی پرسپترون نشان داده است. مبنای کاری دستهبندی کننده SVMدستهبندی خطی دادهها است و در تقسیم خطی دادهها سعی میکنیم خطی را انتخاب کنیم که حاشیه اطمینان بیشتری داشته باشد. حل معادله پیدا کردن خط بهینه برای دادهها به وسیله روشهای QP که روشهای شناخته شدهای در حل مسائل محدودیتدار هستند صورت میگیرد. الگوریتم های بردار پشتیبان کاربردی بسیار در پروژه متلب دارند .قبل از تقسیمِ خطی برای اینکه ماشین بتواند دادههای با پیچیدگی بالا را دستهبندی کند دادهها را به وسیله تابعِ phi به فضای با ابعاد خیلی بالاتر میبریم. برای اینکه بتوانیم مساله ابعاد خیلی بالا را با استفاده از این روشها حل کنیم از قضیه دوگانی لاگرانژ برای تبدیلِ مساله مینیممسازی مورد نظر به فرمدوگانی آن که در آن به جای تابع پیچیده phi که ما را به فضایی با ابعاد بالا میبرد، تابعِ سادهتری به نامِ تابع هسته که ضرب برداری تابع phi است ظاهر میشود استفاده میکنیم. از توابع هسته مختلفی از جمله هستههای نمایی، چندجملهای و سیگموید میتوان استفاده نمود.
ماشین بردارچند کلاسه
ماشین بردار پشتیبان یک دسته بندی کننده باینری میباشد. به عبارت دیگر تنها میتواند دو کلاس را دسته بندی کند.در بیشتر کاربردها ما تنها با دو کلاس سر و کار نداریم لذا لازم است که به نحوی این دسته بندی کننده را برای تعداد کلاسهای بیشتر استفاده کنیم.یکی از این روشها ، روش درختی میباشد. د راین روش شما برای n کلاس ، به n-1 ماشین بردار پشتیبان نیاز دارید.مثلا اگر تعداد کلاسهای شما سه باشد، شما به دو ماشین بردار پشتیبان دارید. همانطور که در شکل زیر نیز این مفهوم نشان داده شده است
ادامه روش ها در فایل اموزشی
ماشین بردار پشتیبانی در عمل
برای استفاده از SVM در مورد داده های واقعی ، چندین نکته را باید رعایت کنید تا نتایج قابل قبولی را بگیرید
ابتدا داده ها را پالایش کنید (نقاط پرت ، داده های ناموجود و …..)
داده را عددی و نرمال کنید . این مباحث را در مقالات پیش پردازش داده ها دنبال کنید. به طور خلاصه ، داده هایی مانند جنسیت، رشته تحصیلی و … را به عدد تبدیل کنید و سعی کنید مقادیر همه صفات بین یک تا منهای یک [۱,-۱] نرمال شوند تا بزرگ یا کوچک بودن مقادیر یک ویژگی داده ها، ماشین را تحت تاثیر قرار ندهد .
کرنل های مختلف را امتحان و به ازای هر کدام، با توجه به مجموعه داده آموزشی که در اختیار دارید و دسته بندی داده های آنها مشخص است، دقت SVM را اندازه گیری کنید و در صورت نیاز پارامتر های توابع تبدیل را تغییر دهید تا جواب های بهتری بگیرید. این کار را برای کرنل های مختلف هم امتحان کنید . می توانید از کرنل RBF شروع کنید
نقاط ضعف ماشین بردار پشتیان
این نوع الگوریتم ها، محدودیت های ذاتی دارند مثلا هنوز مشخص نشده است که به ازای یک تابع نگاشت ، پارامترها را چگونه باید تعیین کرد
ماشینهای مبتنی بر بردار پشتیبان به محاسبات پیچیده و زمان بر نیاز دارند و به دلیل پیچیدگی محاسباتی، حافظه زیادی نیز مصرف می کنند
داده های گسسته و غیر عددی هم با این روش سازگار نیستند و باید تبدیل شوند
با این وجود، SVM ها دارای یک شالوده نظری منسجم بوده و جواب های تولید شده توسط آنها ، سراسری و یکتا می باشد. امروزه ماشینهای بردار پشتیبان، به متداول ترین تکنیک های پیش بینی در داده کاوی تبدیل شده اند