نگاهی بر داده کاوی و کشف قوانین وابستگی

چکیده:
با افزايش سيستمهاي كامپيوتر و گسترش تكنولوژي اطلاعات , بحث اصلي در علم كامپيوتر از چگونگي جمع آوري اطلاعات به نحوه استفاده از اطلاعات منتقل شده است . سيستمهاي داده كاوي ,اين امكان را به كاربر مي دهند كه بتواند انبوه داده هاي جمع آوري شده را تفسير كنند و دانش نهفته در آن را استخراج نمايند .
داده كاوي به هر نوع كشف دانش و يا الگوي پنهان در پايگاه داده ها اطلاق مي شود . امروزه داده کاوی به عنوان یکی از مهمترین مسائل هوش مصنوعی و پایگاه داده ، محققان بسیاری را به خود جذب کرده است . در این تحقیق ابتدا نگاه کلی بر داده کاوی ، استراتژیهای داده کاوی و… داریم ، سپس مسأله کشف قوانین وابستگی در پایگاه داده را به تفضیل بررسی کردیم و نگاهی به الگوریتمهای موجود برای آن داشتیم . سپس مسأله کشف قوانین وابستگی در پایگاه داده های پویا را مورد بحث قرار دادیم و الگوریتم های ارائه شده مربوطه را مطرح کردیم .

مقدمه :
هدف از اين اراِئه و تحقيق بررسي روشهاي مطرح داده كاوي است .داده كاوي هر نوع استخراج دانش و يا الگواز داده هاي موجود در پايگاه داده است كه اين دانشها و الگوها ضمني و مستتر در داده ها هستند ,از داده كاوي مي توان جهت امور رده بندي (Classification ) و تخمين (Estimation) ,پيش بيني (Prediction) و خوشه بندي (Clustering)استفاده كرد .داده كاوي داراي محاسن فراواني است . از مهمترين آن محاسن كشف كردن دانش نهفته در سيستم است كه به شناخت بهتر سيستم كمك مي كند .به عنوان مثال مي توان به استفاده تركيبي از روش خوشه بندي جهت تخصيص بودجه به دسته هاي مختلف از كتب اشاره كرد .

سيستمهاي داده كاوي تقريبا از اوايل دهه ۱۹۹۰ مورد توجه قرار گرفتند . علت اين امر نيز آن بود كه تا آن زمان سازمانها بيشتر در پي ايجاد سيستمهاي عملياتي كامپيوتري بودند كه به وسيله آنها بتوانند داده هاي موجود در سازمان خود را سازماندهي كنند . پس از ايجاد اين سيستمها ,روزانه حجم زيادي از اطلاعات جمع آوري ميشد كه تفسير كردن آنها از عهده انسان خارج بود . به همين دليل , نياز به تكنيكي بود كه از ميان انبوه داده معني استخراج كند و داده كاوي به همين منظور ايجاد و رشد يافت .
بنابر اين هدف اصلي از داده كاوي ,كشف دانش نهفته در محيط مورد بررسي است كه اين دانش مي تواند شكلهاي گوناگوني داسته باشد . دانش استخراج شده مي تواند به فرم الگوهاي موجود در داده ها باشد كه كشف اين الگوها منجر به شناخت بهتر سيستم نيز مي شود . الگوهاي استخراجي عموما بيانگر روابط بين ويژگيهاي سيستم هستند بعنوان مثال در سيستم تجاري يك الگو مي تواند بيانگر رابطه بين نوع كالا و ميزان تقاضاي آن باشد .

در اين تحقيق داده كاوي مورد بحث قرار مي گيرد . علل استفاده از داده كاوي و منابعي كه داده كاوي بر روي آنها اعمال مي شود ,علاوه بر اين خلاصه اي از روشهاي رايج داده كاوي ارائه شده است . تكنيكهاي داده كاوي و قوانين وابستگي و الگوريتمهاي موجود (Apriori , Aprior TID, Partition, Eclat ,Max Eclat , Vector ) و الگوريتم با ساختار Trie وfp grow و الگوريتمهاي كاهشي مورد بررسي قرار مي گيرند و در هر مورد مثالها , موارد كاربرد ,تكنيكها و نقاط قوت و ضعف مورد بررسي قرار گرفته اند .

