الگوریتم ماشین بردار پشتیبان (Support Vector Machine (SVM))


رویه (Procedure)

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

تشخیص الگو (Pattern Recognition)

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

الگو (Pattern) در تقابل با آشوب (Chaos)

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

مجموعه داده گل آیریس (Iris Flower Data Set)

این مجموعه داده شامل اطلاعاتی از گل‌های آیریس است و معمولاً برای تست و آموزش الگوریتم‌های یادگیری ماشین و تحلیل آماری استفاده می‌شود.

مراحل یادگیری ماشین

۱) تعریف مساله

۲) جمع‌آوری داده

۳) بصری‌سازی داده

۴) آموزش مدل

۵) ارزیابی مدل

۶) جمع‌آوری بازخورد

۷) توسعه الگوریتم

۸) تکرار مراحل ۴ تا ۷ تا رسیدن به یک نتیجه رضایت بخش

۹) پیش‌بینی آینده با مدل آموزش دیده

الگوریتم یادگیری نظارت شده (Supervised learning)

الگوریتم یادگیری نظارت شده، یک دسته از الگوریتم‌های یادگیری ماشین (Machine learning) است که به وسیلهٔ داده‌های ورودی و خروجی متناظر آموزش می‌بینند و سعی می‌کنند یک نمونه عمومی (مدل) از این ارتباط بین ورودی و خروجی بسازند. هدف این الگوریتم‌ها این است که با تجربه از داده‌های آموزش، به تشخیص و تخمین دقیق خروجی‌ها برای داده‌های جدید بپردازند. به عبارت دیگر، مدل به گونه‌ای آموزش می‌بیند که بتواند پیش‌بینی‌های درستی را برای داده‌های ناشناخته (آزمون) ارائه دهد. از جمله الگوریتم‌های یادگیری نظارت شده می‌توان به الگوریتم ماشین بردار پشتیبان (Support Vector Machine (SVM))، الگورتیم شبکه‌های عصبی مصنوعی (Neural Networks)، الگوریتم درخت تصمیم (Decision Tree)، رگرسیون خطی و غیر خطی (Linear and Nonlinear Regression) و الگوریتم K نزدیکترین همسایه (k-Nearest Neighbors) اشاره نمود. همچنین، بسیاری از روش‌ها و الگوریتم‌های دیگر در این دسته وجود دارند که همه با هدف تشخیص الگوها و تخمین خروجی‌ها از داده‌های آموزش کار می‌کنند.

الگوریتم ماشین بردار پشتیبان (Support Vector Machine (SVM))

الگوریتم ماشین بردار پشتیبان (SVM)، یک الگوریتم نظارت شده یادگیری ماشین است که هم برای مسائل طبقه‌بندی (Classification) و هم برای مسائل رگرسیون (Regression) قابل استفاده است. با این حال از الگوریتم ماشین بردار پشتیبان بیشتر در مسائل طبقه‌بندی (Classification) استفاده می‌شود. ایده اصلی مورد استفاده در الگوریتم ماشین بردار پشتیبان (SVM)، پیدا کردن بهترین ابر صفحه (Hyperplane) در فضای ویژگی است که با حداکثر فاصله ممکن داده‌های دو کلاس موجود در داده‌های آموزشی را از یکدیگر جدا کند. اما هنگامی که نیاز است داده‌های چند کلاس را در داده‌های آموزشی از یکدیگر جدا کنیم، نیاز داریم تا الگوریتم ماشین بردار را تعمیم دهیم. برای این منظور، یکی از روش‌های معمول، ایجاد دسته‌بندهای دودویی جداگانه برای هر کلاس است. برای مثال، اگر شما با یک مجموعه داده سه کلاسه (B، A و C) سر و کار دارید، شما باید دو دسته‌بند دودویی ایجاد کنید. یکی برای جدا کردن کلاس A از کلاس‌های B و C، و دیگری برای جدا کردن کلاس B از کلاس‌های A و C. سپس برای تشخیص کلاس C نیز می‌توانید از نتایج دسته‌بندهای دودویی قبلی استفاده کنید. در کتابخانه Scikit Learn پایتون، روش Support Vector Classification (SVC)، با دریافت آرایه‌ای از بردارهای ویژگی و برچسب های متناظر با هر کلاس این امکان را فراهم می‌کند که به طور خودکار دسته‌بندهای دودویی متعدد و مجزا را برای مسائل چند کلاسه ایجاد و مدل را آموزش دهیم.

در الگوریتم ماشین بردار پشتیبان، هر نمونه‌ی داده (Data Item) از مجوعه‌ی داده (Data Set)  را به عنوان یک نقطه در فضای n بعدی روی نمودار پراکندگی داده‌ها ترسیم کرده (n تعداد ویژگی‌هایی است که یک نمونه داده دارد) و مقدار هر ویژگی مربوط به داده‌ها، یکی از مؤلفه‌های مختصات‌ نقطه روی نمودار را مشخص می‌کند.

سورس کد مربوط به الگوریتم ماشین بردار پشتیبان را می‌توانید از اینجا دانلود نمایید

ادامه‌