دانشکده برق و کامپیوتر
درس پایگاه دادههای پیشرفته 2
گزارش اول
مقدمهای بر دادهکاوی
مصطفی کیخا 810184097
علی عباسی 810184102
فهرست
1-1 چه چیزی سبب پیدایش داده کاوی شده است؟. 4
1-3 جایگاه داده کاوی در میان علوم مختلف... 11
1-4 داده کاوی چه کارهایی نمی تواند انجام دهد؟. 12
1-5 داده کاوی و انبار داده ها 13
1-7 کاربرد یادگیری ماشین و آمار در داده کاوی... 15
2- توصیف داده ها در داده کاوی... 15
2-1 خلاصه سازی و به تصویر در آوردن داده ها 15
3- مدل های پیش بینی داده ها 17
4 مدل ها و الگوریتم های داده کاوی... 18
4-3 Multivariate Adaptive Regression Splines(MARS). 24
4-5 K-nearest neibour and memory-based reansoning(MBR). 26
در دو دهه قبل توانایی های فنی بشر در برای تولید و جمع آوری دادهها به سرعت افزایش یافته است. عواملی نظیر استفاده گسترده از بارکد برای تولیدات تجاری، به خدمت گرفتن کامپیوتر در کسب و کار، علوم، خدمات دولتی و پیشرفت در وسائل جمع آوری داده، از اسکن کردن متون و تصاویر تا سیستمهای سنجش از دور ماهواره ای، در این تغییرات نقش مهمی دارند [1].
بطور کلی استفاده همگانی از وب و اینترنت به عنوان یک سیستم اطلاع رسانی جهانی ما را مواجه با حجم زیادی از داده و اطلاعات میکند. این رشد انفجاری در دادههای ذخیره شده، نیاز مبرم وجود تکنولوژی های جدید و ابزارهای خودکاری را ایجاد کرده که به صورت هوشمند به انسان یاری رسانند تا این حجم زیاد داده را به اطلاعات و دانش تبدیل کند: داده کاوی به عنوان یک راه حل برای این مسائل مطرح می باشد. در یک تعریف غیر رسمی داده کاوی فرآیندی است، خودکار برای استخراج الگوهایی که دانش را بازنمایی می کنند، که این دانش به صورت ضمنی در پایگاه داده های عظیم، انباره داده[2] و دیگر مخازن بزرگ اطلاعات، ذخیره شده است. داده کاوی بطور همزمان از چندین رشته علمی بهره می برد نظیر: تکنولوژی پایگاه داده، هوش مصنوعی، یادگیری ماشین، شبکه های عصبی، آمار، شناسایی الگو، سیستم های مبتنی بر دانش[3]، حصول دانش[4]، بازیابی اطلاعات[5]، محاسبات سرعت بالا[6] و بازنمایی بصری داده[7] . داده کاوی در اواخر دهه 1980 پدیدار گشته، در دهه 1990 گامهای بلندی در این شاخه از علم برداشته شده و انتظار می رود در این قرن به رشد و پیشرفت خود ادامه دهد [2].
واژه های «داده کاوی» و «کشف دانش در پایگاه داده»[8] اغلب به صورت مترادف یکدیگر مورد استفاده قرار می گیرند. کشف دانش به عنوان یک فرآیند در شکل1-1 نشان داده شده است.
کشف دانش در پایگاه داده فرایند شناسایی درست، ساده، مفید، و نهایتا الگوها و مدلهای قابل فهم در داده ها می باشد. داده کاوی، مرحله ای از فرایند کشف دانش می باشد و شامل الگوریتمهای مخصوص داده کاوی است، بطوریکه، تحت محدودیتهای مؤثر محاسباتی قابل قبول، الگوها و یا مدلها را در داده کشف می کند [1]. به بیان ساده تر، داده کاوی به فرایند استخراج دانش ناشناخته، درست، و بالقوه مفید از داده اطلاق می شود. تعریف دیگر اینست که، داده کاوی گونه ای از تکنیکها برای شناسایی اطلاعات و یا دانش تصمیم گیری از قطعات داده می باشد، به نحوی که با استخراج آنها، در حوزه های تصمیم گیری، پیش بینی، پیشگویی، و تخمین مورد استفاده قرار گیرند. داده ها اغلب حجیم ، اما بدون ارزش می باشند، داده به تنهایی قابل استفاده نیست، بلکه دانش نهفته در داده ها قابل استفاده می باشد. به این دلیل اغلب به داده کاوی، تحلیل داده ای ثانویه[9] گفته می شود.
اصلی ترین دلیلی که باعث شد داده کاوی کانون توجهات در صنعت اطلاعات قرار بگیرد، مساله در دسترس بودن حجم وسیعی از داده ها و نیاز شدید به اینکه از این داده ها اطلاعات و دانش سودمند استخراج کنیم. اطلاعات و دانش بدست آمده در کاربردهای وسیعی از مدیریت کسب و کار وکنترل تولید و تحلیل بازار تا طراحی مهندسی و تحقیقات علمی مورد استفاده قرار می گیرد.
داده کاوی را می توان حاصل سیر تکاملی طبیعی تکنولوژی اطلاعات دانست، که این سیر تکاملی ناشی از یک سیر تکاملی در صنعت پایگاه داده می باشد، نظیر عملیات: جمع آوری داده ها وایجاد پایگاه داده، مدیریت داده و تحلیل و فهم داده ها. در شکل1-2 این روند تکاملی در پایگاه های داده نشان داده شده است ]3[.
شکل1-1: داده کاوی به عنوان یک مرحله از فرآیند کشف دانش
تکامل تکنولوژی پایگاه داده و استفاده فراوان آن در کاربردهای مختلف سبب جمع آوری حجم فراوانی داده شده است. این داده های فراوان باعث ایجاد نیاز برای ابزارهای قدرتمند برای تحلیل داده ها گشته، زیرا در حال حاضر به لحاظ داده ثروتمند هستیم ولی دچار کمبود اطلاعات می باشیم.
ابزارهای داده کاوی داده ها را آنالیز می کنند و الگوهای دادهای را کشف می کنند که می توان از آن در کاربردهایی نظیر: تعیین استراتژی برای کسب و کار، پایگاه دانش[10] و تحقیقات علمی و پزشکی، استفاده کرد. شکاف موجود بین داده ها و اطلاعات سبب ایجاد نیاز برای ابزارهای داده کاوی شده است تا داده های بی ارزش را به دانشی ارزشمند تبدیل کنیم [2].
به طور ساده داده کاوی به معنای استخراج یا «معدن کاری[11]» دانش از مقدار زیادی داده خام است. البته این نامگذاری برای این فرآیند تا حدی نامناسب است، زیرا به طور مثال عملیات معدن کاری برای استخراج طلا از صخره و ماسه را طلا کاوی می نامیم، نه ماسه کاوی یا صخره کاوی، بنابراین بهتر بود به این فرآیند نامی شبیه به «استخراج دانش از داده» می دادیم که متاسفانه بسیار طولانی است. «دانش کاوی» به عنوان یک عبارت کوتاهتر به عنوان جایگزین، نمی تواند بیانگر تاکید و اهمیت بر معدن کاری مقدار زیاد داده باشد. معدن کاری عبارتی است که بلافاصله انسان را به یاد فرآیندی می اندازد که به دنبال یافتن مجموعه کوچکی از قطعات ارزشمند از حجم بسیار زیادی از مواد خام هستیم ]2].
با توجه به مطالب عنوان شده، با اینکه این فرآیند تا حدی دارای نامگذاری ناقص است ولی این نامگذاری یعنی داده کاوی بسیار عمومیت پیدا کرده است. البته اسامی دیگری نیز برای این فرآیند پیشنهاد شده که بعضا بسیاری متفاوت با واژه داده کاوی است، نظیر: استخراج دانش از پایگاه داده، استخراج دانش[12] ، آنالیز داده / الگو، باستان شناسی داده[13]، و لایروبی داده ها[14].
کشف دانش دارای مراحل تکراری زیر است:
1- پاکسازی داده ها[15] (از بین بردن نویز و ناسازگاری داده ها).
2- یکپارچه سازی داده ها[16] (چندین منبع داده ترکیب می شوند).
3- انتخاب داده ها[17] (داده های مرتبط با آنالیزازپایگاه داده بازیابی می شوند).
4- تبدیل کردن داده ها[18] (تبدیل داده ها به فرمی که مناسب برای داده کاوی باشد مثل خلاصه سازی[19] و همسان سازی[20]
5-داده کاوی (فرایند اصلی که روالهای هوشمند برای استخراج الگوها از داده ها به کار گرفته می شوند.)
6-ارزیابی الگو[21] (برای مشخص کردن الگوهای صحیح و مورد نظربه وسیله معیارهای اندازه گیری)
7-ارائه دانش[22] (یعنی نمایش بصری، تکنیکهای بازنمایی دانش برای ارائه دانش کشف شده به کاربر استفاده می شود)]1[ .
شکل1-2: سیر تکاملی صنعت پایگاه داده
هر مرحله داده کاوی باید با کاربر یا پایگاه دانش تعامل داشته باشد. الگوهای کشف شده به کاربر ارائه می شوند و در صورت خواست او به عنوان دانش به پایگاه دانش اضافه می شوند. توجه شود که بر طبق این دیدگاه داده کاوی تنها یک مرحله از کل فرآیند است، البته به عنوان یک مرحله اساسی که الگوهای مخفی را آشکار می سازد. با توجه به مطالب عنوان شده، دراینجا تعریفی از داده کاوی ارائه می دهیم:
"داده کاوی عبارتست از فرآیند یافتن دانش از مقادیر عظیم داده های ذخیره شده در پایگاه داده، انباره داده ویا دیگر مخازن اطلاعات" [3].
بر اساس این دیدگاه یک سیستم داده کاوی به طور نمونه دارای اجزاء اصلی زیر است که شکل1-3 بیانگر معماری سیستم است.
شکل1-3: معماری یک نمونه سیستم داده کاوی
1- پایگاه داده، انباره داده یا دیگر مخازن اطلاعات: که از مجموعه ای از پایگاه داده ها، انباره داده، صفحه گسترده[23]، یا دیگر انواع مخازن اطلاعات. پاکسازی داده ها و تکنیکهای یکپارچه سازی روی این داده ها انجام می شود.
2- سرویس دهنده پایگاه داده یا انباره داده: که مسئول بازیابی داده های مرتبط بر اساس نوع درخواست داده کاوی کاربر می باشد.
3- پایگاه دانش: این پایگاه از دانش زمینه[24] تشکیل شده تا به جستجو کمک کند، یا برای ارزیابی الگوهای یافته شده از آن استفاده می شود.
4- موتور داده کاوی[25] : این موتور جزء اصلی از سیستم داده کاوی است و به طور ایدآل شامل مجموعه ای از پیمانه[26] هایی نظیر توصیف[27]، تداعی[28]، کلاسبندی[29]، آنالیزخوشه ها[30]، و آنالیز تکامل وانحراف[31]، است.
5- پیمانه ارزیابی الگو[32] : این جزء معیارهای جذابیت[33] را به کار می بندد و با پیمانهء داده کاوی تعامل می کند بدینصورت که تمرکز آن بر جستجو بین الگوهای جذاب می باشد، و از یک حد آستانه جذابیت استفاده می کند تا الگوهای کشف شده را ارزیابی کند.
6- واسط کاربرگرافیکی[34] : این پیمانه بین کاربر و سیستم داده کاوی ارتباط برقرار می کند، به کاربر اجازه می دهد تا با سیستم داده کاوی از طریق پرس وجو[35] ارتباط برقرار کند، این جزء به کاربر اجازه می دهد تا شمای پایگاه داده یا انباره داده را مرور کرده، الگوهای یافته شده را ارزیابی کرده و الگوها را در فرمهای بصری گوناگون بازنمایی کند.
با انجام فرآیند داده کاوی، دانش، ارتباط یا اطلاعات سطح بالا از پایگاه داده استخراج می شود و قابل مرور از دیدگاههای مختلف خواهد بود. دانش کشف شده در سیستم های تصمیم یار، کنترل فرآیند، مدیریت اطلاعات و پردازش پرس وجو[36] قابل استفاده خواهد بود [2].
بنابراین داده کاوی به عنوان یکی از شاخه های پیشرو در صنعت اطلاعات مورد توجه قرار گرفته و به عنوان یکی از نوید بخش ترین زمینه های توسعه بین رشته ای در صنعت اطلاعات است.
ریشه های داده کاوی در میان سه خانواده از علوم، قابل پیگیری می باشد [1]. مهمترین این خانواده ها، آمار کلاسیک[37] می باشد. بدون آمار، هیچ داده کاوی وجود نخواهد داشت، بطوریکه آمار، اساس اغلب تکنولوژی هایی می باشد که داده کاوی بر روی آنها بنا می شود. آمار کلاسیک مفاهیمی مانند تحلیل رگرسیون، توزیع استاندارد، انحراف استاندارد، واریانس، تحلیل خوشه، و فاصله های اطمینان را که همه این موارد برای مطالعه داده و ارتباط بین داده ها می باشد، را در بر می گیرد. مطمئنا تحلیل آماری کلاسیک نقش اساسی در تکنیکهای داده کاوی ایفا می کند.
دومین خانواده ای که داده کاوی به آن تعلق دارد هوش مصنوعی[38] می باشد. هوش مصنوعی که بر پایه روشهای ابتکاری می باشد و با آمار ضدیت دارد، تلاش دارد تا فرایندی مانند فکر انسان، را برای حل مسائل آماری بکار بندد. چون این رویکرد نیاز به توان محاسباتی بالایی دارد، تا اوایل دهه 1980 عملی نشد. هوش مصنوعی کاربردهای کمی را در حوزه های علمی و حکومتی پیدا کرد، اما نیاز به استفاده از کامپیوترهای بزرگ با عث شد همه افراد نتوانند از تکنیکهای ارائه شده استفاده کنند.
سومین خانواده داده کاوی، یادگیری ماشین[39] می باشد، که به مفهوم دقیقتر، اجتماع آمار و هوش مصنوعی می باشد. درحالیکه هوش مصنوعی نتوانست موفقیت تجاری کسب کند، یادگیری ماشین در بسیاری از موارد جایگزین آن گردید. از یادگیری ماشین به عنوان تحول هوش مصنوعی یاد شد، چون مخلوطی از روشهای ابتکاری هوش مصنوعی به همراه تحلیل آماری پیشرفته می باشد. یادگیری ماشین اجازه می دهد تا برنامه های کامپیوتری در مورد داده ای که آنها مطالعه می کنند، مانند برنامه هایی که تصمیمهای متفاوتی بر مبنای کیفیت داده مطالعه شده می گیرند، یادگیری داشته باشند و برای مفاهیم پایه ای آن از آمار استفاده می کنند و از الگوریتمها و روشهای ابتکاری هوش مصنوعی را برای رسیدن به هدف بهره می گیرند.
داده کاوی در بسیاری از جهات، سازگاری تکنیکهای یادگیری ماشین با کاربردهای تجاری است. بهترین توصیف از داده کاوی بوسیله اجتماع آمار، هوش مصنوعی و یادگیری ماشین بدست می آید. این تکنیکها سپس با کمک یکدیگر، برای مطالعه داده و پیدا کردن الگوهای نهفته در آنها استفاده می شوند. بعضی از کاربردهای داده کاوی به شرح زیر است:
· کاربردهای معمول تجاری: از قبیل تحلیل و مدیریت بازار، تحلیل سبد بازار، بازاریابی هدف، فهم رفتار مشتری، تحلیل و مدیریت ریسک؛
· مدیریت و کشف فریب: کشف فریب تلفنی، کشف فریبهای بیمه ای و اتومبیل، کشف حقه های کارت اعتباری، کشف تراکنشهای مشکوک مالی (پولشویی)؛
· متن کاوی[40]: پالایش متن (نامه های الکترونیکی، گروههای خبری و غیره)؛
· پزشکی: کشف ارتباط علامت و بیماری، تحلیل آرایه های DNA ، تصاویر پزشکی؛
· ورزش: آمارهای ورزشی؛
· وب کاوی[41]: پیشنهاد صفحات مرتبط، بهبود ماشینهای جستجوگر یا شخصی سازی حرکت در وب سایت؛
داده کاوی فقط یک ابزار است و نه یک عصای جادویی. داده کاوی به این معنی نیست که شما راحت به کناری بنشینید و ابزارهای داده کاوی همه کار را انجام دهد.
داده کاوی نیاز به شناخت داده ها و ابزارهای تحلیل و افراد خبره در این زمینه ها را از بین نمی برد.
داده کاوی فقط به تحلیلگران برای پیدا کردن الگوها و روابط بین داده ها کمک می کند و در این مورد نیز روابطی که یافته می شود باید به وسیله داده های واقعی دوباره بررسی و تست گردد.
معمولا داده هایی که در داده کاوی مورد استفاده قرار می گیرند از یک انبار داده استخراج می گردند و در یک پایگاه داده[43] یا مرکز داده [44]ای ویژه برای داده کاوی قرار می گیرند.
اگر داده های انتخابی جزیی از انبار داده ها باشند بسیار مفید است چون بسیاری از اعمالی که برای ساختن انباره داده ها انجام می گیرد با اعمال مقدماتی داده کاوی مشترک است و در نتیجه نیاز به انجام مجدد این اعمال وجود ندارد ، از جمله این اعمال پاکسازی داده ها می باشد.
پایگاه داده مربوط به داده کاوی می تواند جزیی از سیستم انبار داده ها باشد و یا می تواند یک پایگاه داده جدا باشد.
شکل 4 . داده ها از انباره داه ها استخراج می گردند
ولی با این حال وجود انباره داده ها برای انجام داده کاوی شرط لازم نیست و بدون آن هم
اگر داده ها دریک یا چندین پایگاه داده باشند می توان داده کاوی را انجام دهیم و بدین منظور فقط کافیست داده ها را در یک پایگاه داده جمع آوری کنیم و اعمال جامعیت داده ها و پاکسازی داده ها را روی آن انجام دهیم. این پایگاه داده جدید مثل یک مرکز داده ای عمل می کند.
شکل 5 .داده ها از چند پایگاه داده استخراج شده اند
بسیاری فکر می کنند که داده کاوی و OLAP دو چیز مشابه هستند در این بخش سعی می کنیم این مسئله را بررسی کنیم و همانطور که خواهیم دید این دو ابزار های کاملا متفاوت می باشند که می توانند همدیگر را تکمیل کنند.
OLAP جزیی از ابزارهای تصمیم گیری [45]می باشد.سیستم های سنتی گزارش گیری و پایگاه داده ای آنچه را که در پایگاه داده بود توضیح می دادند حال آنکه در OLAP هدف بررسی دلیل صحت یک فرضیه است.] 1[
بدین معنی که کاربر فرضیه ای در مورد داده ها و روابط بین آنها ارائه می کند و سپس به وسیله ابزار OLAP با انجام چند Query صحت آن فرضیه را بررسی می کند.
اما این روش برای هنگامی که داده ها بسیار حجیم بوده و تعداد پارامترها زیاد باشد نمیتواند مفید باشد چون حدس روابط بین داده ها کار سخت و بررسی صحت آن بسیار زمانبر خواهد بود.
تفاوت داده کاوی با OLAP در این است که داده کاوی برخلاف OLAP برای بررسی صحت یک الگوی فرضی استفاده نمی شود بلکه خود سعی می کند این الگوها را کشف کند.
درنتیجه داده کاوی و OLAP می توانند همدیگر را تکمیل کنند و تحلیل گر می تواند به وسیله ابزار OLAP یک سری اطلاعات کسب کند که در مرحله داده کاوی می تواند مفید باشد و همچنین الگوها و روابط کشف شده در مرحله داده کاوی می تواند درست نباشد که با اعمال تغییرات در آنها می توان به وسیله OLAP بیشتر بررسی شوند.
داده کاوی از پیشرفت هایی که در زمینه هوش مصنوعی و آمار رخ می دهد بهره می گیرد . هر دو این زمینه ها در مسائل شناسایی الگو و طبقه بندی داده ها کار می کنند و بالتبع در داده کاوی استفاده مستقیم خواهند داشت. و هر دو گروه در شناخت و استفاده از شبکه های عصبی و درخت های تصمیم گیری فعال می باشند.
داده کاوی جانشین تکنیک های آماری سابق نمی باشد بلکه وارث آنها بوده و در واقع تغییر و گسترش تکنیک های سابق برای متناسب ساز ی آنها با حجم داده ها و مسائل امروزی می باشد. تکنیک های کلاسیک برای داده های محدود و مسائل ساده مناسب بوده اند حال آنکه با پیچیده شدن مسائل و رشد روزافزون داده ها نیاز به تغییر آنها کاملا طبیعی است.به عبارت دیگر داده کاوی ترکیب تکنیک های کلاسیک با الگوریتم های جدید مثل شبکه های عصبی و درخت تصمیم گیری می باشد.
مهمترین نکته این است که داده کاوی راهکاری است برای مسائل تجاری امروز به کمک تکنیک های آماری و هوش مصنوعی برای افراد حرفه ای که قصد دارند یک مدل پیش بینی ایجاد نمایند.][3
قبل از اینکه بتوان روی مجموعه ای از داده ها ،داده کاوی انجام بدهیم و یک مدل پیش بینی مناسب ابجاد کنیم ، باید بتوان داده ها را به خوبی شناخت که برا ی شروع این کار می توان از پارامترهایی مثل میانگین , انحراف معیار و.... استفاده کنیم.
ابزارهای تصویرسازی داده ها و گراف سازی برای شناخت داده ها بسیار مفید می باشند و نقش آنها در آماده سازی داده ها بسیار مفید و غیر قابل انکار است ، مثلا با استفاده از این ابزار می توان توزیع مقادیر مختلف داده ها را در یک نمودار مشاهده کرد و میزان داده های دارای خطا را به طور تقریبی حدس زد.
مهمترین مشکل این ابزار این است که معمولا تحلیل ها دارای تعداد زیادی پارامتر هستند که به هم مربوطند و باید رابطه این پارامترها را که چند بعدی می باشد در دو بعد نمایش دهند که این کار اگر هم عملی باشد برای استفاده از آنها نیاز به افراد خبره می باشد.
هدف از خوشه بندی این است که داده های موجود را به چند گروه تقسیم کنند و در این تقسیم بندی داده های گروه های مختلف باید حداکثر تفاوت ممکن را به هم داشته باشند و داده های موجود در یک گروه باید بسیار به هم شبیه باشند .
برخلاف کلاس بندی (که در ادامه خواهیم دید) در خوشه بندی ، گروه ها از قبل مشخص نمی باشند و همچنین معلوم نیست که بر حسب کدام خصوصیات گروه بندی صورت می گیرد. درنتیجه پس از انجام خوشه بندی باید یک فرد خبره خوشه های ایجاد شده را تفسیر کند و در بعضی مواقع لازم است که پس از بررسی خوشه ها بعضی از پارامترهایی که در خوشه بندی در نظر گرفته شده اند ولی بی ربط بوده یا اهمیت چندانی ندارند حذف شده و جریان خوشه بندی از اول صورت گیرد. ]1[
پس از اینکه داده ها به چند گروه منطقی و توجیه پذیر تقسیم شدند از این تقسیم بندی می توان برای کسب اطلاعات در مورد داده ها یا تقسیم داده ها جدید استفاده کنیم.
از مهمترین الگوریتم هایی که برای خوشه بندی استفاده می شوند می توان Kohnen و الگوریتم K-means را نام برد.
تحلیل داده ها یکی از روش های توصیف داده هاست که به کمک آن داده ها را بررسی کرده و روابط بین مقادیر موجود در بانک اطلاعاتی را کشف می کنیم.از مهمترین راههای تحلیل لینک کشف وابستگی [48]و کشف ترتیب [49]می باشد.
منظور از کشف وابستگی یافتن قوانینی در مورد مورادی است که با هم اتفاق می افتند مثلا اجناسی که در یک فروشگاه احتمال خرید همزمان آنها زیاد است.
کشف ترتیب نیر بسیار مشابه می باشد ولی پارامتر زمان نیز در آن دخیل می باشد.
وابستگی ها به صورت A->B نمایش داده می شوند که به A مقدم و به B موخر یا نتیجه گفته می شود.مثلا اگر یک قانون به صورت زیر داشته باشیم :
" اگر افراد چکش بخرند آنگاه آنها میخ خواهند خرید “
در این قانون مقدم خرید چکش و نتیجه خرید میخ می باشد. ]4[
در مسائل classification هدف شناسایی ویژگیهایی است که گروهی را که هر مورد به آن تعلق دارد را نشان دهند. از این الگو میتوان هم برای فهم دادههای موجود و هم پیشبینی نحوه رفتار مواد جدید استفاده کرد.
دادهکاوی مدلهای classification را با بررسی دادههای دستهبندی شده قبلی ایجاد میکند و یک الگوی پیشبینی کننده را بصورت استقرایی مییابند. این موارد موجود ممکن است از یک پایگاه داده تاریخی آمده باشند. ]2[
Regression از مقادیر موجود برای پیشبینی مقادیر دیگر استفاده میکند. در سادهترین فرم، regression از تکنیکهای آماری استاندارد مانند linear regression استفاده میکند. متاسفانه، بسیاری مسائل دنیای واقع تصویرخطی سادهای از مقادیر قبلی نیستند. بناراین تکنیکهای پیچیدهتری(logistic regression، درختهای تصمیم، یا شبکههای عصبی) ممکن است برای پیشبینی مورد نیاز باشند.
انواع مدل یکسانی را میتوان هم برای regression و هم برای classification استفاده کرد. برای مثال الگوریتم درخت تصمیم CART را میتوان هم برای ساخت درختهای classification و هم درختهای regression استفاده کرد. شبکههای عصبی را نیز میتوان برای هر دو مورد استفاده کرد ]3[.
پیشبینی های Time series مقادیر ناشناخته آینده را براساس یک سری از پیشبینی گرهای متغیر با زمان پیشبینی میکنند. و مانند regression، از نتایج دانسته شده برای راهنمایی پیشبینی خود استفاده میکنند. مدلها باید خصوصیات متمایز زمان را در نظر گیرند و بویژه سلسلهمراتب دورهها را.
در این بخش قصد داریم مهمترین الگوریتم ها و مدل های داده کاوی را بررسی کنیم. بسیاری از محصولات تجاری داده کاوی از مجموعه از این الگوریتم ها استفاده می کنند و معمولا هر کدام آنها در یک بخش خاص قدرت دارند وبرای استفاده از یکی از آنها باید بررسی های لازم در جهت انتخاب متناسب ترین محصول توسط گروه متخصص در نظر گرفته شود.
نکته مهم دیگر این است که در بین این الگوریتم ها و مدل ها ، بهترین وجود ندارد و با توجه به داده ها و کارایی مورد نظر باید مدل انتخاب گردد.
شبکه های عصبی از پرکاربردترین و عملی ترین روش های مدل سازی مسائل پیچیده و بزرگ که شامل صدها متغیر هستند می باشد. شبکه های عصبی می توانند برای مسائل کلاس بندی (که خروجی یک کلاس است) یا مسائل رگرسیون (که خروجی یک مقدار عددی است) استفاده شوند.
هر شبکه عصبی شامل یک لایه ورودی [51]می باشد که هر گره در این لایه معادل یکی از متغیرهای پیش بینی می باشد. گره های موجود در لایه میانی وصل می شوند به تعدادی گره در لایه نهان[52]. هر گره ورودی به همه گره های لایه نهان وصل می شود.
گره های موجود در لایه نهان می توانند به گره های یک لایه نهان دیگر وصل شوند یا می توانند به لایه خروجی [53]وصل شوند.
لایه خروجی شامل یک یا چند متغیر خروجی می باشد. ]2[
شبکه عصبی با یک لایه نهان
هر یال که بین نود های X,Y می باشد دارای یک وزن است که با Wx,y نمایش داده می شود. این وزن ها در محاسبات لایه های میانی استفاده می شوند و طرز استفاده آنها به این صورت است که هر نود در لایه های میانی (لایه های غیر از لایه اول) دارای چند ورودی از چند یال مختف می باشدکه همانطور که گفته شد هر کدام یک وزن خاص دارند.
هر نود لایه میانی میزان هر ورودی را در وزن یال مربوطه آن ضرب می کند و حاصل این ضرب ها را با هم جمع می کند و سپس یک تابع از پیش تعیین شده (تابع فعال سازی) روی این حاصل اعمال می کند و نتیجه را به عنوان خروجی به نودهای لایه بعد می دهد.
وزن یال ها پارامترهای ناشناخته ای هستند که توسط تابع آموزش [54]و داده های آموزشی که به سیستم داده می شود تعیین می گردند.
تعداد گره ها و تعداد لایه های نهان و نحوه وصل شدن گره ها به یکدیگر معماری (توپولوژی) شبکه عصبی را مشخص می کند. کاربر یا نرم افزاری که شبکه عصبی را طراحی می کند باید تعداد نودها ، تعداد لایه های نهان ، تابع فعال سازی و محدودیت های مربوط به وزن یال ها را مشخص کند.
Wx,y وزن یال بین X و Y است.
از مهمترین انواع شبکه های عصبی Feed-Forward Backpropagation می باشد که در اینجا به اختصار آنرا توضیح می دهیم.
Feed-Forward به معنی این است که مقدار پارامتر خروجی براساس پارامترهای ورودی و یک سری وزن های اولیه تعیین می گردد. مقادیر ورودی با هم ترکیب شده و در لایه های نهان استفاده می شوند و مقادیر این لایه های نهان نیز برای محاسبه مقادیر خروجی ترکیب می شوند.
Backpropagation : خطای خروجی با مقایسه مقدار خروجی با مقدار مد نظر در داده های آزمایشی محاسبه می گردد و این مقدار برای تصحیح شبکه و تغییر وزن یال ها استفاده می گردد و از گره خروجی شروع شده و به عقب محاسبات ادامه می یابد.
این عمل برای هر رکورد موجود در بانک اطلاعاتی تکرار می گردد.
به هر بار اجرای این الگوریتم برای تمام داده های موجود در بانک یک دوره [55]گفته می شود. این دوره ها آنقدر ادامه می یابد که دیگر مقدار خطا تغییر نکند.
از آنجایی که تعداد پارامترها در شبکه های عصبی زیاد می باشد محاسبات این شبکه ها می تواند وقت گیر باشد. ولی اگر این شبکه ها به مدت کافی اجرا گردند معمولا موفقیت آمیز خواهند بود. مشکل دیگری که ممکن است به وجود بیاید Overfitting می باشد و آن بدین صورت است که که شبکه فقط روی داده ها آموزشی خوب کار می کند و برای سایر مجموعه داده ها مناسب نمی باشد. برای رفع این مشکل ما باید بدانیم چه زمانی آموزش شبکه را متوقف کنیم.یکی از راه ها این است که شبکه را علاوه بر داده های آزمایشی روی داده های تست نیز مرتبا اجرا کنیم و جریان تغییر خطا را در آنها بررسی کنیم.اگر در این داده ها به جایی رسیدیم که میزان خطا رو به افزایش بود حتی اگر خطا در داده های آزمایشی همچنان رو به کاهش باشد آموزش را متوقف کنیم.
از آنجایی که پارامترهای شبکه های عصبی زیاد است یک خروجی خاص می تواند با مجموعه های مختلفی از مقادیر پارامترها ایجاد گردد درنتیجه این پارامترها مثل وزن یالها قابل تفسیر نبوده و معنی خاصی نمی دهند .
یکی از مهمترین فواید شبکه های عصبی قابلیت اجرای آنها روی کامپیوترهای موازی می باشد.
درختهای تصمیم روشی برای نمایش یک سری از قوانین هستند که منتهی به یک رده یا مقدار میشوند. برای مثال، میخواهیم متقاضیان وام را به دارندگان ریسک اعتبار خوب و بد تقسیم کنیم. شکل یک درخت تصمیم را که این مسئله را حل میکد نشان میدهد و همه مؤلفههای اساسی یک یک درخت تصمیم در آن نشان داده شده است : نود تصمیم، شاخهها و برگها.]1[
درخت تصمیم گیری
براساس الگوریتم، ممکن است دو یا تعداد بیشتری شاخه داشته باشد. برای مثال، CART درختانی با تنها دو شاخه در هر نود ایجاد میکند. هر شاخه منجر به نود تصمیم دیگر یا یک نود برگ میشود. با پیمایش یک درخت تصمیم از ریشه به پایین به یک مورد یک رده یا مقدار نسبت میدهیم. هر نود از دادههای یک مورد برای تصمیمگیری درباره آن انشعاب استفاده میکند.
درختهای تصمیم از طریق جداسازی متوالی دادهها به گروههای مجزا ساخته میشوند و هدف در این فرآیند افزایش فاصله بین گروهها در هر جداسازی است.
یکی از تفاوتها بین متدهای ساخت درخت تصمیم اینستکه این فاصله چگونه اندازهگیری میشود. درختهای تصمیمی که برای پیشبینی متغیرهای دستهای استفاده میشوند، درختهای classification نامیده میشوند زیرا نمونهها را در دستهها یا ردهها قرار میدهند. درختهای تصمیمی که برای پیشبینی متغیرهای پیوسته استفاده میشوند درختهای regression نامیده میشوند.
هر مسیر در درخت تصمیم تا یک برگ معمولا قابل فهم است. از این لحاظ یک درخت تصمیم میتواند پیشبینیهای خود را توضیح دهد، که یک مزیت مهم است. با این حال این وضوح ممکن است گمراهکننده باشد. برای مثال، جداسازی های سخت در درختهای تصمیم دقتی را نشان میدهند که کمتر در واقعیت نمود دارند. (چرا باید کسی که حقوق او 400001 است از نظر ریسک اعتبار خوب باشد درحالیکه کسی که حقوقش 40000 است بد باشد. بعلاوه، از آنجاکه چندین درخت میتوانند دادههای مشابهای را با دقت مشابه نشان دهند، چه تفسیری ممکن است از قوانین شود؟
درختهای تصمیم تعداد دفعات کمی از دادهها گذر میکنند(برای هر سطح درخت حداکثر یک مرتبه) و با متغیرهای پیشبینیکننده زیاد بخوبی کار میکنند. درنتیجه، مدلها بسرعت ساخته میشوند، که آنها را برای مجموعهداده های بسیار مناسب میسازد. اگر به درخت اجازه دهیم بدون محدودیت رشد کند زمان ساخت بیشتری صرف میشود که غیرهوشمندانه است، اما مسئله مهمتر اینستکه با دادهها overfit میشوند. اندازه درختها را میتوان از طریق قوانین توقف کنترل کرد. یک قانون معمول توقف محدود کردن عمق رشد درخت است.
راه دیگر برای توقف هرس کردن درخت است. درخت میتواند تا اندازه نهایی گسترش یابد، سپس با استفاده از روشهای اکتشافی توکار یا با مداخله کاربر، درخت به کوچکترین اندازهای که دقت در آن از دست نرود کاهش مییابد.
یک اشکال معمول درختهای تصمیم اینستکه آنها تقسیمکردن را براساس یک الگوریتم حریصانه انجام میدهند که در آن تصمیمگیری اینکه براساس کدام متغیر تقسیم انجام شود، اثرات این تقسیم در تقسیمهای آینده را درنظر نمیگیرد.
بعلاوه الگوریتمهایی که برای تقسیم استفاده میشوند، معمولا تکمتغیری هستند: یعنی تنها یک متغیر را در هر زمان در نظر میگیرند. درحالیکه این یکی از دلایل ساخت سری مدل است، تشخیص رابطه بین متغیرهای پیشبینی کننده را سختتر میکند.
در میانههای دهه 80 یکی از مخترعین CART ، ـJerome H. Friedman، متدی را برای برطرفکردن این کاستیها توسعه داد.]2[
کاستیهای اساسی که او قصد برطرف کردن آنها را داشت عبارتند از :
به این دلیل او الگوریتم MARS را توسعه داد. ایده اصلی MARS نسبتا ساده است، درحالیکه خود الگوریتم نسبتا پیچیده است. بسیار ساده ایده عبارت است از :
متأسفانه این به معنی اینست که MARS ساختار درختی CART را ندارد و نمیتواند قوانینی را ایجاد کند. از طرف دیگر، MARS به صورت خودکار مهمترین متغیرهای پیشبینی کننده و همچنین تعامل میان آنها را مییابد. MARS همچنین وابستگی میان پاسخ و هر پیشبینی کننده را معین میکند. نتیجه ابزار رگرسیون اتوماتیک، خودکار و step-wise است.
MARS، مانند بیشتر الگوریتمهای شبکههای عصبی و درخت تصمیم، تمایل به overfit شدن برای دادههای آموزشدهنده دارد. که میتوان آنرا به دو طریق درست کرد. اول اینکه، cross validation بصورت دستی انجام شود و الگوریتم برای تولید پیشبینی خوب روی مجوعه تست تنظیم شود. دوم اینکه، پارامترهای تنظیم متفاوتی در خود الگوریتم وجود دارد که cross validation درونی را هدایت میکند.
استنتاج قوانین متدی برای تولید مجموعهای از قوانین است که موارد را دستهبندی میکند. اگرچه درختهای تصمیم میتوانند مجموعهای از قوانین را ایجاد کند، متدهای استنتاج قوانین مجموعهای از قوانین مستقل را ایجاد میکند. که لزوما یک درخت را ایجاد نمیکنند. از آنجا که استنتاجگر قوانین اجباری به تقسیم در هر سطح ندارد، و میتواند به آینده بنگرد، قادر است الگوهای متفاوت و گاها بهتری برای ردهبندی بیابد. برخلاف درختان، قوانین ایجاد شده ممکن است همه موارد ممکن را نپوشاند. همچنی« برخلاف درختان، قوانین ممکن است در پیشبینی متعارض باشند، که در هر مورد باید قانونی را برای دنبال کردن انتخاب کرد. یک روش برای حل این تعارضات انتصاب یک میزان اطمینان به هر قانون است و استفاده از قانونی است که میزان اطمینان بالاتری دارد. ]3[
هنگام تلاش برای حل مسائل جدید، افراد معمولا به راهحل های مسائل مشابه که قبلا حل شدهاند مراجعه میکنند. K-nearest neighbor(k-NN) یک تکنیک دستهبندی است که از نسخهای از این متد استفاده میکند. در این روش تصمیمگیری اینکه یک مورد جدید در کدام دسته قرار گیرد با بررسی تعدادی(k) از شبیهترین موارد یا همسایهها انجام میشود. تعداد موارد برای هر کلاس شمرده میشوند، و مورد جدید به دستهای که تعداد بیشتری از همسایهها به آن تعلق دارند نسبت داده میشود.]2[
محدوده همسایگی (بیستر همسایه ها در دسته X قرار گرفته اند)
اولین مورد برای بکاربردن k-NN یافتن معیاری برای فاصله بین صفات در دادهها و محاسبه آن است. در حالیکه این عمل برای دادههای عددی آسان است، متغیرهای دستهای نیاز به برخورد خاصی دارند. هنگامیکه فاصله بین مواد مختلف را توانستیم اندازه گیریم، میتوانیم از مجموعه مواردی که قبلا دستهبندی شدهاند را بعنوان پایه دستهبندی موارد جدید استفاده کنیم، فاصله همسایگی را تعیین کنیم، و تعیین کینم که خود همسایهها را چگونه بشماریم.
K-NN بار محاسباتی زیادی را روی کامپیوتر قرار میدهد زیرا زمان محاسبه بصورت فاکتوریلی از تمام نقاط افزایش مییابد. درحالیکه بکابردن درخت تصمیم یا شبکه عصبی برای یک مورد جدید فرایند سریعی است، K-NN نیاز به محاسبه جدیدی برای هر مورد جدید دارد. برای افزایش سرعت K-NN معمولا تمام دادهها در حافظه نگهداری میشوند.
فهم مدلهای K-NN هنگامیکه تعداد متغیرهای پیشبینی کننده کم است بسیار ساده است. آنها همچنین برای ساخت مدلهای شامل انواع داده غیر استاندارد هستند، مانند متن بسیار مفیدند. تنها نیاز برای انواع داده جدید وجود معیار مناسب است.
رگرسیون منطقی یک حالت عمومی تر از رگرسیون خطی می باشد.قبلا این روش برای پیش بینی مقادیر باینری یا متغیرهای دارای چند مقدار گسسته (کلاس) استفاده می شد. از آنجایی که مقادیر مورد نظر برای پیش بینی مقادیر گسسته می باشند نمی توان آنرا به روش رگرسیون خطی مدلسازی کرد برای این منظور این متغیرهای گسسته را به روشی تبدیل به متغیر عددی و پیوسته می کنیم وبرای این منظور مقدار لگاریتم احتمال متغیر مربوطه را در نظر می گیریم و برای این منظور احتمال پیشامد را بدین صورت در نظر می گیریم :
احتمال اتفاق نیفتادن پیشامد/ احتمال اتفاق افتادن پیشامد
و تفسیر این نسبت مانند تفسیری است که در بسیاری از مکالمات روزمره در مورد مسابقات یا شرط بندی ها یه موارد مشابه به کار می رود .مثلا وقتی می گوییم شانس بردن یک تیم در مسابقه 3 به 1 است در واقع از همین نسبت استفاده کرده و معنی آن این است که احتمال برد آن تیم 75% است.
وقتی که ما موفق شدیم لگاریتم احتمال مورد نظر را بدست آوریم با اعمال لگاریتم معکوس می توان نسبت مورد نظر و از روی آن کلاس مورد نظر را مشخص نمود.]3[
این روش از قدیمی ترین روش های ریاضی وار گروه بندی داده ها می باشد که برای اولین بار در سال 1936 توسط فیشر استفاده گردید. روش کار بدین صورت است که داده ها را مانند داده های چند بعدی بررسی کرده و بین داده ها مرزهایی ایجاد می کنند (برای داده ها دو بعدی خط جدا کننده، برای داده های سه بعدی سطح جدا کننده و ..) که این مرزها مشخص کننده کلاس های مختلف می باشند و بعد برای مشخص کردن کلاس مربوط به داده های جدید فقط باید محل قرارگیری آن را مشخص کنیم.
این روش از ساده ترین و قابل رشدترین روش های کلاس بندی می باشد که در گذشته بسیار استفاده می شد.]1[
این روش به سه دلیل محبوبیت خود را از دست داد :اول اینکه این روش فرض می کند همه متغیرهای پیش بینی به صورت نرمال توزیع شده اند که در بسیاری از موارد صحت ندارد . دوم اینکه داده هایی که به صورت عددی نمی باشند مثل رنگها در این روش قابل استفاده نمی باشند. سوم اینکه در این روش فرض می شود که مرزهای جدا کننده داده ها به صورت اشکال هندسی خطی مثل خط یا سطح می باشند حال اینکه این فرض همیشه صحت ندارد.
نسخه های اخیر تحلیل تفکیکی بعضی از این مشکلات را رفع کرده اند به این طریق اجازه می دهند مرزهای جدا کننده بیشتر از درجه 2 نیز باشند که باعث بهبود کارایی و حساسیت در بسیاری از موارد می گردد.
این روش ها در واقع بسطی بر روش های رگرسیون خطی و رگرسیون منطقی می باشند. به این دلیل به این روش افزودنی می گویند که فرض می کنیم می توانیم مدل را به صورت مجموع چند تابع غیر خطی ( هر تابع برای یک متغیر پیش بینی کننده) بنویسیم. GAM می تواند هم به منظور رگرسیون و هم به منظور کلاس بندی داده ها استفاده گردد. این ویژگی غیر خطی بودن توابع باعث می شود که این روش نسبت به روشهای رگرسیون خطی بهتر باشد .
در این روش ها مبنی کار این است که الگوریتم پیش بینی را چندین بار و هر بار با داده های آموزشی متفاوت (که با توجه به اجرای قبلی انتخاب می شوند) اجرا کنیم و در نهایت آن جوابی که بیشتر تکرار شده را انتخاب کنیم. این روش اگر چه وقت گیر است ولی جواب های آن مطمئن تر خواهند بود. این روش اولین بار در سال 1996 استفاده شد و در این روزها با توجه به افزایش قدرت محاسباتی کامپیوترها بر مقبولیت آن افزوده گشته است.]4[
هدف دادهکاوی تولید دانش جدیدی است که کاربر بتواند از آن استفاده کند. این هدف با ساخت مدلی از دنیای واقع براساس دادههای جمعآوری شده از منابع متفاوت بدست میآید. نتیجه ساخت این مدل توصیفی از الگوها و روابط دادههاست که میتوان آنرا برای پیشبینی استفاده کرد. سلسه انتخابهایی که قبل از آغاز باید انجام شود به این شرح است :
· هدف تجاری
· نوع پیشبینی
· نوع مدل
· الگوریتم
· محصول
در بالاترین سطح هدف تجاری قرار دارد: هف نهایی از کاوش دادهها چیست؟ برای مثال، جستجوی الگوها در دادهها ممکن است برای حفظ مشتریهای خوب باشد، که ممکن است مدلی برای سودبخشی مشتریها و مدل دومی برای شناسایی مشتریهایی که ممکن از دست دهیم میسازیم. اطلاع از اهداف و نیازهای سازمان ما را در فرموله کردن هدف سازمان یاری میرساند.
مرحله بعدی تصمیمگیری درباره نوع پیشبینی مناسب است: (1) classification : پیشبینی اینکه یک مورد در کدام گروه یا رده قرار میگیرد. یا (2) regression : پیشبینی اینکه یک متغیر عددی چه مقداری خواهد داشت.
مرحله بعدی انتخاب نوع مدل است: یک شبکه عصبی برای انجام regression ،و یک درخت تصمیم برای classification. همچنین روشهای مرسوم آماری برای مانند logistic regression، discriminant analysis، و یا مدلهای خطی عمومی وجود دارد.
الگوریتمهای بسیاری برای ساخت مدلها وجود دارد. میتوان یک شبکه عصبی را با backpropagation، یا توابع radial bias ساخت. برای درخت تصمیم، میتوان از میان CART، C5.0، Quest، و یا CHAID انتخاب کرد.
هنگام انتخاب یک محصول دادهکاوی، باید آگاه بود که معمولا پیادهسازیهای متفاوتی از یک الگوریتم دارند. این تفاوتهای پیادهسازی میتواند بر ویژگیهای عملیاتی مانند استفاده از حافظه و ذخیره داده و همچنین ویژگیهای کارایی مانند سرعت و دقت اثر گذارند.
در مدلهای پیشگویانه، مقادیر یا ردههایی که ما پیشبینی میکنیم متغیرهای پاسخ، وابسته، یا هدف نامیده میشوند. مقادیری که برای پیشبینی استفاده میشوند متغیرهای مستقل یا پیشبینیکننده نامیده میشوند.
مدلهای پیشگویانه با استفاده از دادههایی که مقادیر متغیرهای پاسخ برای آنها از قبل دانسته شده است ساخته یا آموزش داده میشوند. این نحوه آموزش supervised learning نامیده میشود، زیرا که مقادیر محاسبه شده یا تخمینزده شده با نتایج معلومی مقایسه میشوند.( در مقابل، تکنیکهای توصیفی مانند clustering، unsupervised learning نامیده میشوند زیرا که هیچ نتیجه از پیش معلومی برای راهنمایی الگوریتم وجود ندارد.)
[1] Data Mining
[2] Data warehouses
[3] Knowledge-based system
[4] Knowledge-acquisition
[5] Information retrieval
[6] High-performance computing
[7] Data visualization
[8] Knowledge Discovery in Database
[9] Secondary Data Analysis
[10] Knowledge base
[11] Mining
[12] Knowledge extraction
[13] Data archaeology
[14] Data dredging
[15] Data cleaning
[16] Data integration
[17] Data selection
[18] Data transformation
[19] Summary
[20] Aggregation
[21] Pattern evaluation
[22] Knowledge presentation
[23] Spread sheets
[24] Domain knowledge
[25] Data mining engine
[26] Module
[27] Characterization
[28] Association
[29] Classification
[30] Cluster analysis
[31] Evolution and deviation analysis
[32] Pattern evaluation module
[33] Interesting measures
[34] Graphical User Interface (GUI)
[35] Query
[36] Query processing
[37] Classic Statistics
[38] Artificial Intelligence
[39] Machine Learning
[40] Text Mining
[41] Web Mining
[42] Data warehouse
[43] Database
[44] Data mart
[45] Decision Support Tools
[46] Clustering
[47] Link Analysis
[48] Association discovery
[49] Sequence discovery
[50] Neural Networks
[51] Input Layer
[52] Hidden Layer
[53] Output Layer
[54] Training method
[55] Epoch
[56] Logistic regression
[57] Discriminant analysis
[58] Generalized Additive Models