Data mining(داده كاوي)
تعريف :
Data Mining represents a process developed to examine large amounts of
data routinely collected. The term also refers to a collection of tools used to
perform the process. Data mining is used in most areas where data are
collected-marketing, health, communications, etc.

داده كاوي فرآيند بكارگيري يك يا چند تكنيك آموزش كامپيوتر، براي تحليل و استخراج داده هاي يك پايگاه داده مي باشد.در واقع هدف داده كاوي يافتن الگوهايي در داده هاست.
دانش كسب شده از فرآيند داده كاوي بصورت مدل يا تعميمي از داده ها نشان داده مي شود.
چندين روش داده كاوي وجود دارد با اين وجود همه روشها “ آموزش بر مبناي استنتاج “ را بكار مي برند.
آموزش بر مبناي استنتاج، فرآيند شكل گيري تعاريف مفهوم عمومي از طريق مشاهده مثالهاي خاص از مفاهيمي كه آموزش داده شده اند، است.
مثال زير نمونه اي از دانش بدست امده از طريق فرايند اموزش بر مبناي استنتاج است:
آيا تا كنون فكر كرده ايد، فروشگاههاي بزرگ اينترنتي در mail هاي خود به مشتريان از چه تبليغاتي استفاده مي كنند؟ و آيا اين تبليغات براي همه مشتريان يكسان است؟
پاسخ اين است كه از روي دانش كسب شده از اطلاعات خريد افراد و نتيجه گيري از اين دانش، اين كار را انجام مي دهند.مثلا در نظر بگيريد يك قانون در پايگاه داده بصورت زير استخراج مي شود:

دقت = ۸۰% : سيگار مي خرند ^ نان مي خرند كساني كه شير مي خرند
از روي اين قانون فروشگاه مي تواند به تمام كساني كه شير مي خرند تبليغات سيگار و انواع نان را نيز بفرستد.همچنين اين قانون در چيدن قفسه هاي فروشگاه نيز بي تاثير نخواهد بود.
{شير و نان و سيگار در قفسه هاي كنار هم چيده شوند}

كشف دانش در پايگاه داده ۱

KDD يا كشف دانش در پايگاه داده اصطلاحي است كه مكررا بجاي داده كاوي بكار مي رود. از نظر تكنيكي، KDD كاربردي از روشهاي علمي داده كاوي است.
بعلاوه براي انجام داده كاوي فرايند KDD شامل :
۱- يك روش براي تهيه داده ها و استخراج داده ها ،
۲- تصميم گيري درباره عملي كه پس از داده كاوي بايد انجام شود ، مي باشد.

آيا داده كاوي براي حل مسائل ما مناسب است؟
تصميم گيري در مورد اينكه آيا داده كاوي را به عنوان استراتژي حل مساله بكار ببريم يا نه، يك مساله دشوار است.
اما به عنوان نقطه شروع چهار سؤال عمومي را بايد در نظر بگيريم :
۱٫ آيا به وضوح مي توانيم مساله را تعريف كنيم ؟
۲٫ آيا بطور بالقوه داده با معني وجود دارد ؟
۳٫ آيا داده ها شامل “ دانش پنهان” هستند يا فقط براي هدف گزارشگري مناسبند ؟
۴٫ آيا هزينه پردازش داده (براي داده كاوي) كمتر از سود حاصل از دانش پنهان بدست آمده از پروژه داده كاوي است ؟
يك مدل پردازش داده كاوي ساده :
در يك ديد كلي ، ما مي توانيم داده كاوي را به عنوان يك فرآيند چهار مرحله اي تعريف كنيم :
۱٫ جمع آوري يك مجموعه از داده ها براي تحليل
۲٫ ارائه اين داده ها به برنامه نرم افزاري داده كاوي
۳٫ تفسير نتايج
۴٫ بكارگيري نتايج براي مساله يا موقعيتهاي جديد

شكل فوق يك دياگرام از فرآيند داده كاوي را نشان مي دهد.

– جمع آوري داده ها :
فرآيند داده كاوي احتياج به دسترسي به داده ها دارد. داده ممكن است در تعدادي ركورد، در چندين فايل پايگاه داده ذخيره شود و يا ممكن است داده فقط شامل چند صد ركورد در يك فايل ساده باشد.

