خلاصه پروژه Data Mining ( داده کاوی )
پروژه کارشناسی رشته نرم افزار
چکیده:
در دو دهه قبل تواناییهای فنی بشر برای تولید و جمعآوری دادهها به سرعت افزایش یافته است. عواملی نظیر استفاده گسترده از بارکد برای تولیدات تجاری، به خدمت گرفتن کامپیوتر در کسبوکار، علوم، خدمات دولتی و پیشرفت در وسائل جمعآوری داده، از اسکن کردن متون و تصاویر تا سیستمهای سنجش از دور ماهوارهای، در این تغییرات نقش مهمی دارند.
بطور کلی استفاده همگانی از وب و اینترنت به عنوان یک سیستم اطلاع رسانی جهانی ما را مواجه با حجم زیادی از داده و اطلاعات میکند. این رشد انفجاری در دادههای ذخیره شده، نیاز مبرم وجود تکنولوژیهای جدید و ابزارهای خودکاری را ایجاد کرده که به صورت هوشمند به انسان یاری رسانند تا این حجم زیاد داده را به اطلاعات و دانش تبدیل کند. دادهکاوی به عنوان یک راه حل برای این مسائل مطرح می باشد. در یک تعریف غیر رسمی دادهکاوی فرآیندی است، خودکار برای استخراج الگوهایی که دانش را بازنمایی میکنند، که این دانش به صورت ضمنی در پایگاه دادههای عظیم، انبارهداده[1] و دیگر مخازن بزرگ اطلاعات، ذخیره شده است.
به لحاظ اینکه در چند سال اخیر مبحث دادهکاوی و اکتشاف دانش موضوع بسیاری از مقالات و کنفرانسها قرار گرفته و نرمافزارهای آن در بازار به شدت مورد توجه قرار گرفته، از اینرو در مقاله سعی بر آن شده تا گذری بر آن داشته باشیم.
در این مقاله درفصل مروری بر داده کاوی خواهیم داشت . که به طور عمده به تاریخچه ، تعاریف، کاربردها وارتباط آن با انبار داده و OLAP خواهیم پرداخت. در پایان فصل مراحل فرایند کشف دانش از پایگاه دادهها را ذکر کردیم که دادهکاوی یکی از مراحل آن است.
در فصل 2 یکی از شیوههای دادهکاوی که از سبد خرید گرفته شده است توضیح داده شده است . در این فصل به شرح قوانین ارتباطی خواهیم پرداخت که در آن بعد از دستهبندی الگوریتمها ، الگوریتم Apriori ( که یک الگوریتم پایه در این زمینه است ) و الگوریتم FP-Growth ( یک الگوریتم جدید میباشد) را با شرح یک مثال توضیح میدهیم و در آخر آن دو را با هم مقایسه میکنیم .
در فصل 3 مباحث وبکاوی و متنکاوی را که در بسیاری از مراجع جزء کاربردهای دادهکاوی به حساب میآید شرح داده خواهد شد.
فصل 1
مروری بر دادهکاوی
امروزه با گسترش سیستمهای پایگاهی و حجم بالای دادههای ذخیره شده در این سیستمها، نیاز به ابزاری است تا بتوان دادههای ذخیره شده را پردازش کرد و اطلاعات حاصل از این پردازش را در اختیار کاربران قرار داد.
با استفاده از پرسشهای ساده در SQL و ابزارهای گوناگون گزارشگیری معمولی، میتوان اطلاعاتی را در اختیار کاربران قرار داد تا بتوانند به نتیجهگیری در مورد دادهها و روابط منطقی میان آنها بپردازند. امّا وقتی که حجم دادهها بالا باشد، کاربران هرچند زبردست و باتجربه باشند نمیتوانند الگوها مفید را در میان حجم انبوه دادهها تشخیص دهند و یا اگر قادر به این کار هم باشند، هزینه عملیات از نظر نیروی انسانی و مادی بسیار بالا است. از سوی دیگر، کاربران معمولاً فرضیهای را مطرح میکنند و سپس براساس گزارشات مشاهده شده به اثبات یا رد فرضیه میپردازند، در حالی که امروزه نیاز به روشهایی است که اصطلاحاً به کشف دانش [1] بپردازند یعنی با کمترین دخالت کاربر و بصورت خودکار الگوها و رابطههای منطقی را بیان نمایند.
داده کاوی[2] یکی از مهمترین این روشها است که به الگوهای مفید در دادهها با حداقل دخالت کاربران شناخته میشوند واطلاعاتی را در اختیار کاربران و تحلیل گران قرار میدهند تا براساس آن تصمیمات مهم و حیاتی در سازمانها اتخاذ شوند.
اصطلاح داده کاوی زمانی بکار برده میشود که با حجم بزرگی از دادهها، در حد مگا یا ترابایت، مواجه باشیم. در تمامی منابع دادهکاوی بر این مطلب تأکید شده است. هرچه حجم دادهها بیشتر و روابط آنها پیچیدهتر باشد دسترسی به اطلاعات نهفته در میان دادهها مشکلتر میشود و نقش دادهکاوی بعنوان یکی از روشهای کشف دانش، روشنتر میگردد.
داده کاوی بطور همزمان از چندین رشته علمی بهره میبرد نظیر: تکنولوژی پایگاه داده، هوش مصنوعی، یادگیری ماشین، شبکههای عصبی، آمار، الگو، سیستمهای مبتنی بر دانش[3]، حصول دانش[4]، بازیابی اطلاعات[5]، محاسبات سرعت بالا[6] و بازنمایی بصری داده[7].
1-1: تعریف دادهکاوی:
اصطلاح Data Mining همانطور که از ترجمه آن به دادهکاوی مشخص میشود، به مفهوم استخراج اطلاعات نهان و یا الگوها و روابط مشخص در حجم زیادی از دادههای یک یا چند بانک اطلاعاتی بزرگ است. اطلاعات استخراج شده در تعریف Data Mining بطور ضمنی به معنی اطلاعاتی است که بر اساس آن بتوان به نتایجی دست یافت که بطور معمول ملموس نیستند. در این تعریف بر بزرگ بودن بانکهای اطلاعاتی و یا حجم زیاد دادههای مورد پردازش تاکید میشود. علت این است که از نظر آماری و تئوری اطلاعات، تجزیه و تحلیل دادهها و یا آنطور که در این اصطلاح تعبیر میشود، کاوش در حجم کم دادههای یک بانک به نتایج قابل قبولی منجر نمیشود. به کمک ابزارهای Data Mining میتوان مقادیر متغیرهای را پیشبینی و توصیف نمود. این ابزارها در فرایندهای تصمیمگیری متکی بر اطلاعات و دانش [8] کاربر فراوان دارند و فعالیتهای تجاری نوین و مدرن امروزه به شدت بر آن متکی است. فرایند Data Mining را نباید با روشهای متداول آنالیز داده و اطلاعات و سیستمهای تصمیمگیری معمولی یکی دانست. به کمک روشهای Data Mining میتوان به پرسشهایی (عمدتاً تجاری) پاسخ گفت که بطور سنتی عملاً امکان وجود ندارد.
در متون آکادمیک تعاریف گوناگونی برای داده کاوی ارائه شدهاند. در برخی از این تعاریف دادهکاوی در حد ابزاری که کاربران را قادر به ارتباط مستقیم با حجم عظیم دادهها میسازد معرفی گردیده است و در برخی دیگر، تعاریف دقیقتر که در آنها به کاوش در دادهها توجه میشود موجود است. برخی از این تعاریف عبارتند از:
دادهکاوی عبارت است از فرایند استخراج اطلاعات معتبر، از پیش ناشناخته، قابل فهم و قابل اعتماد از پایگاه دادههای بزرگ و استفاده از آن در تصمیمگیری در فعالیتهای تجاری مهم.
اصطلاح دادهکاوی به فرایند نیم خودکار تجزیه و تحلیل پایگاه دادههای بزرگ به منظور یافتن الگوهای مفید اطلاق میشود.
دادهکاوی یعنی جستجو در یک پایگاه دادهها برای یافتن الگوهایی میان دادهها.
دادهکاوی عبارتست از فرایند یافتن دانش از مقادیر عظیم دادههای ذخیره شده در پایگاه داده، انباره داده و یا دیگر مخازن اطلاعات.
دادهکاوی یعنی استخراج دانش کلان، قابل استناد و جدید از پایگاه دادههای بزرگ.
دادهکاوی یعنی تجزیه و تحلیل مجموعه دادههای قابل مشاهده برای یافتن روابط مطمئن بین دادهها.
همانگونه که در تعاریف گوناگون دادهکاوی مشاهده میشود، تقریباً در تمامی تعاریف به مفاهیمی چون استخراج دانش، تحلیل و یافتن بین دادهها اشاره شده است.
واژه های «دادهکاوی» و «کشف دانش در پایگاه داده»[9] اغلب بصورت مترادف یکدیگر مورد استفاده قرار میگیرد. کشف دانش در پایگاه داده فرایند شناسایی درست، ساده، مفید و نهایتا الگوها و مدلهای قابل فهم در دادهها میباشد. دادهکاوی، مرحلهای از فرایند کشف دانش میباشد و شامل الگوریتمهای مخصوص دادهکاوی است، بطوریکه تحت محدودیتهای مؤثر محاسباتی قابل قبول، الگوها و یا مدلها را در داده کشف میکند.
دادهها اغلب حجیم امّا بدون ارزش میباشند، داده به تنهایی قابل استفاده نیست، بلکه دانش نهفته در دادهها قابل استفاده میباشد. به این دلیل به دادهکاوی، تحلیل دادهای ثانویه[10] گفته میشود.
2-1: تاریخچه دادهکاوی
اخیرا دادهکاوی موضوع بسیاری از مقالات، کنفرانسها و رسالههای عملی شده است، امّا این واژه تا اوایل دهه نود مفهومی نداشت و به کاربرده نمیشد.
در دهه شصت و پیش از آن زمینههایی برای ایجاد سیستمهای جمعآوری و مدیریت دادهها ایجاد شد و تحقیقاتی در این زمینه انجام پذیرفت که منجر به معرفی و ایجاد سیستمهای مدیریت پایگاه دادهها گردید.
ایجاد و توسعه مدلهای دادهای برای پایگاه سلسله مراتبی، شبکهای و بخصوص رابطهای در دهه هفتاد، منجر به معرفی مفاهیمی همچون شاخصگذاری و سازمادهی دادهها و در نهایت ایجاد زبان پرسش SQL در اوایل دهه هشتاد گردید تا کاربران بتوانند گزارشات و فرمهای اطلاعاتی موردنظر خود را ، از این طریق ایجاد نمایند.
توسعه سیستمهای پایگاهی پیشرفته در دهه هشتاد و ایجاد پایگاهها شیگرا، کاربرد گرا[11] و فعال[12] باعث توسعه همه جانبه و کاربردی شدن این سیستمها در سراسر جهان گردید. بدین ترتیب DBMSهایی همچون Oracle, DB2, Sybase, ... ایجاد شدند و حجم زیادی از اطلاعات با استفاده از این سیستمها مورد پردازش قرار گرفتند. شاید بتوان مهمترین جنبه در معرفی دادهکاوی را مبحث کشف دانش از پایگاه دادهها (KDD)[13] دانست بطوریکه در بسیاری موارد DM [14] و KDD بصورت مترادف مورد استفاده قرار میگیرند.
همانطور که در تعریف دادهکاوی ذکر شد، هدف جستجو و کشف الگوهایی در پایگاه داده ها و استفاده از آنها در اخذ تصمیمات حیاتی است، بنابراین میتوان گفت که DM بخشی از فرایند KDD است که در نهایت به ایجاد سیستمهای DSS [15] میشود. شکل 1-1 نقش داده کاوی در فرایند کشف دانش از پایگاه داده ها را نشان میدهد.
برای اولین بار مفهوم دادهکاوی در کارگاه IJCAI[16] در زمینه KDD توسّط Shapir مطرح گردید. به دنبال آن در سالهای 1991 تا 1994 ، کارگاههای KDD مفاهیم جدیدی را در این شاخه علم ارائه کردند بطوریکه بسیاری از علوم و مفاهیم با آن مرتبط گردیدند.
3-1- چه چیزی سبب پیدایش دادهکاوی شده است؟
اصلیترین دلیلی که باعث شد دادهکاوی کانون توجهات در صنعت اطلاعات قرار بگیرد، مساله در دسترس بودن حجم وسیعی از دادهها و نیاز شدید به اینکه از این دادهها اطلاعات و دانش سودمند استخراج کنیم. اطلاعات و دانش بدست آمده در کاربردهای وسیعی از مدیریت کسب و کار و کنترل تولید و تحلیل بازار تا طراحی مهندسی و تحقیقات علمی مورد استفاده قرار میگیرد.
داده کاوی را میتوان حاصل سیر تکاملی طبیعی تکنولوژی اطلاعات دانست، که این سیر تکاملی ناشی از یک سیر تکاملی در صنعت پایگاه داده میباشد، نظیر عملیات: جمعآوری دادهها و ایجاد پایگاه داده، مدیریت داده و تحلیل و فهم دادهها. در شکل 2-1 این روند تکاملی در پایگاههای داده نشان داده شده است.
تکاملی تکنولوژی پایگاه داده و استفاده فراوان آن در کاربردهای مختلف سبب جمعآوری حجم فراوانی داده شده است. این دادههای فراوان باعث ایجاد نیاز ابزارهای قدرتمند برای تحلیل دادهها گشته، زیرا در حال حاضر به لحاظ داده ثروتمند هستیم ولی دچار کمبود اطلاعات میباشیم.
ابزارهای دادهکاوی داده ها را آنالیز میکنند و الگوهای دادهای را کشف میکنند که میتوان از آن در کاربردهایی نظیر: تعیین استراتژی برای کسب و کار، پایگاه دانش[1] و تحقیقات علمی و پزشکی، استفاده کرد. شکاف موجود بین دادهها و اطلاعات سبب ایجاد نیاز برای ابزارهای دادهکاوی شده است تا دادههای بیارزش را به دانشی ارزشمند تبدیل کنیم.
بطور ساده دادهکاوی به معنای استخراج یا «معدنکاری»[2] دانش از مقدار زیادی داده خام است. البته این نامگذاری برای این فرایند تا حدی نامناسب است، زیرا بطور مثال عملیات معدنکاری برای استخراج طلا از صخره و ماسه را طلاکاوی مینامیم، نه ماسهکاوی یا صخرهکاوی. بنابراین بهتر بود به این فرایند نامی شبیه به «استخراج دانش از داده» میدادیم که متأسفانه بسیار طولانی است. «دانشکاوی» بعنوان یک عبارت کوتاهتر بعنوان جایگزین، نمیتواند بیانگر تأکید و اهمیت بر معدنکاری مقدار زیاد داده باشد. معدنکاری عبارتی است که بلافاصله انسان را به یاد فرایندی میاندازد که به دنبال یافتن مجموعه کوچکی از قطعات ارزشمند از حجم بسیار زیادی از مواد خام هستیم.
با اینکه این فرایند تا حدی دارای نامگذاری ناقص است ولی این نامگذاری یعنی دادهکاوی بسیار عمومیت پیدا کرده است. البته اسامی دیگر نیز برای این فرایند پیشنهاد شده که بعضا بسیار متفاوت با واژه دادهکاوی است، نظیر: استخراج دانش از پایگاه داده، استخراج دانش[3]، آنالیز داده/ الگو، باستان شناسی داده[4]، و لایروبی دادهها[5].
فهرست پروژه Data Mining ( داده کاوی )
فهرست:
فهرست اشکال ...............................................................................................................................................
10
فهرست جداول ..............................................................................................................................................
11
فصل1: مقدمهای بر دادهکاوی ............................................................................
13
1-1 تعریف دادهکاوی ...................................................................................................................................
15
2-1 تاریخچه دادهکاوی ................................................................................................................................
16
3-1 چه چیزی سبب پیدایش دادهکاوی شده است؟ ........................................................................................
17
4-1 اجزای سیستم دادهکاوی .........................................................................................................................
19
5-1 جایگاه دادهکاوی در میان علوم مختلف ..................................................................................................
21
6-1 قابلیتهای دادهکاوی .................................................................................................................................
22
7-1 چرا به دادهکاوی نیاز داریم؟ ...................................................................................................................
23
8-1 دادهکاوی چه کارهایی نمیتواند انجام دهد؟ ..........................................................................................
25
9-1 کاربردهای دادهکاوی .............................................................................................................................
25
1-9-1 کاربردهای پیشبینیکننده ...................................................................................................
27
2-9-1 کاربردهای توصیفکننده ....................................................................................................
27
10-1 ابزارهای تجاری دادهکاوی ...................................................................................................................
28
11-1 دادهکاوی و انباردادهها .........................................................................................................................
29
1-11-1 تعاریف انبارداده ................................................................................................................
29
2-11-1 چهار خصوصیت اصلی انبارداده .........................................................................................
30
3-11-1 موارد تفاوت انبارداده و پایگاه داده ....................................................................................
31
12-1 دادهکاوی و OLAP ...........................................................................................................................
33
1-12-1 OLAP ...........................................................................................................................
33
2-12-1 انواع OLAP ...................................................................................................................
34
13-1 مراحل فرایند کشف دانش از پایگاه دادهها ...........................................................................................
34
1-13-1 انبارش دادهها ....................................................................................................................
35
2-13-1 انتخاب دادهها ....................................................................................................................
36
3-13-1 پاکسازی- پیشپردازش- آمادهسازی ................................................................................
36
4-13-1 تبدیل دادهها ......................................................................................................................
36
5-13-1 کاوش در دادهها (Data Mining) .................................................................................
37
6-13-1 تفسیر نتیجه ........................................................................................................................
38
فصل 2: قوانین ارتباطی ...........................................................................
39
1-2 قوانین ارتباطی ........................................................................................................................................
40
2-2 اصول پایه ...............................................................................................................................................
41
1-2-2 شرح مشکل جدی ...............................................................................................................
41
2-2-2 پیمایش فضای جستجو .........................................................................................................
43
3-2-2 مشخص کردن درجه حمایت مجموعه اقلام .........................................................................
45
3-2 الگوریتمهای عمومی ..............................................................................................................................
45
1-3-2 دستهبندی ............................................................................................................................
45
2-3-2 BFS و شمارش رویدادها ...................................................................................................
46
3-3-2 BFS و دونیمسازی TID-list ...........................................................................................
47
4-3-2 DFS و شمارش رویداد ......................................................................................................
47
5-3-2 DFS و دو نیمسازی TID-list ..........................................................................................
48
4-2 الگوریتم Apriori ................................................................................................................................
48
1-4-2 مفاهیم کلیدی .....................................................................................................................
48
2-4-2 پیادهسازی الگوریتم Apriori ............................................................................................
49
3-4-2 معایب Apriori و رفع آنها .................................................................................................
54
5-2 الگوریتم رشد الگوی تکرارشونده ..........................................................................................................
55
1-5-2 چرا رشد الگوی تکرار سریع است؟ .....................................................................................
58
6-2 مقایسه دو الگوریتم Apriori و FP-growth ......................................................................................
59
7-2 تحلیل ارتباطات ......................................................................................................................................
63
فصل 3: وبکاوی و متنکاوی .................................................................
65
1-3 وبکاوی ...............................................................................................................................................
66
1-1-3 الگوریتمهای هیتس و لاگسام ...............................................................................................
69
2-1-3 کاوش الگوهای پیمایش مسیر ..............................................................................................
76
2-3 متنکاوی ...............................................................................................................................................
80
1-2-3 کاربردهای متنکاوی ...........................................................................................................
82
1-1-2-3 جستجو و بازیابی ..............................................................................................
83
2-1-2-3 گروهبندی و طبقهبندی ......................................................................................
83
3-1-2-3 خلاصهسازی ....................................................................................................
84
4-1-2-3 روابط میان مفاهیم .............................................................................................
84
5-1-2-3 یافتن و تحلیل گرایشات ....................................................................................
84
6-1-2-3 برچسب زدن نحوی (pos) ...............................................................................
85
7-1-2-3 ایجاد Thesaurus و آنتولوژی به صورت اتوماتیک .........................................
85
2-2-3 فرایند متنکاوی ...................................................................................................................
86
3-2-3 روشهای متنکاوی ...............................................................................................................
87
مراجع .....................................................................................................
89
منبع:
] دادهکاوی (Data Mining)، تالیف مهمد کانتاردزیک، ترجمه امیر علیخانزاده، 1385، ویرایش اول
[2] Introduction to Data Mining and Knowledge Discovery، Two Crows Corporation، 1999
[3] Data Mining: Concepts and Techniques، M.Kamber and J.Han، 2001
[4] مقاله Algorithms for Association Rule Mining – A General Survey and comparison نوشته Jochen Hipp و Gholamreza Nakhaeizadeh ، در کنفرانس ACM SIGKDD July 2000
[5] مقاله Comparative Study of Association Rules Mining Algorithms نوشته Stefan Holban (http://www.bmf.hu/conferences/saci04/Gyorodi.pdf)
[6]
http://ece.ut.ac.ir/DBRG/seminars/Keykhah/Data Mining/Data mining.doc
http://ece.ut.ac.ir/DBRG/seminars/Ghadimi-Abbasi-Pashaei/Document/datamining_Introduction.doc