داده کاوی چیست؟
به زبان عامیانه، دادهکاوی علمی است که با استفاده از روشها و شیوههای خاص از دادههای خام، اطلاعاتی استخراج می شود که منجر به پیشبینی و پیشگویی آینده می شود. اگر کمی به اطراف خود نگاه کنیم، خواهیم دید در ذهن خودمان بدون اینکه تصورش را هم بکنیم، بارها و بارها از داده کاوی استفاده کرده ایم. مثلاً اگر دوستی از شما پولی به عنوان قرض طلب کند؛ فوراً رفتارهای او را در گذشته برای پس دادن پول آنالیز کرده ایم و شاید از چند دوست دیگر نیز مشورت خواستهایم تا از رفتارهای گذشته او استنتاج کنیم که آیا این دوست قرض خود را پس خواهد داد یا نه! این تجزیه و تحلیل ذهن همان الگوریتم داده کاوی است.
زمانی که ما با داده های زیادی روبرو هستیم که یک تعداد اعداد ارقام هستند، ذهن یارای تجزیه و تحلیل و استخراج الگو را نخواهد داشت؛ پس باید به سراغ علم داده کاوی برویم. علم داده کاوی در واقع ترکیبی از علوم دیگر است و میتوان گفت داده کاوی ترکیبی از ریاضیات، آمار، هوش مصنوعی، یادگیری ماشین و تکنولوژی پایگاه داده است.
با ظهور سیستمهای کامپیوتری و ظرفیتهای بالای این سیستمها در محاسبات و اجرا، وظیفه استخراج و استنتاج از دادهها به این سیستمها محول شد. بدیهی است یک سیستم کامپیوتری مانند انسان قوه منطق و استنتاج ندارد بنابراین برای اینکه به یک سیستم بفهمانیم چه چیزی میخواهیم باید از روش و الگویی استفاده کنیم تا یک سیستم هم مانند انسان بتواند عمل یادگیری را انجام دهد. همین عمل یادگیری و در واقع فهماندن موضوع به سیستم کامپیوتری سبب پیدایش الگوریتمهای داده کاوی شده است. برای شروع کار میتوانید آموزش اصول و روش های داده کاوی را مطالعه فرمایید.
مفهوم یادگیری در داده کاوی
زمانی که صحبت از یادگیری میکنیم دو الگو برای آن میتوانیم در نظر بگیریم. بگذارید از عمل یادگیری در انسان آغاز کنیم. عمل یادگیری در انسان به دو صورت، یادگیری با معلم و یادگیری بدون معلم است. در یادگیری با معلم، یک نفر روش درست و غلط را به ما نشان میدهد و از روی همان مجموعه درست و غلط، ما میتوانیم مدل و الگوی یادگیری خودمان را بسازیم و در پاسخ به سوالات جدید از آن الگوها استفاده کنیم. در یادگیری بدون معلم، خودمان با میزان تفاوتها و شباهتهای موجود الگویی استخراج میکنیم.
در مورد الگوریتمهای داده کاوی هم دو تقسیم بندی عمده وجود دارد که عبارت است از:
- یادگیری تحت نظارت یا Supervised learning
- یادگیری بدون نظارت یا Unsupervised learning
الگوریتمهای موجود در یادگیری تحت نظارت، برای یادگیری به مجموعهای از دادههای آموزشی نیاز دارند و الگوریتمهای موجود در یادگیری بدون نظارت، برای کارکرد صحیح نیازی به دادههای آموزشی ندارند و از روی میزان شباهت اعضای مجموعه، مدل استخراج میکنند. به مجموعه داده زیر توجه کنید.
مثال بالا مجموعه دادهای برای یادگیری بهوسیله الگوریتمهای داده کاوی است.در مجموعه داده با ناظر هدف پیدا کردن نوع خودرو است پس با وارد کردن مجموعه داده آموزشی می توانیم الگویی برای تمییز خودروی سواری و سنگین را پیدا کنیم ولی در مثال سمت راست، هدف پیدا کردن دو گروه مشابه است بدون اینکه مجموعه داده را به الگوریتمهای داده کاوی بدهیم در این نوع، الگوریتم از روی شباهت اعضا میتواند دو گروه را بدست آورد.
انواع الگوریتم های داده کاوی
بطور کلی الگوریتمهای داده کاوی یادگیری تحت نظارت و بدون نظارت را میتوان در ۷ دسته زیر قرار داد:
- الگوریتمهای دستهبندی (Classification algorithms)
- الگوریتمهای رگرسیون (Regression algorithms)
- الگوریتمهای بخش بندی (Segmentation algorithms)
- الگوریتمهای وابستگی (Association algorithms)
- الگوریتمهای تحلیل ترتیبی ( Sequence analysis algorithms)
- الگوریتمهای سری زمانی (Time series algorithms)
- الگوریتمهای کاهش ابعاد (Dimensional Reduction algorithms)
می توان گفت تمامی الگوریتمهای حوزه داده کاوی جزو ۷ دسته بالا قرار دارند. در ادامه به توضیح هر مورد خواهیم پرداخت و الگوریتم های موجود در هر دسته را معرفی خواهیم کرد.
۱- الگوریتمهای دستهبندی 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 انواع و کاربردهای مختلفی دارد و برای مسائل دسته بندی نیز می تواند مورد استفاده قرار گیرد. کاربرد این الگوریتم را می توان در تمامی گروهها مشاهده کرد. شبکه عصبی مصنوعی پیش از آنکه یک الگوریتم باشد یک روش و الگوی پایهای و اساسی در هوش مصنوعی است.
۲- الگوریتمهای رگرسیون Regression Algorithms
این الگوریتم ها یک مدل ریاضی بر اساس عناصر دادهای موجود، ایجاد میکنند و از آن مدل برای پیشبینی یک یا چند عنصر داده با اعدادی مانند سود یا هزینه استفاده میکنند. تفاوت اصلی بین الگوریتمهای دستهبندی و الگوریتمهای رگرسیون نوع خروجی در آن است. الگوریتمهای رگرسیونی مقادیر عددی را پیشبینی میکنند یعنی میتوانند خروجی را بهصورت یک عدد بدست بیاورند در حالی که الگوریتم های دستهبندی برچسب کلاس را پیش بینی می کنند. الگوریتمهای زیر را به صورت تیتر وار در این دسته میتوان نام برد:
- الگوریتم رگرسیون خطی Linear Regression
- الگوریتم رگرسیون مرزبندی شده Ridge Regression
- الگویتم شبکه عصبی رگرسیونی Neural Network Regression
- الگوریتم رگرسیون کمند Lasso Regression
- الگوریتم رگرسیونی درخت تصمیم Decision Tree Regression
- الگوریتم جنگل تصادفی Random Forest
- الگوریتم KNN Model
- الگوریتم Support Vector Machines (SVM)
۳- الگوریتمهای بخش بندی Segmentation Algorithms
در واقع نام این گروه از الگوریتم ها را با عنوان خوشهبندی یا Clustering نیز شنیده اید. این الگوریتم ها داده ها را به گروه ها یا خوشه هایی از نمونه ها که دارای ویژگی های مشابه هستند تقسیم می کنند. الگوریتم های خوشه بندی یا همان بخش بندی جزو یادگیری بدون نظارت Unsupervised learning محسوب میشوند و معروف ترین آنها الگوریتم خوشه بندی K-Means است. از الگوریتم های معروف در این گروه می توان به موارد زیر اشاره کرد:
- الگوریتم خوشهبندی K-Means
- الگوریتم خوشهبندی Mean-Shift
- الگوریتم خوشهبندی DBSCAN
- الگوریتم Expectation–Maximization (EM)
- الگوریتم Agglomerative Hierarchical
۴- الگوریتمهای وابستگی Association Algorithms
این الگوریتم ها رابطه یا همبستگی بین ویژگی های مختلف در داده های موجود را پیدا می کنند و سعی می کنند قوانین ارتباط را برای پیش بینی ها مورد استفاده قرار دهند. در واقع الگوریتم های وابستگی مواردی را در داده ها پیدا می کنند که اغلب با هم اتفاق می افتند. این الگوریتم ها نیز بدون ناظر هستند. دو الگوریتم مهم در حوزه الگوریتم های داده کاوی وابستگی عبارتند از:
- الگوریتم Apriori
- الگوریتم Page Rank
۵- الگوریتمهای تحلیل ترتیبی Sequence analysis Algorithms
این الگوریتم ها دنباله های تکراری در داده ها پیدا می کنند مثلاً در مجموعه کلیک ها در یک وب سایت، یا یک سری رویدادهای گزارش قبل از خرابی را جمع آوری می کنند تا یک الگوی مشخص برای پیش بینی داشته باشند. وظایفی که در فضای تحلیل توالی قرار دارد اغلب برای حل و فصل اهمیتی ندارد و نیاز به استفاده از رویکردهای نسبتاً پیچیده دارد. رایج ترین الگوریتم های این گروه عبارتند از:
- الگوریتم برنامه نویسی پویا Dynamic programming
- الگوریتم شبکه عصبی Artificial Neural Network
- مدل های مخفی مارکوف Hidden Markov Model
- الگوریتم ماشین بردار پشتیبان Support Vector Machine
- الگوریتم شبکه بیزین Bayesian Network
۶- الگوریتمهای سری زمانی Time series Algorithms
این الگوریتم ها مشابه الگوریتم های رگرسیون هستند زیرا مقادیر عددی را پیش بینی می کنند، اما سری های زمانی بر پیش بینی مقادیر آینده از یک سری مرتب شده و چرخه های فصلی استفاده می کنند. از معروف ترین الگوریتم ها در این حوزه می توان به موارد زیر اشاره کرد.
- الگوریتم Autoregressive (AR)
- الگوریتم Moving Average (MA)
- الگوریتم Autoregressive Moving Average (ARMA)
- الگوریتم Autoregressive Integrated Moving Average (ARIMA)
- الگوریتم Exponential Smoothing (ES)
۷- الگوریتمهای کاهش ابعاد Dimensional Reduction Algorithms
در داده کاوی ممکن است برخی از مجموعه داده ها متغیرهای زیادی داشته باشند که بر روی تشخیص و پیش بینی مدل تاثیر بگذارند. تشخیص متغیرهای مهم و با تأثیر بر پیش بینی را می توان با کم کردن بعد مجموعه داده انجام داد. الگوریتم های کاهش ابعاد به شناسایی مهمترین متغیرها کمک می کنند تا دقت مدل افزایش پیدا کند. الگوریتم های زیادی نیز در حوزه الگوریتم های کاهش ابعاد وجود دارد که مهترین آن ها عبارت است از:
- الگوریتم Principal Component Analysis (PCA)
- الگوریتم Linear Discriminant Analysis (LDA)
- الگوریتم Factor Analysis (FA)
- الگوریتم Multidimensional Scaling (MDS)
- الگوریتم Isometric mapping (Isomap)
- الگوریتم (BE) Backward Elimination
سخن آخر درباره معرفی انواع الگوریتم های داده کاوی
امروزه داده کاوی یکی از ابزارهای مهم و کاربردی برای تجزیه تحلیل دادهها در تجارت، اقتصاد، روابط و علوم مختلف دیگر است. برای تجزیه و تحلیل دادهها و استخراج یک مدل برای پیشبینی بایستی از الگوریتمهای دادهکاوی استفاده کرد. انتخاب یک الگوریتم مناسب برای داده کاوی مستلزم آگاه بودن از انواع الگوریتم ها در این حوزه می باشد لذا در این مقاله ۷ نوع مختلف از انواع الگوریتم های داده کاوی را معرفی کردیم تا در انتخاب یک الگوریتم مناسب برای داده کاوی راحت تر عمل کنید.
باید اذعان کرد مبحث داده کاوی یک موضوع کاملاً تخصصی است و برای استفاده کردن از آن باید تئوری روش ها و الگوریتم های آن را فرا گرفت. حالا بحث پیاده سازی این الگوریتم ها با زبان های برنامه نویسی بماند، که باید در یک مقاله دیگر به آن پرداخته شود. همانطور که در ابتدای این مقاله نیز اشاره شد منابع و مراجع مهم آموزشی برای یادگیری داده کاوی چه در حوزه تئوری و چه در حوزه پیاده سازی از سایت های معتبر کشور نظیر آموزش های داده کاوی فرادرس وجود دارد که برای علاقه مندان این حوزه بسیار مفید است و پیشنهاد ما، همواره بر آموزش های اصولی و پایه ای هر موضوع، باز در درجه اول وجود دارد. منتظر نظرات و دیدگاه های شما عزیزان هستیم. پیروز و موفق باشید.
2 پاسخ
عاااالی و کامل
باید خسته نباشید بگم کارتون عالیه