با توجه به اينكه معمولا داده هاي واقعي شامل چندين هزار ركورد مي باشند، اولين گام در داده كاوي تهيه زير مجموعه مناسبي از داده براي پردازش است. گاهي اين مرحله احتياج به تلاش انسانهاي بسياري دارد. در كل سه راه متداول براي دستيابي فرآيند داده كاوي به داده وجود دارد :
۱٫ ذخيره داده در “ انبار داده ۱ ”
۲٫ ذخيره داده در پايگاه داده رابطه اي
۳٫ ذخيره داده در فايل ساده

– داده كاوي :
همانطور كه در شكل مشخص است مرحله بعد داده كاوي است. با اين حال قبل از ارائه داده به ابزار داده كاوي ، چندين انتخاب داريم:
۱٫ يادگيري بايد تحت كنترل باشد يا بدون كنترل ؟
۲٫ كدام نمونه ها در داده ها ي جمع آوري شده براي ساخت مدل بكار ميروند و كدامها براي تست مدل ؟
۳٫ كدام صفتها از صفتهاي موجود انتخاب مي شوند ؟
و ….

– تفسير نتايج :
در اين مرحله خروجيهاي مرحله داده كاوي آزمايش مي شوند تا مشخص شود كه آيا اين نتايج قابل استفاده و جالب هستند يا نه؟ همانطور كه در شكل مي بينيم اگر نتايج بهينه نباشد مي توانيم فرآيند داده كاوي را با صفات و نمونه هاي جديد تكرار كنيم. همچنين ما مي توانيم به” انبار داده “ مراجعه كنيم و فرآيند استخراج دانش را تكرار كنيم.

ـ بكارگيري نتايج :
هدف نهايي ما بكارگيري نتايج براي موقعيتهاي جديد است. به عنوان مثال دانشي كه در يك پايگاه داده فروشگاه بيان مي كند كساني كه مجله ورزشي مي خرند همچنين سيگار هم مي خرند؛ در شكل گيري استراتژيهاي فروشگاه در چيدن قفسه ها ، تهيه كاتالوگ ها و … تاثير مي گذارد.

استراتژيهاي داده كاوي :
همانطور كه در شكل زير مي بينيم استراتژيهاي داده كاوي بطور كلي مي توانند به دو دسته “ تحت كنترل ” يا “ بدون كنترل ” تقسيم مي شوند. آموزش تحت كنترل مدلهايي را با بكارگيري صفات ورودي براي تشخيص مقدار صفت خروجي مي سازد. حتي برخي از الگوريتمهاي ” آموزش تحت كنترل” امكان تشخيص چندين صفت خروجي را به ما مي دهند. به صفات خروجي ، صفات وابسته نيز

مي گوييم. زيرا مقدار آنها به مقدار يك يا چند صفت ورودي بستگي دارد. به همين ترتيب به صفات ورودي، صفات مستقل نيز مي گوييم.
هنگامي كه “ آموزش بدون كنترل ” را بكار مي بريم تمامي صفات ورودي هستند و صفت خروجي نداريم.
آموزش تحت كنترل با توجه به اينكه صفات خروجي مقوله اي هستند يا عددي و آيا مدلهاي ايجاد شده براي مشخص كردن موقعيت كنوني ايجاد شدند يا پيش بيني خروجيهاي آينده ، به چندين قسمت تقسيم مي شوند. (منظور از صفات مقوله اي ، صفاتي هستند كه مقدار آنها تعداد محدود و مشخصي است، مثل صفاتي كه مقدار آنها Boolean است كه دو مقدار {true, false} دارد).

طبقه بندي۱ :
طبقه بندي احتمالا از همه استراتژيهاي داده كاوي قابل درك تر است. طبقه بندي سه خصوصيت دارد :
۱٫ آموزش تحت كنترل است.
۲٫ متغير وابسته ، مقوله اي است.
۳٫ تاكيد بر روي ساخت مدلهايي است كه قادر به اختصاص نمونه هاي جديد به يكي از كلاسهاي تعريف شده باشند.

