امروز میخواهیم در خصوص الگوریتم های داده کاری با شما صحبت کنیم.
همانطور که در مقاله الگوریتم برنامه نویسی چیست به توضیح کامل این واژه پرداختیم، متوجه دیم که الگوریتم یک روش برای پیادهسازی حل مسئله است، یعنی روشی برای جست وجوی الگو در دادهها. اما با گسترش سیستمهای پایگاهی و ذخیره حجم بالای اطلاعات در این سیستمها به ابزاری قویتر نیاز است تا بتوان دادهها را پردازش و اطلاعات را در اختیار کاربران قرار داد. در واقع ما به روشهایی نیاز داریم که اصطلاحا به کشف دانش بپردازد. یعنی روشی که با کمترین دخالت کاربر، به صورت خودکار الگوها و رابطهی منطقی بین آنها را بیان کند.
به نظر شما چه روشی برای اینکار مناسب است؟
بله، یکی از روشهای بسیار مهم برای تشخیص اینگونه دادهها، داده کاوی است. اصطلاح داده کاوی زمانی به کار برده میشود که با حجم بزرگی از دادهها در حد مگا یا ترابایت مواجه باشیم. پس با ما همراه شوید تا شما را با الگوریتمهای داده کاوی بیشتر آشنا کنیم.
تعریف داده کاوی:
به زبان ساده به معنی فیلتر کردن مقادیر زیادی دادهی خام برای به دست آوردن اطلاعات مفید است که به کسب و کارها، فضایی رقابتی میبخشد. این اطلاعات از الگوهای معنیدار که در داده ها موجود است اما پیش از این دیده نشده بود، تشکیل شده است. بنابراین هر چه حجم داده بیشتر و روابط بین آنها پیچیدهتر باشد، دسترسی به اطلاعات خفته در دادهها مشکل است و نقش داده کاوی به عنوان روش کشف دانش، آشکارتر می گردد.
رایجترین ابزار استفاده در هنگام کاوش، هوش مصنوعی است. اگر میخواهید درباره این موضوع اطلاعاتی کسب کنید، میتوانید از مقاله هوش مصنوعی چیست ما بهرهمند شوید.
اما روش انتخاب الگوریتمهای داده کاوی چگونه است؟
برای اینکه پژوهشگران یا تحلیلگران بدانند چگونه یک الگوریتم را انتخاب کنند، راهنمای مشخصی وجود ندارد و همین امر یک چالش برای آنها در علم داده کاوی است. انتخاب یک الگوریتم مشخص، کاری بسیار پیچیده است که در بعضی مواقع برای نتیجه بهتر، از چندین الگوریتم استفاده کرده و پردازشها را با الگوریتمهای مختلف تکرار میکنند.
جناب ویگر که یکی از فعالان علم داده کاوی میباشد، در مقالهای توصیه کرده است که در صورت امکان، بهتر است قبل از انجام پردازش روی مجموعه دادههای حقیقی، الگوریتم را روی یک مجموعه داده ورودی به صورت آزمایشی پیاده کنید تا عملکرد الگوریتم برای حل یک نوع مسئله خاص سنجیده شود.
در انتخاب الگوریتم مناسب چندین عامل تاثیرگذار هستند:
-
اولین گزینه هدف مسئله است که مسائلی از قبیل: گرفتن دلایل چرایی ،کاوش دادهها و ماهیت مسئله که قصد حل کردن آن را دارد در نظر گرفته میشود.
-
مورد بعدی در انتخاب یک الگوریتم ساختار داده میباشد که در تعیین الگوریتم مورد استفاده نقش بسیار مهمی دارد؛ زیرا ارتباط بین داده ها، متغیرها و روشی که دادهها براساس آن ذخیره میشوند را مشخص میکند.
-
سومین گزینه، نتایج مورد انتظار است که هر فرآیند داده کاوی به یک خروجی به عنوان راه حل مسئله نیاز دارد تا بسته به نوع نتایج مورد انتظار، داده کاو الگوریتمی انتخاب کند که قادر به تولید آن نتایج باشد. زیرا نتیجه یک فرآیند داده کاوی، موفقیت یا شکست آن را تعیین میکند؛ چون الگوریتمی که استفاده میشود باید یک الگوی مورد انتظار در خروجی ارائه دهد تا نتایج مورد نظر براساس وظیفهای که داده کاوی نیاز به انجام آن است، تولید کند. همچنین باید آن قدر سریع باشد تا در حجم انبوهی از دادهها به جست و جو بپردازد.
-
مورد بعدی، وظایفی است که ضمن فرآیند داده کاوی انجام میشوند.
-
مورد پنجم آشنایی داده کاوان با الگوریتم است که برای انجام این کار نیاز به درک کاملی از الگوریتم دارند. اگر از یک الگوریتم، بدون درک جزئیات عملکرد آن و تنها با داشتن درک کلی از ویژگیهای الگوریتم از آن استفاده کند، امکان دارد الگوریتم انتخاب شده برای وظایفی که نیاز به انجام است، مناسب نباشد.
-
در انتخاب یک الگوریتم باید به پیکربندی پایگاه داده مورد استفاده، توجه داشته باشند؛ در واقع باید الگوریتمی انتخاب کنند که پایگاه داده آن یکپارچه باشد تا از هزینههای اضافی جلوگیری شود.
-
مورد آخر داشتن یک مدلسازی فرآیند است. زیرا با استفاده از مدل ساخته شده، داده کاو میتواند تصمیم بگیرد که در هر مرحله باید از چه روشها و الگوریتمهایی استفاده شود و سپس به انتخاب الگوریتم مناسب برای هر مرحله بپردازد.
بیایید با هم سفری داشته باشیم به اعماق دادهها با داده کاوی در پایتون.
دستهبندی الگوریتمهای داده کاوی:
حالا نوبت آن است که شما را با الگوریتمهای داده کاوی آشنا کنیم:
-
الگوریتم درخت تصمیم
این الگوریتم یکی از پرکاربردترین الگوریتم های داده کاوی برای کاوش در دادهها و کشف دانش است. این الگوریتم، دادهها را به مجموعههای مشخص تقسیم میکند و هر مجموعه شامل چندین زیر مجموعه از دادههایی است که دارای ویژگیهای قابل پیشبینی هستند. الگوریتم درخت تصمیم به این صورت عمل میکند که در مورد یک هدف خاص چند ویژگی را تجزیه و شرایط را برای پیشبینی و هدفمندی فروش آماده میکند.
-
الگوریتم خوشهبندی
این الگوریتم، اطلاعاتی را که ویژگیهای نزدیک به هم و مشابه دارند را در قطعههایی جدا به نام خوشه قرار میدهد، به طوری که اعضای درون یک خوشه شباهتهای زیادی به یکدیگر دارند؛ اما اعضاء هر خوشه با اعضای موجود در خوشههای دیگر شباهت کمتر دارد. الگوریتم خوشهبندی میتوانیم برای تقسیمبندی مشتریان براساس هزینهها و درآمدها، تعیین انواع قراردادهای پیمانکاری براساس پرداخت وجه از مشتری و ..... استفاده کنیم.
-
الگوریتم وابستگی
این الگوریتم یک روش مناسب و توانمند برای یافتن روابط جذاب بین متغیرهای موجود در پایگاه دادههای بزرگ است. در واقع وابستگی بین دادهها به شکل یک مجموعه از قواعد شناسایی و امکان رخداد دو یا چند مشخصه در کنار یکدیگر را تعیین میکند. از این الگوریتم میتوانیم برای تجزیه و تحلیل رفتار مشتریان، تحلیل اطلاعات سبد خرید و چیدمان محصولات که سبب میشود کالاها را به صورت هدفدار به مشتری پیشنهاد دهیم، استفاده کنیم.
-
الگوریتم رگرسیون خطی
این الگوریتم یک تکنیک آماری برای بررسی و مدلسازی روابط بین دادهها میباشد که از فرمولهای مناسب برای رسیدن به پیشبینیها استفاده میکند و تنوع دیگری از الگوریتم درخت تصمیم است.
-
الگوریتم بیز
این الگوریتم برای مدلسازی پیشگویانه ارائه شده؛ یعنی برای دستهبندی دادهها از احتمال وقوع یا عدم احتمال وقوع یک پدیده و احتمال رخ دادن آن استفاده میشود و سازمان برای بازاریابی میتواند نتیجه را برای یک مشتری خاص به سرعت پیشبینی کند.
-
الگوریتم شبکههای عصبی
این الگوریتم برای مسائل بزرگ و پیچیده که شامل صدها متغیر است، استفاده میشود و در مواردی چون بازاریابی، پیشبینی حرکت سهام و ... کاربرد دارد.
-
الگوریتم رگرسیون منطقی
این الگوریتم، یک روش آماری برای مدلسازیهایی که نتیجه دودویی دارند به کار برده میشود و نتیجه آن دو حالت دارد : یا رخ میدهد و یا رخ نمیدهد که تنوع دیگری از الگوریتم شبکههای عصبی است.
-
الگوریتم خوشهبندی زنجیرهای
این الگوریتم مشابه الگوریتم خوشهبندی است با این تفاوت که خوشهها را بر پایه یک مدل جست وجو میکند نه شباهت. مثلا فرض کنید در وبسایت فروش اینترنتی خود، اطلاعات کاربران و صفحات بازدید شده، ثبت میشود و هر مشتری برای خرید خود اطلاعاتی در سایت ثبت میکند و با هر کلیک مشتریان، اطلاعات مشتری و صفحه بازدید شده ثبت میگردد. حالا با استفاده از این الگوریتم میتوانید مشتریانی را که کلیک و الگوهای مشابه داشتند گروهبندی کرده و متوجه شوید که چه کاربرانی به سایت شما میآیند، چه صفحاتی از سایت پر بازدید است و ......
-
الگوریتم سریهای زمانه
این الگوریتم نیز یکی از روشهای پیش بینی و از نوع الگوریتم رگرسیون است که برای پیش بینی پیوسته مقادیر در طول زمان استفاده می شود و می توان از خروجی یک سری، بر پایه رفتار سری دیگر استفاده کرد. در واقع هدف اصلی از این الگوریتم، پیشگویی درباره مقادیر آینده است و در مواردی چون پیشبینی فروش محصولات یک فروشگاه به منظور بهینهسازی انبار، پیشبینی درخواستهای مشتری یک کارخانه جهت برنامهریزی تولید در ماههای آینده و ..... کاربرد دارد.
معرفی الگوریتمهای داده کاوی پرکاربرد:
-
الگوریتم k-means
این الگوریتم، روشی ساده برای روشهای دیگری از خوشهبندی است. الگوریتم k-means روالی تکراری دارد که برای مشخص کردن تعداد خوشههای ثابت به صورت زیر عمل میکند:
نقایص را به عنوان مرکز خوشهها مشخص میکند که میانگین نقطه مربوط به هر خوشه است. سپس هر نمونه دادهای که کمترین فاصله تا مرکز خوشه را داشته باشد به آن نسبت میدهد.
-
الگوریتم Apriori
این الگوریتم یک روش کلاسیک برای قواعد وابستگی است و روی پایگاه دادههایی که برای تراکنش استفاده میشوند، ساخته شده است. همچنین یک الگوریتم پایین به بالا است و تلاش میکند زیر مجموعهای از آیتمها را که آیتم مشترک دارند، بیابد. هدف این الگوریتم پیدا کردن وابستگیها بین مجموعههای مختلف است.
-
الگوریتم EM
این الگوریتم در زمینههایی چون میانگین داده، ماشین یادگیری و شناسایی کاربرد دارد و یک الگوریتم تکراری است که در تکرار آن دو مرحله وجود دارد:
- مرحله انتظار
- مرحله حداکثرسازی
این الگوریتم یک روش متداول برای زمانهایی میباشد که برخی از متغیرهای تصادفی پنهان هستند.
-
الگوریتم CART
این الگوریتم موجب تشکیل یک درخت تصمیم با تقسیمات دودویی میشود و برای متغیرهای کمی طراحی شده است ولی قابل استفاده برای هر نوع متغیری میباشد و برای پاسخ به متغیر کیفی، از شاخص جینی برای انتخاب متغیرهای مناسب استفاده میکند.
در معرفی الگوریتم های داده کاوی پرکاربرد ما به چند مورد از آنها اشاره کردیم چرا که انواع مختلفی از الگوریتم ها وجود دارد. امیدواریم که این مطلب مورد رضایت شما قرار گرفته باشد. اگر شما هم الگوریتم دیگری را میشناسید در قست کامنت آن را معرفی کنید.
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.