معرفی انواع الگوریتم های داده کاوی – آشنایی با 7 دسته مهم الگوریتم های داده کاوی
اهمیت داده کاوی و نقش آن در علوم مختلف، ما را بر آن داشت که در مورد روش ها و الگوریتم های داده کاوی صحبت کنیم لذا در این پست به معرفی انواع الگوریتم های داده کاوی خواهیم پرداخت. پس از گوگل کردن واژه “انواع الگوریتم های داده کاوی” متوجه شدیم بسیاری از سایت ها بدون توجه به ماهیت داده کاوی و طبقه بندی الگوریتم ها در هر گروه، بصورت تکراری نام چند الگوریتم از الگوریتمهای یادگیری ماشین برای طبقه بندی را آورده اند و به چند نام الگوریتم بسنده کردهاند و نگاه کلی و پایه ای به موضوع نداشتهاند. در این پست می خواهیم ریشه و ماهیت کامل الگوریتمهای دادهکاوی را معرفی کنیم و در خلال این معرفی، منابع مهم آموزشی برای یادگیری بهتر شما عزیزان را از سایتهای آموزشی معتبر نظیر فرادرس را معرفی خواهیم کرد.
داده کاوی چیست؟
به زبان عامیانه، دادهکاوی علمی است که با استفاده از روشها و شیوههای خاص از دادههای خام، اطلاعاتی استخراج می شود که منجر به پیشبینی و پیشگویی آینده می شود. اگر کمی به اطراف خود نگاه کنیم، خواهیم دید در ذهن خودمان بدون اینکه تصورش را هم بکنیم، بارها و بارها از داده کاوی استفاده کرده ایم. مثلاً اگر دوستی از شما پولی به عنوان قرض طلب کند؛ فوراً رفتارهای او را در گذشته برای پس دادن پول آنالیز کرده ایم و شاید از چند دوست دیگر نیز مشورت خواسته ایم تا از رفتار های گذشته او استنتاج کنیم که آیا این دوست قرض خود را پس خواهد داد یا نه! این تجزیه و تحلیل ذهن همان الگوریتم داده کاوی است.
زمانی که ما با داده های زیادی روبرو هستیم که یک تعداد اعداد ارقام هستند، ذهن یارای تجزیه و تحلیل و استخراج الگو را نخواهد داشت؛ پس باید به سراغ علم داده کاوی برویم. علم داده کاوی در واقع ترکیبی از علوم دیگر است و می توان گفت داده کاوی ترکیبی از ریاضیات، آمار، هوش مصنوعی، یادگیری ماشین و تکنولوژی پایگاه داده است.
با ظهور سیستم های کامپیوتری و ظرفیت های بالای این سیستم ها در محاسبات و اجرا، وظیفه استخراج و استنتاج از داده ها به این سیستم ها محول شد. بدیهی است یک سیستم کامپیوتری مانند انسان قوه منطق و استنتاج ندارد بنابراین برای اینکه به یک سیستم بفهمانیم چه چیزی می خواهیم باید از روش و الگویی استفاده کنیم تا یک سیستم هم مانند انسان بتواند عمل یادگیری را انجام دهد. همین عمل یادگیری و در واقع فهماندن موضوع به سیستم کامپیوتری سبب پیدایش الگوریتم های داده کاوی شده است. برای شروع کار می توانید آموزش اصول و روش های داده کاوی را مطالعه فرمایید.
مفهوم یادگیری در داده کاوی
زمانی که صحبت از یادگیری می کنیم دو الگو برای آن می توانیم در نظر بگیریم. بگذارید از عمل یادگیری در انسان آغاز کنیم. عمل یادگیری در انسان به دو صورت، یادگیری با معلم و یادگیری بدون معلم است. در یادگیری با معلم، یک نفر روش درست و غلط را به ما نشان می دهد و از روی همان مجموعه درست و غلط، ما می توانیم مدل و الگوی یادگیری خودمان را بسازیم و در پاسخ به سوالات جدید از آن الگو ها استفاده کنیم. در یادگیری بدون معلم، خودمان با میزان تفاوت ها و شباهت های موجود الگویی استخراج میکنیم.
در مورد الگوریتم های داده کاوی هم دو تقسیم بندی عمده وجود دارد که عبارت است از:
- یادگیری تحت نظارت یا Supervised learning
- یادگیری بدون نظارت یا Unsupervised learning
الگوریتم های موجود در یادگیری تحت نظارت، برای یادگیری به مجموعه ای از داده های آموزشی نیاز دارند و الگوریتم های موجود در یادگیری بدون نظارت، برای کارکرد صحیح نیازی به دادههای آموزشی ندارند و از روی میزان شباهت اعضای مجموعه، مدل استخراج می کنند. به مجموعه داده زیر توجه کنید.
مثال بالا مجموعه داده ای برای یادگیری بهوسیله الگوریتمهای داده کاوی است.در مجموعه داده با ناظر هدف پیدا کردن نوع خودرو است پس با وارد کردن مجموعه داده آموزشی می توانیم الگویی برای تمییز خودروی سواری و سنگین را پیدا کنیم ولی در مثال سمت راست، هدف پیدا کردن دو گروه مشابه است بدون اینکه مجموعه داده را به الگوریتم های داده کاوی بدهیم در این نوع، الگوریتم از روی شباهت اعضا می تواند دو گروه را بدست آورد.
انواع الگوریتم های داده کاوی
بطور کلی الگوریتم های داده کاوی یادگیری تحت نظارت و بدون نظارت را میتوان در 7 دسته زیر قرار داد:
- الگوریتمهای دستهبندی (Classification algorithms)
- الگوریتمهای رگرسیون (Regression algorithms)
- الگوریتمهای بخش بندی (Segmentation algorithms)
- الگوریتمهای وابستگی (Association algorithms)
- الگوریتمهای تحلیل ترتیبی ( Sequence analysis algorithms)
- الگوریتمهای سری زمانی (Time series algorithms)
- الگوریتمهای کاهش ابعاد (Dimensional Reduction algorithms)
می توان گفت تمامی الگوریتمهای حوزه داده کاوی جزو 7 دسته بالا قرار دارند. در ادامه به توضیح هر مورد خواهیم پرداخت و الگوریتم های موجود در هر دسته را معرفی خواهیم کرد.
1- الگوریتمهای دستهبندی Classification Algorithms
در برخی مراجع این نوع الگوریتمها را با نام الگوریتمهای طبقهبندی یا کلاسبندی نیز مشاهده کردهاید. این الگوریتمها، دادههای موجود را بر اساس ویژگیهایشان (خصوصیات)، در کلاسهای مختلف یا همان دستههای مختلف قرار میدهند و از دادههای طبقهبندی شده برای پیشبینی استفاده میکنند. در واقع میتوان گفت رویکرد این دسته از الگوریتمهای دادهکاوه بر مبنای گسسته بودن هست و هدف بودن یا نبودن در یک کلاس یا دسته میباشد. الگوریتمهای زیادی در این دسته جای دارند و برخی از الگوریتمها نیز مختص به یک گروه نیستند و میتوانند مشترک باشند. از الگوریتمهای مطرح و مهم در این دسته میتوان به موارد زیر اشاره کرد:
- الگوریتم C 4.5: الگوریتم طبقه بندی درخت تصمیم C4.5 یک الگوریتم دسته بندی تحت ناظر است که از یک درخت تصمیم برای تصمیم گیری مقادیر پیوسته و گسسته ویژگیها استفاده می کند. این الگوریتم برای پوشش نقطه ضعف الگوریتم ID3 که نمی توانست مقادیر پیوسته ویژگی ها را درک کند؛ بوجود آمد.
- الگوریتم SVM: الگوریتم ماشین بردار پشتیبان یا Support-Vector Machines جزو الگوریتم های مشترک بین دسته بندی و رگرسیون تحت نظارت است و از فاصله حاشیهای مرزبندی شده برای تمییز دادهها و انتخاب دسته مناسب استفاده می کند. این الگوریتم میتواند برای دستهبندیهای خطی یا غیر خطی بخوبی کار کند.
- الگوریتم KNN: الگوریتم K همسایه نزدیک K Nearest Neighbor جزوه الگوریتم های تحت نظارت دسته بندی است و از میزان شباهت یک نمونه به K نمونه از همسایگانش برای تصمیم گیری استفاده میکند. تعیین مقدار K در این الگوریتم اهمیت دارد چرا که اکثریت K برای انتخاب یک دسته مهم است.
- الگوریتم NB: الگوریتم Naive Bayes نیز جزو الگوریتمهای دستهبندی با ناظر است و از تکنیکهای احتمال و آمار برای دستهبندی نمونهها در کلاسهای مختلف استفاده میکند. در این الگوریتم از قضیه Bayes که احتمال رخ دادن یک پیشآمد را هنگامی که پیشامد دیگری اتفاق افتاده باشد؛ استفاده میکنند.
- الگوریتم CART: این الگوریتم مخفف Classification and Regression Tree است و همانطور که از نام آن هم پیداست برای دسته بندی و رگرسیون از آن استفاده می شود. این الگوریتم از سادهترین الگوریتمهای درختهای تصمیم است که بر اساس درخت های دودویی بنا نهاده شده است.
- الگوریتم ANN: الگوریتمهای شبکه عصبی مصنوعی Artificial Neural Network انواع و کاربردهای مختلفی دارد و برای مسائل دسته بندی نیز می تواند مورد استفاده قرار گیرد. کاربرد این الگوریتم را می توان در تمامی گروهها مشاهده کرد. شبکه عصبی مصنوعی پیش از آنکه یک الگوریتم باشد یک روش و الگوی پایهای و اساسی در هوش مصنوعی است.
2- الگوریتمهای رگرسیون Regression Algorithms
این الگوریتم ها یک مدل ریاضی بر اساس عناصر دادهای موجود، ایجاد میکنند و از آن مدل برای پیشبینی یک یا چند عنصر داده با اعدادی مانند سود یا هزینه استفاده میکنند. تفاوت اصلی بین الگوریتمهای دستهبندی و الگوریتمهای رگرسیون نوع خروجی در آن است. الگوریتمهای رگرسیونی مقادیر عددی را پیشبینی میکنند یعنی میتوانند خروجی را بهصورت یک عدد بدست بیاورند در حالی که الگوریتم های دستهبندی برچسب کلاس را پیش بینی می کنند. الگوریتمهای زیر را به صورت تیتر وار در این دسته میتوان نام برد:
- الگوریتم رگرسیون خطی Linear Regression
- الگوریتم رگرسیون مرزبندی شده Ridge Regression
- الگویتم شبکه عصبی رگرسیونی Neural Network Regression
- الگوریتم رگرسیون کمند Lasso Regression
- الگوریتم رگرسیونی درخت تصمیم Decision Tree Regression
- الگوریتم جنگل تصادفی Random Forest
- الگوریتم KNN Model
- الگوریتم Support Vector Machines (SVM)
3- الگوریتمهای بخش بندی Segmentation Algorithms
در واقع نام این گروه از الگوریتم ها را با عنوان خوشهبندی یا Clustering نیز شنیده اید. این الگوریتم ها داده ها را به گروه ها یا خوشه هایی از نمونه ها که دارای ویژگی های مشابه هستند تقسیم می کنند. الگوریتم های خوشه بندی یا همان بخش بندی جزو یادگیری بدون نظارت Unsupervised learning محسوب میشوند و معروف ترین آنها الگوریتم خوشه بندی K-Means است. از الگوریتم های معروف در این گروه می توان به موارد زیر اشاره کرد:
- الگوریتم خوشهبندی K-Means
- الگوریتم خوشهبندی Mean-Shift
- الگوریتم خوشهبندی DBSCAN
- الگوریتم Expectation–Maximization (EM)
- الگوریتم Agglomerative Hierarchical
4- الگوریتمهای وابستگی Association Algorithms
این الگوریتم ها رابطه یا همبستگی بین ویژگی های مختلف در داده های موجود را پیدا می کنند و سعی می کنند قوانین ارتباط را برای پیش بینی ها مورد استفاده قرار دهند. در واقع الگوریتم های وابستگی مواردی را در داده ها پیدا می کنند که اغلب با هم اتفاق می افتند. این الگوریتم ها نیز بدون ناظر هستند. دو الگوریتم مهم در حوزه الگوریتم های داده کاوی وابستگی عبارتند از:
- الگوریتم Apriori
- الگوریتم Page Rank
5- الگوریتمهای تحلیل ترتیبی Sequence analysis Algorithms
این الگوریتم ها دنباله های تکراری در داده ها پیدا می کنند مثلاً در مجموعه کلیک ها در یک وب سایت، یا یک سری رویدادهای گزارش قبل از خرابی را جمع آوری می کنند تا یک الگوی مشخص برای پیش بینی داشته باشند. وظایفی که در فضای تحلیل توالی قرار دارد اغلب برای حل و فصل اهمیتی ندارد و نیاز به استفاده از رویکردهای نسبتاً پیچیده دارد. رایج ترین الگوریتم های این گروه عبارتند از:
- الگوریتم برنامه نویسی پویا Dynamic programming
- الگوریتم شبکه عصبی Artificial Neural Network
- مدل های مخفی مارکوف Hidden Markov Model
- الگوریتم ماشین بردار پشتیبان Support Vector Machine
- الگوریتم شبکه بیزین Bayesian Network
6- الگوریتمهای سری زمانی Time series Algorithms
این الگوریتم ها مشابه الگوریتم های رگرسیون هستند زیرا مقادیر عددی را پیش بینی می کنند، اما سری های زمانی بر پیش بینی مقادیر آینده از یک سری مرتب شده و چرخه های فصلی استفاده می کنند. از معروف ترین الگوریتم ها در این حوزه می توان به موارد زیر اشاره کرد.
- الگوریتم Autoregressive (AR)
- الگوریتم Moving Average (MA)
- الگوریتم Autoregressive Moving Average (ARMA)
- الگوریتم Autoregressive Integrated Moving Average (ARIMA)
- الگوریتم Exponential Smoothing (ES)
7- الگوریتمهای کاهش ابعاد Dimensional Reduction Algorithms
در داده کاوی ممکن است برخی از مجموعه داده ها متغیرهای زیادی داشته باشند که بر روی تشخیص و پیش بینی مدل تاثیر بگذارند. تشخیص متغیرهای مهم و با تأثیر بر پیش بینی را می توان با کم کردن بعد مجموعه داده انجام داد. الگوریتم های کاهش ابعاد به شناسایی مهمترین متغیرها کمک می کنند تا دقت مدل افزایش پیدا کند. الگوریتم های زیادی نیز در حوزه الگوریتم های کاهش ابعاد وجود دارد که مهترین آن ها عبارت است از:
- الگوریتم Principal Component Analysis (PCA)
- الگوریتم Linear Discriminant Analysis (LDA)
- الگوریتم Factor Analysis (FA)
- الگوریتم Multidimensional Scaling (MDS)
- الگوریتم Isometric mapping (Isomap)
- الگوریتم (BE) Backward Elimination
سخن آخر درباره معرفی انواع الگوریتم های داده کاوی
امروزه داده کاوی یکی از ابزارهای مهم و کاربردی برای تجزیه تحلیل دادهها در تجارت، اقتصاد، روابط و علوم مختلف دیگر است. برای تجزیه و تحلیل دادهها و استخراج یک مدل برای پیشبینی بایستی از الگوریتمهای دادهکاوی استفاده کرد. انتخاب یک الگوریتم مناسب برای داده کاوی مستلزم آگاه بودن از انواع الگوریتم ها در این حوزه می باشد لذا در این مقاله 7 نوع مختلف از انواع الگوریتم های داده کاوی را معرفی کردیم تا در انتخاب یک الگوریتم مناسب برای داده کاوی راحت تر عمل کنید.
باید اذعان کرد مبحث داده کاوی یک موضوع کاملاً تخصصی است و برای استفاده کردن از آن باید تئوری روش ها و الگوریتم های آن را فرا گرفت. حالا بحث پیاده سازی این الگوریتم ها با زبان های برنامه نویسی بماند، که باید در یک مقاله دیگر به آن پرداخته شود. همانطور که در ابتدای این مقاله نیز اشاره شد منابع و مراجع مهم آموزشی برای یادگیری داده کاوی چه در حوزه تئوری و چه در حوزه پیاده سازی از سایت های معتبر کشور نظیر آموزش های داده کاوی فرادرس وجود دارد که برای علاقه مندان این حوزه بسیار مفید است و پیشنهاد ما، همواره بر آموزش های اصولی و پایه ای هر موضوع، باز در درجه اول وجود دارد. منتظر نظرات و دیدگاه های شما عزیزان هستیم. پیروز و موفق باشید.
خرید و دانلود پاورپوینت آماده این مقاله
پاورپوینت الگوریتم های داده کاوی – معرفی 7 دسته مهم در دیتا ماینینگ
پاورپوینت الگوریتم های داده کاوی با قابلیت ویرایش در 18 اسلاید مناسب برای ارائه های درسی دانش آموزان و دانشجویان عزیز آماده و بصورت طراحی آکادمیک اسلاید برای ارائه کلاسی آماده شده است.
درباره امین جلیل زاده رزین
پایه گذار و موسس وب سایت آموزشی پی استور، مدرس دانشگاه فنی و حرفه ای، برنامه نویس و تحلیل گر سیستم، پژوهشگر در حوزه الگوریتم های ابتکاری، فرا ابتکاری، یادگیری ماشین، شبکه و پایگاه داده. ایشان در زبان های برنامه نویسی متعدد، نظیر ++C، سی شارپ، PHP ،Java، متلب MATLAB و Python تسلط و سابقه تدریس فعال دارند.
باید خسته نباشید بگم کارتون عالیه