تخمين۲ :
مشابه طبقه بندي ، هدف يك مدل تخمين نيز مشخص كردن مقدار براي يك صفت خروجي است؛ اما بر خلاف طبقه بندي صفات خروجي براي مساله تخمين، عددي است بجاي مقوله اي .
بعنوان يك مثال براي تخمين ، پايگاه داده اي را در نظر بگيريد كه هر ركورد آن اطلاعاتي را راجع به شخصي دارد مثل : محل زندگي، غذاي روزانه در اغلب روزها، نوع ماشين شخصي ، درآمد ماهانه و ….

هدف الگوريتم تخمين در اين مثال ايجاد مدلي براي تشخيص درآمد ماهانه نمونه هاي جديد (ركوردهاي جديد) مي باشد.{كه بقيه صفات آنها بجز درآمد ماهانه مشخص است}.
بيشترتكنيكهاي تحت كنترل قادرند كه يا مسائل طبقه بندي را حل كنند يا تخمين ، اما نه هردورا.

پيش گويي Perdiction :
تشخيص تفاوت بين پيش گويي و طبقه بند ي يا تخمين كار ساده اي نيست. با اين حال هدف يك مدل پيش گويي ، برخلاف طبقه بندي يا تخمين، بجاي مشخص كردن رفتار كنوني، مشخص كردن خروجيهاي آينده است. بيشتر روشهاي داده كاوي كه براي طبقه بندي يا تخمين مناسبند، براي ساخت مدلهاي پيش گويي نيز بكار ميروند. عملا اين طبيعت داده است كه مشخص مي كند يك مدل براي تخمين مناست است يا طبقه بندي ويا پيش گويي.

:Unsupervised Clustering دسته بندي بدون كنترل
در دسته بندي بدون كنترل، ما ديگر صفات خروجي نداريم كه ما را در فرآيند يادگيري راهنمايي كند، در عوض برنامه مربوطه ساختارهاي دانش را با بكارگيري معيارهاي “ كيفيت دسته” براي گروه بندي داده ها به دو يا چند كلاس (دسته)، بدست مي آورد. .
يك هدف اساسي دسته بندي بدون كنترل، كشف ساختارهاي مفهومي در داده است.

كاربردهاي متداول دسته بندي بدون نظارت عبارتند از :
– مشخص مي كند كه آيا ارتباطات با معني در شكل مفاهيم مي تواند در داده ما پيدا شود يا نه ؟
– كارآيي روش آموزش تحت كنترل را مشخص مي كند.
– بهترين صفات ورودي براي آموزش تحت كنترل را مشخص مي كند.
– شناسايي از حد خارج شده ها (outlier)

تحليل سبد بازاري Market Basket Analyse :
هدف اين مرحله پيدا كردن ارتباطات جالب ميان محصولات (خرده فروشي) است. خروجي اين مرحله به فروشندگان كمك مي كند تا بهتر بتوانند قفسه ها را بچينند يا كاتالوگها را تنظيم كنندو نيز در ايجاد استراتژيهاي فروشگاه نيز كارا است. مثالي از دانش اين مرحله به فرم زير است (در يك فروشگاه)
سيگار مي خرند كساني كه قهوه مي خرند

:Supervised Data Mining تكنيكهاي داده كاوي تحت كنترل
تكنيكهاي داده كاوي براي بكارگيري استراتژي داده كاوي براي يك مجموعه داده بكار مي رود. يك تكنيك داده كاوي از دو قسمت تشكيل شده است:
۱٫ الگوريتم.
۲٫ ساختار دانش مربوطه مثل درخت يا يك مجموعه قوانين درخت تصميم كه در قسمتهاي قبلي توضيح داديم.
در اينجا چندين روش ديگر براي داده كاوي نظارت شده ارائه مي دهيم :

۱٫ شبكه عصبي :
يك شبكه عصبي مجموعه اي از نودهاي به هم پيوسته است كه طراحي مي شوند تا رفتار مغز انسان را شبيه سازي كنند.
چون مغز انسان از بيليونها عصب تشكيل شده و شبكه هاي عصبي كمتر از صد نود دارند مقايسه يك شبكه عصبي و رفتار مغز كمي غير متعارف است. با اين وجود شبكه هاي عصبي با موفقيت ، براي حل مسائل بكار برده مي شوندو براي داده كاوي نيز كاملا ابزار مناسبي است .
شبكه هاي عصبي در شكلها و فرمهاي گوناگوني وجود دارند و هم براي آموزش تحت كنترل و هم دسته بندي بدون كنترل بكار مي روند. درهمه موارد ، مقادير ورودي براي شبكه عصبي بايد عددي باشند. شبكه feed-forward يك نوع شبكه عصبي مناسب براي مسائل آموزش تحت كنترل مي باشد.

