روش انتخاب الگوریتم داده کاوی – راهنمای کاربردی


الگوریتم، روشی که برای جستجوی الگو در دادهها مورد استفاده قرار میگیرد را تعیین میکند و در واقع مانند یک روال ریاضی برای حل یک مساله خاص است. الگوریتمهای گوناگونی برای «تحلیل داده» (Data Analysis) موجود هستند و لذا انتخاب الگوریتم «دادهکاوی» (Data Mining) مناسب یک مساله، برای پژوهشگران و تحلیلگران کاری دشوار است. برخی از سازمانها به دلیل دشواری انتخاب الگوریتم داده کاوی مناسب، به طور مکرر از برخی الگوریتمهای دادهکاوی استفاده میکنند. هنگامیکه یک الگوریتم نامناسب پیادهسازی میشود، دانش کشف شده اغلب برای سازمان بدون معنا است زیرا از اطلاعات صحیحی پردهبرداری نکرده و این امر میتواند منجر به تصمیمگیریهای غلط در کسبوکار شود.
روش انتخاب الگوریتم داده کاوی
هیچ راهنمای مشخصی برای آنکه پژوهشگران یا تحلیلگران چگونه الگوریتم انتخاب کنند وجود ندارد. در مقالهای که در همین رابطه نوشته شده، انتخاب الگوریتم مناسب را یکی از چالشهای موجود برای اغلب پژوهشگران حوزه دادهکاوی بیان میکنند. انتخاب یک الگوریتم مشخص امری بسیار پیچیده است، لذا برخی از پژوهشگران برای ارتقای نتایج دادهکاوی از چندین الگوریتم استفاده کرده و پردازشها را با الگوریتمهای مختلف تکرار میکنند.
دادهکاوان ممکن است از الگوریتمی که نتایج صحیح را تولید میکند، سریع است و کد آن به خوبی مستند و شفافسازی شده استفاده کنند. ویگر از فعالان حوزه دادهکاوی در مقالهای در همین رابطه، توصیه کرده که در صورت امکان بهتر است پیش از انجام پردازش روی مجموعه دادههای حقیقی، الگوریتم را روی یک مجموعه داده ورودی بهصورت آزمایشی پیاده کنند تا عملکرد الگوریتم برای حل یک نوع مساله خاص سنجیده شود.
گاه نیاز به استفاده از چندین الگوریتم برای حل یک مساله واحد جهت حل فازهای مختلف مساله است. در مجموع میتوان گفت هدف مساله، ساختار مجموعه داده موجود، نتایج مورد انتظار در خروجی، شناخت دادهکاو از یک الگوریتم و مولفههای پیکربندی پایگاه داده در انتخاب الگوریتم مناسب دادهکاوی تاثیرگذار هستند. هر یک از این موارد در ادامه توضیح داده شدهاند. لازم به ذکر است برای انتخاب یک الگوریتم دادهکاوی مناسب، ممکن است نیاز باشد پژهشگران بیش از یک مولفه را در نظر بگیرند. انتخاب الگوریتم با توجه به تنها یکی از مولفهها، میتواند امکان بازدهی نامطلوب نتایج را افزایش داده و حتی خروجی فرآیند دادهکاوی را بیمعنی کند.
هدف مساله: هدف اصلی مسالهای که قرار است حل شود برای انتخاب الگوریتم دادهکاوی حائز اهمیت است. این مولفه شامل در نظر گرفتن دلایل چرایی کاوش دادهها و ماهیت مسالهای که قصد حل کردن آن وجود دارد میشود. یک سازمان وامدهی ممکن است از روشهای آماری برای پذیرفتن یا رد کردن درخواستهای وام استفاده کند.
سازمان ممکن است به قواعد دستهبندی بر اساس برخی اطلاعات مشتریان مانند سن، سالهای کار با کارفرمای کنونی، سالهای داشتن حساب در بانک و دیگر کارتهای اعتباری که شخص مالک آنها است، برای پیشبینی گرایش داشتن یا نداشتن آن مشتری به بازپرداخت بهموقع اقساط وام خود پس از دریافت وام، نیاز داشته باشد.
ساختار داده: ساختار مجموعه داده مولفه دیگری است که در تعیین الگوریتم مورد استفاده نقش مهمی دارد. ارتباط بین اشیا/دادهها، ارتباط بین متغیرها و روشی که دادهها بر اساس آن ذخیره شدهاند، انتخاب الگوریتم مناسب برای دادهکاوی را تحت تاثیر قرار میدهد. برخی الگوریتمها ویژه مجموعه دادههایی با انواع مشخص هستند و لذا سازمانها را مجبور به داشتن ابزارهای مختلف برای اهداف گوناگون میکنند.
نتایج مورد انتظار: هر فرآیند دادهکاوی باید یک خروجی به عنوان راه حل مساله داشته باشد که در واقع نتیجه مورد انتظار مساله است. هدف اصلی دادهکاوی شناسایی الگوها و گرایشها در دادهها است تا از این دانش در تصمیمگیریها استفاده شود. بسته بهنوع نتایج مورد انتظار، دادهکاوان الگوریتمی را انتخاب میکنند که قادر به تولید آن نتایج است.
به عبارت دیگر، الگوریتم استفاده شده باید قادر به ارائه الگوی مورد انتظار در خروجی باشد و نتایج مورد انتظار را بر اساس وظیفه دادهکاوی که نیاز به انجام آن است تولید کند و به اندازهکافی سریع باشد تا در حجم انبوهی از دادهها به جستوجو بپردازد. نتیجه یک فرآیند دادهکاوی، موفقیت یا شکست آن را تعیین میکند. به عبارت دیگر، اگر فرآیند دادهکاوی نتایج مورد انتظار را تولید نکند شکست خورده است.
وظایف قابل انجام: وظایفی که ضمن فرآیند دادهکاوی انجام میشوند انتخاب الگوریتم را تحت تاثیر قرار میدهند. برای مثال اگر وظیفه قابل انجام، دستهبندی باشد، الگوریتمها احتمالا از روشهای «دستهبندی» (Classification) یا «رگرسیون» (Regression) خواهند بود. هنگامی که وظیفه استخراج «قواعد وابستگی» (Association Rules) است، امکان دارد الگوریتم «اَپریوری» (Apriori) مورد استفاده قرار بگیرد.
نتایج دادهکاوی تصمیمگیریهای کسبوکار را آگاهانه میسازد، بنابراین اگر اطلاعاتی که ضمن فرآیند دادهکاوی کشف شده اشتباه باشند ممکن است موجب اتخاذ تصمیمات اشتباه توسط تصمیمسازان شود. اطلاعات برای آنکه مفید باشند باید با ساختار درستی ارائه شوند.
آشنایی با الگوریتم: شناخت دادهکاو از یک الگوریتم در انتخاب آن برای حل مسائل دادهکاوی موثر است. دادهکاوان برای انجام یک دادهکاوی موفق نیاز به درک کامل الگوریتمی دارند که از آن استفاده میکنند. تجربه داشتن در پیادهسازی یک الگوریتم میتواند انتخاب را برای دادهکاوان بسیار آسان کند.
آشنایی دادهکاوان با یک الگوریتم، ممکن است انتخاب آنها برای حل یک مساله خاص را تحت تاثیر قرار دهد. پژوهشگران ممکن است از یک الگوریتم، بدون درک جزئیات عملکرد و تنها با داشتن یک درک کلی از ویژگیهای کلی الگوریتم استفاده کنند، که البته این امر مخاطرهآمیز است زیرا امکان دارد الگوریتمهای انتخاب شده برای وظایفی که نیاز به انجام آنها است مناسب نباشند.
پیکربندی پایگاهداده: دادهکاوان باید الگوریتمی را برگزینند که با «پایگاهداده» (Database) یا «انبار داده» (Data Warehouse) آنها یکپارچه شود تا از هزینههای اضافی جلوگیری کنند. با توجه به آنکه ابزارهای محاسباتی زیادی وجود دارند که امکان دارد با هر پایگاهدادهای کار نکنند، نیاز به در نظر گرفتن مولفههای پیکربندی پایگاه داده در انتخاب الگوریتم است. انتخاب الگوریتم با در نظر گرفتن مولفههای پیکربندی میتواند نقش مهمی در کاهش هزینههای یکپارچهسازی منبع داده داشته باشد.
مدلسازی فرآیند: مدلسازی کل فرآیند دادهکاوی به دادهکاوان غیرمتخصص کمک میکند انتخاب الگوریتم مناسب توسط خود را بهبود ببخشند. با استفاده از مدل ساخته شده، دادهکاو میتواند تصمیمگیری کند که در هر مرحله نیازمند استفاده از چه روشها و الگوریتمهایی است و سپس به انتخاب الگوریتم مناسب برای هر مرحله بپردازد. گاهی در برخی از مراحل حل یک مساله نیاز به استفاده از چندین الگوریتم وجود دارد.
اگر نوشته بالا برای شما مفید بوده، آموزشهای زیر نیز به شما پیشنهاد میشود:
- مجموعه آموزشهای آمار، احتمالات و دادهکاوی
- مجموعه آموزشهای یادگیری ماشین و بازشناسی الگو
- مجموعه آموزشهای شبکههای عصبی مصنوعی
- مجموعه آموزشهای هوش محاسباتی
- مجموعه آموزشهای برنامه نویسی پایتون (Python)
- آموزش برنامهنویسی R و نرمافزار R Studio
- مجموعه آموزشهای برنامه نویسی متلب (MATLAB)
^^