همانطور که در اینجا گفته شد الگوریتم های داده کاوی به پنج دسته کلی تقسیم می شوند. در این مقاله هر یک از الگوریتم های داده کاوی را به صورت مختصر شرح میدهم.
الگوریتم وابستگی(Association algorithm)
الگوریتم وابستگی نوعی آنالیز پیوندی است که برای تشخیص رفتار یک رویداد و یا یک پروسهی خاص استفاده میشود. این الگوریتم از دو بخش شرط و نتیجه تشکیل شده. بخش شرط یک آیتم خاص از اطلاعات را کشف و در بخش نتیجه آیتمی دیگر از اطلاعات که وابسته به شرط است را پیدا میکند. در واقع شرحی از دو کلمهی "اگر" و "پس" ، برای کشف رابطههای ناشناخته میان اطلاعات است. برای مثال، میتوان گفت که "اگر" شخصی چکش بخرد "پس" به احتمال 80 درصد میخ هم خریداری میکند.
الگوریتم وابستگی بسیار مفید است چراکه توسط آن میتوانیم رفتار مشتریان را تجزیه و تحلیل و پیشبینی کنیم. بعلاوه این الگوریتم نقش مهمی در تحلیل اطلاعات سبد خرید و چیدمان محصولات دارد که در نتیجه سبب میشود تا کالاها را به صورت هدف دار به مشتریان پیشنهاد دهیم.
الگوریتم خوشهبندی(Clustering algorithm)
خوشهبندی از جمله الگوریتمهای دستهبندی دادهکاوی است. الگوریتم خوشهبندی اطلاعاتی را که ویژگیهای نزدیک به هم و مشابه دارند را در قطعههایی جداگانه که به آن خوشه گفته میشود قرار میدهد. به بیان دیگر خوشهبندی همان دستهبندیهای سادهای است که در کارهای روزانه انجام میدهیم. وقتی با یک مجموعه کوچک از صفات روبرو باشیم این دسته بندی به سادگی قابل اجراست، برای مثال در یک مجموعه از خودکارهای آبی، مشکی، قرمز و سبز به راحتی میتوانیم آنها را در 4 دسته قرار دهیم اما اگر در همین مجموعه ویژگیهای دیگری مثل سایز، شرکت سازنده، وزن، قیمت و... مطرح باشد کار کمی پیچیده میشود. حال فرض کنید در یک مجموعه متشکل از هزاران رکورد و صدها ویژگی قصد دسته بندی دارید، چگونه باید این کار را انجام دهید؟!
بخش بندی دادهها به گروهها یا خوشههای معنادار به طوری که محتویات هر خوشه ویژگیهای مشابه و در عین حال نسبت به اشیاء دیگر در سایر خوشهها غیر مشابه باشند را خوشهبندی میگویند. از این الگوریتم در مجموعه دادههای بزرگ و در مواردی که تعداد ویژگیهای داده زیاد باشد استفاده میشود.
گاهی اوقات ممکن است با مشاهده اولیه، خوشهبندی انجام شده منطقی به نظر نرسد اما با کمی تحلیل متوجهی دقت این الگوریتم میشوید.
الگوریتم درخت تصمیم(Decision Trees algorithm)
درخت تصمیم یکی از قویترین و پرکاربردترین الگوریتمهای دادهکاوی است که برای کاوش در دادهها و کشف دانش کاربرد دارد. این الگوریتم دادهها را به مجموعههای مشخصی تقسیم میکند. هر مجموعه شامل چندین زیر مجموعه از دادههای کم و بیش همگن که دارای ویژگیهای قابل پیش بینی هستند تقسیم میشود. برای مثال فرض کنید که اطلاعاتی از محصولات فروخته شده خود دارید. با بررسی این اطلاعات مشخص میشود که تعداد 9 فروش از 10 فروش محصول دوچرخه توسط افراد 15 تا 25 ساله انجام گرفته است و تنها یک فروش برای افراد بالای 25 سال داشتهاید. از این اطلاعات میتوان نتیجه گرفت که سن مشتری نقش مهمی در فروش دوچرخههای شما دارد.
الگوریتم درخت تصمیم نیز اینگونه عمل میکند، در مورد یک هدف خاص چندین ویژگی را تجزیه و تحلیل کرده و شرایط را برای پیشبینی و هدفمندی فروش فراهم میکند.
الگوریتم رگرسیون خطی(Linear Regression algorithm)
رگرسیون فن و تکنیکی آماری برای بررسی و مدل سازی روابط میان دادهها است. رگرسیون خطی از فرمولهای مناسبی جهت محاسبه مقادیر A و B برای رسیدن به پیش بینی C استفاده میکند.
رگرسیون در دادهکاوی تنوع دیگری از درخت تصمیم است به شکلی که به محاسبهی یک ارتباط خطی میان متغیرهای وابسته و غیر وابسته کمک میکند. محاسبههای انجام شده در پیش بینیها کاربرد دارند.
الگوریتم بیز(Naive Bayes Algorithm)
این الگوریتم بر پایهی قضیه بیز برای مدل سازی پیشگویانه ارائه شده است. قضیه بیز از روشی برای دستهبندی پدیدهها بر پایه احتمال وقوع یا عدم وقوع یک پدیده استفاده میکند و احتمال رخ دادن یک پدیده محاسبه و دسته بندی میشود. به مثال زیر توجه کنید:
بخش بازاریابی شرکت قصد دارد به عنوان یک استراتژی تبلیغاتی برای مشتریان بالقوه نامههای تبلیغاتی ارسال کند. از طرفی برای کاهش هزینهها قصد دارد فقط به مشتریانی که علاقهمند هستند و ممکن است واکنش مثبت نشان دهند نامهها را ارسال کند. در پایگاه داده شرکت اطلاعاتی از افرادی که به نامههای قبلی واکنش نشان داده بودند ذخیره شده است.
آنها میخواهند ببینند که به وسیله اطلاعات آماری مانند سن، موقعیت مکانی و به وسیله مقایسه پتانسیل مشتریان بالقوه با مشتریانی که مشخصات مشترک دارند و اینکه چه اشخاصی در گذشته از شرکت خریداری کرده است می توانند به واکنشها و پاسخهای دریافتی خود بی افزاییند.
به طور کلی می خواهند تفاوت مشتریانی که محصول خریداری کردهاند و مشتریانی که هیچ محصولی نخریدهاند را پیدا کنند.
با استفاده از الگوریتم بیز سازمانها برای بازاریابی میتوانند نتیجه را برای یک مشتری خاص به سرعت پیش بینی کنند، بنابراین مشخص می شود که کدام مشتری علاقه بیشتری به پاسخ دادن نامه دارد.
الگوریتم شبکههای عصبی(Neural Network Algorithm)
شبکه های عصبی از پرکاربردترین و عملی ترین روشهای مدلسازی مسائل پیچیده و بزرگ که شامل صدها متغیر هستند، میباشد. شبکه های عصبی میتوانند برای مسائل طبقهبندی (که خروجی یک کلاس است) یا مسائل رگرسیون (که خروجی یک مقدار عددی است) استفاده شوند.
هر شبکه عصبی شامل یک لایه ورودی است که هر گره در این لایه معادل یکی از متغیرهای پیش بینی میباشد. این الگوریتم برای تجزیه و تحلیل دادههای پیچیدهای که انجام آن توسط سایر الگوریتمها به سادگی انجام نمیگیرد کاربرد دارد.
الگوریتم شبکههای عصبی در موارد زیر پیشنهاد میشود:
بازاریابی، مانند رسیدن به موفقیت در ارسال نامههای تبلیغاتی
پیشبینی حرکت سهام، نوسانات نرخ ارز و یا سایر اطلاعات سیال مالی که دارای پیشینه هستند
تجزیه و تحلیل فرآیندهای تولیدی و صنعتی
متن کاوی و هر مدل پیشبینی که شامل تحلیلهای پیچیدهای از ورودیهای زیاد و خروجیهای نسبتا کم باشد.
الگوریتم رگرسیون منطقی یا لجستیک(Logistic regression algorithm)
رگرسیون منطقی یک روش آماری برای مدل سازیهایی که نتایج دودویی دارند، است. برای شرایطی که هدف برآورد مفاهیمی چون "رخ دادن" یا "رخ ندادن" است مانند نتیجهی یک مسابقه فینال که دو حالت بیشتر ندارد.
ممکن است مقادیر پیشبینی شده بی معنی باشد و یا در عمل تفسیر پذیر نباشند یا امکان مقایسه مقادیر پیشبینی با هم نباشد که ممکن است از نتایج الگوریتمهای درخت تصمیم و رگرسیون خطی باشد در چنین شرایطی برای رفع ابهامات از این الگوریتم استفاده میشود. از این مدل برای بدست آوردن نتایج بهینه پیشبینی استفاده میشود. از رگرسیون لجستیک میتوان به عنوان تنوع دیگری از الگوریتم شبکههای عصبی نام برد. رگرسیون منطقی یک مدل آماری رگرسیون برای متغیرهای باینری است.
الگوریتم خوشهبندی زنجیرهای(Sequence Clustering algorithm)
این الگوریتم شباهت زیادی به خوشهبندی دارد اما برخلاف الگوریتم خوشهبندی، خوشهها را بر پایه یک مدل جستجو میکند و نه بر اساس شباهت رکوردها. این مدل زنجیرهای رویدادها را بر اساس زنجیرهی مارکوف ایجاد میکند. در زنجیرهی مارکوف توزیع احتمال شرطی حالت بعدی تنها به حالت فعلی بستگی دارد و به وقایع قبل از آن وابسته نیست. زنجیره مارکوف ابتدا یک ماتریسی از ترکیب تمامی وضعیتهای شدنی(امکان پذیر) ایجاد میکند و سپس در هر خانهی ماتریس احتمالات حرکت از یک وضعیت به وضعیت دیگر را ثبت میکند. از طریق این احتمالات محاسباتی انجام میشود که در نتیجه یک مدل بر پایهی آن ایجاد میشود. به مثال زیر توجه کنید:
فرض کنید برای فروش اینترنتی محصولات خود یک وبسایت دارید که اطلاعات کاربران و صفحات بازدید شده ثبت میشود. هر مشتری برای خرید باید اطلاعاتی از خود در سایت ثبت کند و با هر کلیک مشتریان، اطلاعاتی از مشتری و صفحه ثبت میشود. با استفاده از الگوریتم خوشهبندی زنجیرهای بر روی این اطلاعات میتوانید مشتریانی که کلیکها و الگوهای مشابه داشتهاند را گروه بندی کنید. با تحلیل گروهبندیها میتوانید بفهمید که چه کاربرانی به سایت شما میآیند، کدام صفحات سایت شما پر بازدیدتر هستند و ارتباط بیشتری با فروشهای شما دارند و صفحهی بعدی از سایت شما که بازدید خواهد شد، کدام است.
هدف اصلی از جمع آوری دادههای سری زمانی پیشبینی و یا پیشگویی درباره مقادیر آینده است. به مثالهای زیر توجه کنید.
یک کارخانه به پیشبینی درخواستهای مشتریان در ماههای آینده جهت برنامه ریزی تولید نیاز دارد.
یک وب سایت باید رشد کاربری و ترافیک کاربران را به منظور استفاده از یک سخت افزار مناسب تخمین بزند.
یک فروشگاه باید فروش محصولات را به منظور بهینه سازی انبار، پیشبینی نماید.
داده کاوی دارای چندین الگوریتم است، از این الگوریتم ها هم به صورت جداگانه و هم به صورت ترکیبی میتوان استفاده نمود. بر همین اساس در حوزه های مختلف به راحتی میتوان از داده کاوی استفاده کرد. برخی از کاربردهای داده کاوی عبارتند از:
کاربردهای معمول تجاری: از قبیل تحلیل و مدیریت بازار، تحلیل سبد خرید کالا، بازاریابی هدف، فهم رفتار مشتری، تحلیل و مدیریت ریسک.
بانکداری :مدیریت و کشف فریب، کشف تراکنشهای مشکوک مالی (پولشویی)، تشخیص مشتریان ثابت و همیشگی. استفاده از دادهکاوی در زمینههای مالی و بانکداری به شناخت مشتریان پر خطر و سودجو بر اساس معیارهایی از جمله سن، درآمد، وضعیت سکونت، تحصیلات، شغل و غیره میانجامد.
متن کاوی (پالایش متن) : نامههای الکترونیکی، گروههای خبری و غیره.
پزشکی: کشف ارتباط علائم و بیماری، تحلیل آرایههای DNA. در زمینه پزشکی استفاده بیمارستانها و کارخانههای داروسازی جهت کشف الگوها و مدلهای ناشناخته تأثیر داروها بر بیماریهای مختلف و نیز بیماران گروههای سنی مختلف را میتوان نام برد.
ورزش: آمارهای ورزشی.
وب کاوی: پیشنهاد صفحات مرتبط، بهبود ماشینهای جستجوگر یا شخصی سازی حرکت در وب سایت.
بیمه: پیشبینی میزان استقبال از بیمه نامههای جدید، تشخیص کلاه برداریها و مشخص کردن رفتارهای نامناسب، تشخیص نیازها و خواستههای مشتریان.
تکنیکهای بسیاری جهت جمع آوری ، پالایش و آنالیز داده ها نظیر OLAP و Data Mining با هدف استخراج اطلاعات از رکوردهای عملیاتی سازمان و نظم دهی آن به منظور انجام تحلیل های مختلف وجود دارد.
یکی از متداولترین سوالات در حوزه پردازش دادهها به صورت حرفهای در مورد تفاوت داده کاوی و OLAP میباشد. این دو ابزار در عین حال که تفاوتهایی با هم دارند مکمل یکدیگر نیز میباشند.
کاربر در مورد یک رابطه و تائید آن با مجموعهای از پرس و جوها در مقابل دادهها، به شکل یک فرضیه روبرو است. به عنوان مثال ممکن است تحلیلگر بخواهد تا عواملی که سبب ناتوانی در بازپرداخت بدهی وام منجر میگردد را تجزیه و تحلیل نماید.
در تجزیه و تحلیل پایگاه داده OLAP ابتدا ممکن است این گونه فرض شود که افرادی که در اعتبارات مالی درآمد پایین و ریسک بالا دارند، نتوانند بدهی خود را پرداخت کنند و فرضیه افراد کم درآمد و کم اعتبار تائید (و یا رد) شود.
اگر فرضیه توسط دادهها تصدیق نشد تحلیلگر ممکن است به بدهی بالا به عنوان عامل منجر به ریسک نگاه کند. اگر این مطلب را دادهها نیز تایید نکنند او ممکن است بدهی و درآمد را با هم به عنوان بهترین نمایانگر ریسک اعتبار مالی بد در نظر بگیرد.
به عبارت دیگر OLAP یک تجزیه و تحلیلی از مجموعهای از فرضیهها تولید کرده و پارامترها و ارتباطات را برای استفاده به سمت کوئری های پایگاه داده برای تائید یا رد آنها ارسال میکند. تجزیه و تحلیلهای OLAP برای پردازشهای استنتاجی یک ضرورت است.
داده کاوی با OLAP تفاوت دارد زیرا الگوهای فرضیهها را سریعتر تائید میکند، با استفاده از همان دادهها به کشف الگوهای همانند میپردازد و همچنین برای پردازشهای استنتاجی ضروری میباشد. برای مثال فرض کنید شخصی قصد داشته باشد تا فاکتورهای همراه با ریسک جهت وام گرفتن را با استفاده از داده کاوی تجزیه و تحلیل و شناسایی کند. ممکن است ابزارهای داده کاوی اشخاص با بدهی بالا، درآمد پایین و اعتبار مالی بد را کشف کنند. این نوع تجزیه و تحلیل ممکن است از موارد تاثیرگذار دیگری چشم پوشی کند. بعنوان مثال سن می تواند یک عامل تعیین کننده در بازپرداخت وام باشد.
اینجا جایی است که داده کاوی و OLAP میتوانند یکدیگر را کامل کنند. قبل از کار بر روی الگو و تجزیه و تحلیل بر روی اطلاعات، نیاز به دانستن پیامدهای مالی و همچنین خواستار کشف الگوهایی برای کنترل اعتبار کافی اشخاص میباشیم. تکنولوژی OLAP میتواند به این قسمت از سوال پاسخ دهد. در OLAP با استفاده از MDX و با دقت و تمرکز خود بر روی مقادیر مهم میتواند استثناها را شناسایی و یا تعاملات را کشف کند.
در محصولات Business Intelligence (BI) داده کاوی یک جزء اساسی است که توانایی زیادی در تحلیل دادهها و یافتن الگوهای پنهان به صورت خودکار و نیمه خودکار دارند. در دههای گذشته حجم دادههای انباشته شده و ذخیره شده در پایگاههای داده بسیار بالا رفته است. اغلب این دادهها از برنامههای تجاری همچون برنامههای مالی، منابع مدیریت سرمایه گذاری، مدیریت ارتباط با مشتری و صفحات وب به دست آمده است.
نتیجه این انباشتگی ، غنی بودن سازمانها از داده و ضعف در کسب دانش میباشد. از طرفی سرعت افزایش دادهها روز به روز در حال گسترش میباشد در حالی که استفاده درست از این دادههای رو به افزایش، بسیار محدود است. هدف از داده کاوی استخراج الگوهای مناسب از دادههای موجود، گسترش ارزش واقعی و تبدیل دادهها به دانش است.
یک مثال ساده:
جدولی شامل لیستی از فارغالتحصیلان در یک دبیرستان را در نظر بگیرید. فیلدهای این جدول شامل اطلاعاتی در مورد جنسیت، ضریب هوشی، سطح تشویق و ترغیب والدین و درآمد والدین برای دانش آموزانی که قصد ورود به دانشگاه را دارند میباشد.
در اینجا سوالی مطرح میشود: کدام دسته از دانش آموزان به دانشگاه خواهند رفت؟
امکان دارد برای پاسخ به این سوال یک پرس و جو بنویسید که در آن تعداد دانش آموزان دختر و تعداد دانش آموزان پسر را به شما بدهد و همچنین ممکن است پرس و جوی دیگری بنویسید که در آن والدین ترغیب کننده دانش آموزان را بیابید. اما در مورد دانش آموزان پسر چطور؟ آیا آنها توسط والدین ترغیب میشوند؟ یا همینطور دانش آموزان دختر، آیا دختران توسط والدین خود تشویق نمیشوند؟
برای مشخص کردن تمام احتمالات و پوشش همه آنها باید صدها عدد از این قبیل پرس و جویها نوشت. برای دادههای عددی مانند درآمد والدین و ضریب هوشی، تحلیلها بسیار پیچیدهتر و مشکلتر خواهد شد. اگر در جدول صدها ستون وجود داشت چطور؟
میبایست با استفاده از پرس و جوهای SQL به سرعت دادهها را مدیریت کنید که بدیهی است این امر غیر ممکن میباشد. اما در مقابل داده کاوی رویکردی کاملاً متفاوت و ساده به این سوال دارد.
تحقیقات انجام گرفته نشان از آن دارد که امروزه سازمانها، کمتر از یک درصد از دادههایشان را برای تحلیل استفاده مینمایند. به عبارت دیگر امروزه سازمانها در اطلاعات غرق شدهاند در حالی که گرسنه دانش هستند چرا که سازمانها دادههای زیادی را در تصرف خود دارند در حالی که هنوز با فقدان دانش پنهان درون دادهها مواجه هستند. در دادهکاوی روشهایی برای کشف روابط بکار برده میشود و به کمک الگوریتمهایی روابط چند بعدی بین دادهها تشخیص داده شده و آنهایی که یکتا هستند شناسایی میشوند. در واقع ابزار دادهکاوی، داده را میگیرد و یک تصویر از واقعیت به شکل مدل میسازد، این مدل روابط موجود در دادهها را شرح میدهد. به طور کلی کاوش دادهها به معنی کنکاش دادههای موجود در پایگاه داده و انجام تحلیلهای مختلف بر روی آنها به منظور استخراج اطلاعات میباشد. و در نهایت میتوان بیان نمود که دادهکاوی، پروسه اکتشافِ با معنای ارتباط موجود میان دادهها میباشد.
OLAP و Data Mining دو راهکاری هستند که در SSAS برای مدیرت داده ها و کشف دانش معرفی شده است. در اینجا به معرفی اجمالی داده کاوی(DataMining) می پردازیم.
دادهکاوی علمی نوین و جذاب برای کشف دانش از داده ها می باشد. با توجه به رقابتی شدن بازار و تلاش سازمان ها برای رقابت و بدست آوردن درآمد بیشتر، استفاده از دادهکاوی امری مهم تلقی می شود. استفاده از داده های پیشین و نتیجه گرفتن از آن ها جهت بهبود عملکرد آینده، یکی از ایدهآلترین روش ها برای کمک به سازمان ها میباشد. از سوی دیگر با توجه به قابلیت حضور دادهکاوی در تمام عرصهها و همچنین وجود بنیان قوی علوم آمار، کامپیوتر، هوش مصنوعی و الگوشناسی در نهان دادهکاوی موجب فراگیر شدن این دانش در تمامی سطوح گردیده است.
دادهکاوی عملی بسیار ظریف بوده که اگر در آن تحلیل دادهها بصورت دقیق انجام نگیرد، ممکن است باعث استدلال نادرست گردد. از طرفی الگوریتم های دادهکاوی نیز پیچیدگی زیادی دارند، خوشبختانه نرم افزارSQL Server Business Intelligence Development Studio سبب گردیده که از پیچیدگی محتوای الگوریتمهای دادهکاوی دور گردیم و با خیالی آسوده عملیات دادهکاوی را انجام دهیم.
در پستهای بعدی با برخی از این الگوریتمها آشنا خواهید شد.