۲٫ برگشت آماري۱ :
برگشت آماري يكي از روشهاي آموزش تحت كنترل است كه يك مجموعه از داده هاي عددي را توسط ايجاد معادلات رياضي مرتبط با يك يا چند صفت ورودي به يك صفت خروجي عددي نسبت
مي دهد.
يك مدل “ برگشت خطي ” توسط يك صفت خروجي كه مقدارش بوسيله :
“ جمع مقادير صفت هاي ورودي × يك وزن مشخص “ مشخص مي شود.
مثلا اگر يك پايگاه داده شامل صفات ورودي A , B, C , D و صفت خروجي E باشد، رابطه زير
مي تواند يك مدل برگشت خطي باشد :
E = 0.5 C – ۰٫۲ B + A + 0.32
ميبينيم كه E صفت خروجي است كه مقدارش توسط تركيب خطي صفات A , B , C تعيين مي گردد.
همانند شبكه عصبي ، در اين روش نيز همه وروديها بايد عددي باشند و در صورتيكه داده ها در پايگاه داده مقوله اي باشند بايد آنها را به داده هاي عددي تبديل كنيم.

۳٫ قوانين وابستگي۲ :
به تفصيل در بخشهاي بعد مورد بحث قرار مي گيرد.
قوانین پیوستگی:
یکی از مهمترین بخشهای داده کاوی، کشف قوانین وابستگی در پایگاه داده است.این قوانین، لزوم وقوع برخی صفات(آیتم ها) را در صورت وقوع برخی دیگر از آیتمها، تضمین می کند.
برای روشن شدن مطلب یک فروشگاه خرده فروشی را در نظر بگیرید. مشخصات اجناس خریده شده توسط هر مشتری در یک رکورد پایگاه داده ذخیره می شود.به هر رکورد یک شناسه (TID) نسبت داده می شود.فرض کنید که مجموعه I شامل تمام آیتمها(اجناس) فروشگاه باشد. اگر  I x,y و x∩y=ø آنگاه x=>y یک قانون وابستگی است که بیان میکند اگریک مشتری اجناس مجموعه x را بخرد، اجناس مجموعه y را هم می خرد. این چنین قوانین، تأثیر مهمی در تایین استراتژیهای فروش، بخش بندی مشتریان، تنظیم کاتالوگها و… دارد. همچنین کشف قوانین وابستگی، کاربردهای بسیاری در علوم مختلف نیز دارد.

تعریف مسأله:
مجموعه آیتم: به هر زیر مجموعه از مجموعه آیتمها I)) ‘ یک مجموعه آیتم ‘ میگوییم.
در بیشتر الگوریتمها مساله کشف قوانین پیوستگی به دو زیر مساله تقسیم می شود:
۱٫پیدا کردن تمامی زیر مجموعه های مجموعه I [مجموعه آیتمها] که تکرار (وقوع) آنها در پایگاه بیشتر از یک حد تایین شده است.
به مجموعه آیتمهایی که تعداد وقوع آنها در پایگاه بزرگتر(یا مساوی)حد تایین شده است
‘ مجموعه آیتمهای بزرگ’، وبه بقیه’ مجموعه آیتمهای کوچک’ می گوییم.
۲٫بکارگیری مجموعه آیتمهای بزرگ برای تولید قوانین مطلوب.
تعریف:

پوشش۲: مجموعه I شامل تمام آیتمها و مجموعه آیتم x را در نظر بگیرید ، می گوییم پوشش x در پایگاه داده برابر است با ℓ اگر و فقط اگر تعداد وقوع مجموعه آیتم x در پایگاه داده برابر با ℓ باشد.
Support(x)=ℓ
درجه اطمینان:۳ مجموعه I شامل تمامی اقلام و مجموعه آیتمهای x و y مفروضند. درجه اطمینان قانون x=>yبرابر است با : x∩y=ø

Conf(x=>y) = support(xUy) support(x)
الگوریتم : Apriori این الگوریتم(Agrawal & Srikant ,1994) برای تولید مجموعه اقلام بزرگ به این ترتیب عمل می کند:
ابتدا با یک دور خواندن پایگاه داده مجموعه اقلام بزرگ یک عضوی ((۱-itemsetرا مشخص می کنیم.[مجموعه اقلام ۱ عضوی که تعداد تکرار آنها در DB از حد تایین شده(minsup) بیشتر است.]
سپس با استفاده ازمجموعه اقلام بزرگ یک عضوی، مجموعه اقلام دو عضوی را ایجاد می کنیم و برای تایین پوشش مجموعه اقلام دو عضوی یک بار دیگر کل پایگاه داده را می خوانیم تا مجموعه اقلام بزرگ دو عضوی را تایین کنیم.
به همین ترتیب با استفاده از مجموعه اقلام بزرگ دو عضوی مجموعه اقلام سه عضوی را ایجاد کرده و با خواندن دوباره پایگاه داده پوشش هر مجموعه قلم سه عضوی را مشخص کرده و مجموعه اقلام بزرگ سه عضوی تولید می شوند و این کار را برای مجموعه های ۴عضوی و … انجام میدهیم تا مرحله ای که هیچ مجموعه آیتم بزر الگوریتم:
L1= { larg-1-itemset }
for ( k=2; Lk-1 ≠۰;k+1 ) do
begin
C k=apriori – gen(Lk-1 ) //عضوی k عضوی با استفاده از اقلام بزرگ۱-k ساخت زیر مجموعه های
for all transaction lεD do
begin
C t=subset(Ck,l); // رخ دادند. عضوی در تراکنش k تست اینکها کدام مجموعه آیتمهای
for all candidate cεCt do
c.count++;
end
Lk={ cεCk l c.count ≥minsup}
end;
Answer=Uk Lk

(تبصره : اگر یک مجموعه آیتم بزرگ باشد[تکرارش درپایگاه داده بیشتر از minsupباشد] تمامی زیرمجموعه های آن نیز بزرگ هستند.)
چون هدف، تولید مجموعه اقلام بزرگ است، در الگوریتم aprioriدر هر مرحله پس از ایجاد مجموعه اقلامk عضوی از مجموعه اقلام بزرگ k-1 عضوی قبل از خواندن پایگاه داده برای تشخیص پوشش مجموعه اقلام k عضوی، ابتدا باید برای هر مجموعه قلم ببینبم آیا زیر مجموعه k-1 عضوی اش بزرگ هستند یا نه، اگر حتی یک زیر مجموعه k-1 عضوی اش هم بزرگ نباشد، آن مجموعه قلم k عضوی نمی تواند بزرگ باشد.(طبق قضیه) و آن را حذف می کنیم.
برای روشن تر شدن الگوریتم به مثال زیر توجه کنید:

minsup=3 Database:
Items TID
1 3 4 5 100
2 3 5 200
1 2 3 5 300
2 5 400
1 3 4 5 500

گام۱:ایجاد مجموعه اقلام ۱ عضوی:
L 1مجموعه آیتمهای بزرگ: مجموعه آیتمهای ۱ عضوی:
{۱}=۳ {۱}=۳
{۲}=۳ {۲}=۳
{۳}=۴ → {۳}=۴
{۵}=۵ {۴}=۲
{۵}=۴
گام۲: ایجاد مجموعه آیتمهای دو عضوی با استفاده از مجموعه آیتمهای بزرگ ۱ عضوی:
L2مجموعه آیتمهای بزرگ دو عضوی: مجموعه آیتمهای ۲ عضوی:
{۱,۳}=۳ {۱,۲}=۱
{۲,۵}=۳ {۱,۳}=۳
{۳,۵}=۳ → {۱,۵}=۳
{۱,۵}=۳ {۲,۳}=۲
{۲,۵}=۳
{۳,۵}=۴
گام۳:ایجاد مجموعه آیتمهای سه عضوی با استفاده از مجموعه آیتمهای بزرگ دو عضوی:
مجموعه آیتمهای بزرگ سه عضوی: مجموعه آیتمهای ۳عضوی:L3
{1,3,5}=3 {1,3,5}=3 →

Answer=L1 U L2 U L3={{1} {2} {3} {5} {1,3} {2,5} {3,5} {1,5} {1,3,5}}