تاریخ انتشار : ۱۳۹۶/۵/۲۵ ۰۳:۰۰ |
کد خبر: ۳۹۳۹۴۲

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

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

پایگاه خبری شباویز/ دانلود مقاله رایگان/ نگاهی بر داده کاوی و کشف قوانین وابستگی

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

چکیده:

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

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

مقدمه :

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

سيستمهاي داده كاوي تقريبا از اوايل دهه 1990 مورد توجه قرار گرفتند . علت اين امر نيز آن بود كه تا آن زمان سازمانها بيشتر در پي ايجاد سيستمهاي عملياتي كامپيوتري بودند كه به وسيله آنها بتوانند داده هاي موجود در سازمان خود را  سازماندهي كنند . پس از ايجاد اين سيستمها ,روزانه حجم زيادي از اطلاعات جمع آوري ميشد كه تفسير كردن آنها از عهده انسان خارج بود . به همين دليل , نياز به تكنيكي بود كه از ميان انبوه داده معني استخراج كند و داده كاوي به همين منظور ايجاد و رشد يافت .

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

در اين تحقيق داده كاوي مورد بحث قرار مي گيرد . علل استفاده از داده كاوي و منابعي كه داده كاوي بر روي آنها اعمال مي شود ,علاوه بر اين خلاصه اي از روشهاي رايج داده كاوي ارائه شده است . تكنيكهاي داده كاوي و قوانين وابستگي و الگوريتمهاي موجود (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 هاي خود به مشتريان از چه تبليغاتي استفاده مي كنند؟ و آيا اين تبليغات براي همه مشتريان يكسان است؟

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

دقت = 80%  :                  سيگار مي خرند ^  نان مي خرند               كساني كه شير مي خرند

از روي اين قانون فروشگاه مي تواند به تمام كساني كه شير مي خرند تبليغات سيگار و انواع نان را نيز بفرستد.همچنين اين قانون در چيدن قفسه هاي فروشگاه نيز بي تاثير نخواهد بود.

{شير و نان و سيگار در قفسه هاي كنار هم چيده شوند}

 

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

 

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

بعلاوه براي انجام داده كاوي فرايند KDD شامل :

1-  يك روش براي تهيه داده ها و استخراج داده ها ،

2-  تصميم گيري درباره عملي كه  پس از داده كاوي بايد انجام شود ، مي باشد.

 

 

 آيا داده كاوي براي حل مسائل ما مناسب است؟

    تصميم گيري در مورد اينكه آيا داده كاوي را به عنوان استراتژي حل مساله بكار ببريم يا نه، يك مساله دشوار است.

اما به عنوان نقطه شروع چهار سؤال عمومي را بايد در نظر بگيريم :

  1. آيا به وضوح مي توانيم مساله را تعريف كنيم ؟

  2. آيا بطور بالقوه داده با معني وجود دارد ؟

  3. آيا داده ها شامل دانش پنهان هستند يا فقط براي هدف گزارشگري مناسبند ؟

  4. آيا هزينه پردازش داده (براي داده كاوي) كمتر از سود حاصل از دانش پنهان بدست آمده از پروژه داده كاوي است ؟

يك مدل پردازش داده كاوي  ساده :

  در يك ديد كلي ، ما مي توانيم داده كاوي را به عنوان يك فرآيند چهار مرحله اي تعريف كنيم :

  1. جمع آوري يك مجموعه از داده ها براي تحليل

  2. ارائه اين داده ها به برنامه نرم افزاري داده كاوي

  3. تفسير نتايج

  4. بكارگيري نتايج براي مساله يا موقعيتهاي جديد

 

- جمع آوري داده ها :

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

  1. ذخيره داده در انبار داده 1

  2. ذخيره داده در پايگاه داده رابطه اي

  3. ذخيره داده در فايل ساده

 

 

- داده كاوي :

همانطور كه در شكل مشخص است مرحله بعد داده كاوي است. با اين حال قبل از ارائه داده به ابزار داده كاوي ، چندين انتخاب داريم:

  1. يادگيري بايد تحت كنترل باشد يا بدون كنترل ؟

  2. كدام نمونه ها در داده ها ي جمع آوري شده براي ساخت مدل بكار ميروند و كدامها براي تست مدل ؟

  3. كدام صفتها از صفتهاي موجود انتخاب مي شوند ؟

و ....

 

- تفسير نتايج :

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

 

ـ بكارگيري نتايج :

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

 

استراتژيهاي داده كاوي :

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

 مي گوييم. زيرا مقدار آنها به مقدار يك يا چند صفت ورودي بستگي دارد. به همين ترتيب به صفات ورودي، صفات مستقل نيز مي گوييم.

هنگامي كه آموزش بدون كنترل را بكار مي بريم تمامي صفات ورودي هستند و صفت خروجي نداريم.

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

 

طبقه بندي1 :

طبقه بندي احتمالا از همه استراتژيهاي داده كاوي قابل درك تر است. طبقه بندي سه خصوصيت دارد :

  1. آموزش تحت كنترل است.

  2. متغير وابسته ، مقوله اي است.

  3. تاكيد بر روي ساخت مدلهايي است كه قادر به اختصاص نمونه هاي جديد به يكي از كلاسهاي تعريف شده باشند.

 

تخمين2 :

     مشابه طبقه بندي ، هدف يك مدل تخمين نيز مشخص كردن مقدار براي يك صفت خروجي است؛ اما بر خلاف طبقه بندي صفات خروجي براي مساله تخمين، عددي است بجاي مقوله اي .

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

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

بيشترتكنيكهاي تحت كنترل قادرند كه يا مسائل طبقه بندي را حل كنند يا تخمين ، اما نه هردورا.

 

پيش گويي Perdiction :

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

 

 :Unsupervised Clustering دسته بندي  بدون كنترل 

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

    يك هدف اساسي دسته بندي بدون كنترل، كشف ساختارهاي مفهومي در داده است.

كاربردهاي متداول دسته بندي بدون نظارت عبارتند از :

  • مشخص مي كند كه آيا ارتباطات با معني در شكل مفاهيم مي تواند در داده ما پيدا شود يا نه ؟

  • كارآيي روش آموزش تحت كنترل را مشخص مي كند.

  • بهترين صفات ورودي براي آموزش تحت كنترل را مشخص مي كند.

  • شناسايي از حد خارج شده ها (outlier)

 

تحليل سبد بازاري Market Basket Analyse          :

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

                                    سيگار مي خرند                   كساني كه قهوه مي خرند

 

 :Supervised Data Mining تكنيكهاي  داده كاوي تحت كنترل

 تكنيكهاي داده كاوي براي بكارگيري استراتژي داده كاوي براي يك مجموعه داده بكار مي رود. يك تكنيك داده كاوي از دو قسمت تشكيل شده است:

  1. الگوريتم.

  2. ساختار دانش مربوطه مثل درخت يا يك مجموعه قوانين درخت تصميم كه در قسمتهاي قبلي توضيح داديم.

در اينجا چندين روش ديگر براي داده كاوي نظارت شده ارائه مي دهيم :

 

1. شبكه عصبي :

     يك شبكه عصبي مجموعه اي از نودهاي به هم پيوسته است كه طراحي مي شوند تا رفتار مغز انسان را شبيه سازي كنند.

     چون مغز انسان از بيليونها عصب تشكيل شده و شبكه هاي عصبي كمتر از صد نود دارند مقايسه يك شبكه عصبي و رفتار مغز كمي غير متعارف است. با اين وجود شبكه هاي عصبي با موفقيت ، براي حل مسائل بكار برده مي شوندو براي داده كاوي نيز كاملا ابزار مناسبي است .

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

             

2. برگشت آماري1 :

     برگشت آماري يكي از روشهاي آموزش تحت كنترل است كه يك مجموعه از داده هاي عددي را توسط ايجاد معادلات رياضي مرتبط با يك يا چند صفت ورودي به يك صفت خروجي عددي نسبت

مي دهد.

يك مدل برگشت خطي توسط يك صفت خروجي كه مقدارش بوسيله :

           جمع مقادير صفت هاي ورودي ×  يك وزن مشخص مشخص مي شود.

مثلا اگر يك پايگاه داده شامل صفات ورودي A , B, C , D  و صفت خروجي E باشد، رابطه زير

 مي تواند يك مدل برگشت خطي باشد :

                        E = 0.5 C – 0.2 B + A + 0.32

ميبينيم كه E  صفت خروجي است كه مقدارش توسط تركيب خطي صفات A , B , C  تعيين مي گردد.

همانند شبكه عصبي ، در اين روش نيز همه وروديها بايد عددي باشند و در صورتيكه داده ها در پايگاه داده مقوله اي باشند بايد آنها را به داده هاي عددي تبديل كنيم.

 

3. قوانين وابستگي2 :

     به تفصيل در بخشهاي بعد مورد بحث قرار مي گيرد.

قوانین پیوستگی:

     یکی از مهمترین بخشهای داده کاوی، کشف قوانین وابستگی در پایگاه داده است.این قوانین، لزوم وقوع برخی صفات(آیتم ها) را در صورت وقوع برخی دیگر از آیتمها، تضمین می کند.

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

تعریف مسأله:

     مجموعه آیتم: به هر زیر مجموعه از مجموعه آیتمها  I)) ' یک مجموعه آیتم ' میگوییم.

در بیشتر الگوریتمها مساله کشف قوانین پیوستگی به دو زیر مساله تقسیم می شود:

1.پیدا کردن تمامی زیر مجموعه های مجموعه I  [مجموعه آیتمها] که تکرار (وقوع) آنها در پایگاه بیشتر از یک حد تایین شده است.

به مجموعه آیتمهایی که تعداد وقوع آنها در پایگاه بزرگتر(یا مساوی)حد تایین شده است

 ' مجموعه آیتمهای بزرگ'، وبه بقیه' مجموعه آیتمهای کوچک' می گوییم.

2.بکارگیری مجموعه آیتمهای بزرگ برای تولید قوانین مطلوب.

تعریف:

    پوشش2: مجموعه I شامل تمام آیتمها و مجموعه آیتم x  را در نظر بگیرید ، می گوییم پوشش x  در پایگاه داده برابر است با   اگر و فقط اگر تعداد وقوع مجموعه آیتم x  در پایگاه داده برابر با   باشد.

Support(x)=ℓ

    درجه اطمینان:3 مجموعه I شامل تمامی اقلام و مجموعه آیتمهای x  و y  مفروضند. درجه اطمینان قانون     x=>yبرابر است با :        x∩y=ø                                                                            

 

                              Conf(x=>y) =  support(xUy)  

                                                      support(x)

  الگوریتم : Apriori    این الگوریتم(Agrawal & Srikant ,1994) برای تولید مجموعه اقلام بزرگ به این ترتیب عمل می کند:                                       

ابتدا با یک دور خواندن پایگاه داده مجموعه اقلام بزرگ یک عضوی ((1-itemsetرا مشخص می کنیم.[مجموعه اقلام 1 عضوی که تعداد تکرار آنها در  DB  از حد تایین شده(minsup) بیشتر است.]

سپس با استفاده ازمجموعه اقلام بزرگ یک عضوی، مجموعه اقلام دو عضوی را ایجاد می کنیم و برای تایین پوشش مجموعه اقلام دو عضوی یک بار دیگر کل پایگاه داده را می خوانیم تا مجموعه اقلام بزرگ دو عضوی را تایین کنیم.

به همین ترتیب با استفاده از مجموعه اقلام بزرگ دو عضوی مجموعه اقلام سه عضوی را ایجاد کرده و با خواندن دوباره پایگاه داده پوشش هر مجموعه قلم سه عضوی را مشخص کرده و مجموعه اقلام بزرگ سه عضوی تولید می شوند و این کار را برای مجموعه های 4عضوی و ... انجام میدهیم تا مرحله ای که هیچ مجموعه آیتم بزر الگوریتم:

L1= { larg-1-itemset }

for ( k=2; Lk-1 ≠0;k+1 ) do

 begin

      C k=apriori – gen(Lk-1 ) //عضوی k عضوی با استفاده از اقلام بزرگ1-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

 

                                                                       

 

 

 

گام1:ایجاد مجموعه اقلام 1 عضوی:

  L 1مجموعه آیتمهای بزرگ:                                      مجموعه آیتمهای 1 عضوی:

{1}=3                                                                               {1}=3

{2}=3                                                                               {2}=3

                            {3}=4                 →                      {3}=4            

{5}=5                                                                               {4}=2

                              {5}=4

گام2: ایجاد مجموعه آیتمهای دو عضوی با استفاده از مجموعه آیتمهای بزرگ 1 عضوی:

L2مجموعه آیتمهای بزرگ دو عضوی:                           مجموعه آیتمهای 2 عضوی:

{1,3}=3                                                                          {1,2}=1  

{2,5}=3                                                                          {1,3}=3

                            {3,5}=3                 →                  {1,5}=3           

{1,5}=3                                                                          {2,3}=2

                             {2,5}=3

                                 {3,5}=4

گام3:ایجاد مجموعه آیتمهای سه عضوی با استفاده از مجموعه آیتمهای بزرگ دو عضوی:

مجموعه آیتمهای بزرگ سه عضوی:                           مجموعه آیتمهای 3عضوی: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}}

 

                                                                                                               

 

 

 

الگوریتم     : Aprior TID

  

  در این الگوریتم (Agrawal & Srikant ,1994)در ابتدا فضای جستجو پایگاه داده اولیه است که هر تراکنش آن را به عنوان مجموعه ای از مجموعه قلم های تک عضوی می بینیم:

 به این معنی که تراکنش ((100 l 1,2,3 به صورت (100 l{1}{2}{3})در نظر گرفته می شود

 سپس همانند الگوریتم aprioriمجموعه اقلام 1 عضوی را ایجاد کرده و تعداد تکرار آنها را در پایگاه می شماریم و مجموعه اقلام بزرگ 1 عضوی را مشخص می کنیم.

همانند الگوریتمapriori با استفاده ازعناصر مجموعه آیتمهای 1عضوی بزرگ، مجموعه آیتمهای دو عضوی را ایجاد می کنیم.(چون هر مجموعه آیتم k عضوی از ترکیب دو مجموعه  k-1 عضوی تشکیل شده است برای شمردن تعداد تکرار یک مجموعه kعضوی در پایگاه می توان در هر تراکنش به دنبال مجموعه آیتمهایk-1 عضوی تولید کننده آن مجموعه آیتم، گشت. یعنی مثلا برای شمردن تکرار مجموعه آیتم {1,2,3}در هر تراکنش باید ببینیم آیا (1,2)و(1,3)در مجموعه هست یا نه.)

 

 

سپس برای هر تراکنش TIDمربوطه را به همراه تمامی مجموعه آیتمهای kعضوی که در تراکنش هست[تولید کننده های k-1عضوی اش در تراکنش هست] به عنوان تراکنش پایگاه جدید اضافه می کنیم.(برای ا ستفاده مجموعه آیتمهای k+1)                         پایگاه جدید        Ĉk →

وتراکنشهایی که هیچ مجموعه آیتم kعضوی را پوشش ندهند به پایگاه جدید راه پیدا نمی کنند.سپس مجموعه اقلام k+1عضوی را با استفاذه از مجموعه اقلام kعضوی بزرگ ایجاد می کنیم ودر پایگاه داده جدید به دنبال تعداد تکرارهای این مجموعه اقلام می گردیم.[در واقع برای هر مجموعه آیتمk+1عضوی در هر تراکنش جستجو می کنیم ببینیم آیا دو مجموعه kعضوی تولید کننده اش در تراکنش است یا نه.]                                              

سپس TIDاین تراکنش به همراه تمامی  مجموعه آیتمهای k+1عضوی که پوشش میدهد به پایگاه داده جدید دیگری اضافه می کنیم،                                        پایگاه داده جدید     →  Ĉk+1

 و این کار را به ازای تمامی تراکنشها تکرار می کنیم.

عملیات بالا را زمانی که پایگاه داده جدید ایجاد شده (Ĉk )تهی نباشد ادامه می دهیم.

 

 

الگوريتم partition

 

 اين الگوريتم)  Savasere &Navathe & Omiecinski,1995) براي بدست آوردن مجموعه آيتمهاي بزرگ از دو قسمت تشكيل شده است. در قسمت اول اين الگوريتم پايگاه داده را به چندين بخش مجزا از نظر منطقي تقسيم مي كند وهمهً مجموعه آيتمهاي بزرگ محلي (مجموعه آيتمهايي كه تعداد تكرار آنها از  minsupp  محلي كه براي هر بخش در نظر گرفته شده بيشتر است) براي هر بخش بطور مجزا توليد مي شود .

سپس در انتهاي مرحله يك ، همه مجموعه اقلام بزرگ در هر بخش باهم مجموعه اقلام بزرگ بالقوه در سطح كل پايگاه داده را تشكيل مي دهند (مجموعه Σ). درقسمت دوم، پوشش (تعداد تكرار ) هر مجموعه آيتم در مجموعه اقلام بالقوه (Σ) در كل پايگاه داده شمارش مي شود و مجموعه اقلام بزرگ واقعي محاسبه مي شوند .

توجه: براي هر بخش يك minsupp محلي در نظر گرفته مي شود و يك minsupp كلي براي كل پايگاه داده نيز داريم.

نحوه توليد مجموعه اقلام بزرگ در هر بخش به صورت زير است:

 

 

  1. ابتدا به ازاي هر آيتم a در مجموعه I ( آيتم ها ) ، ID تراكنش هايي در بخش مربوطه از DB كه شامل آيتم a مي باشند را مشخص مي كنيم.

 

                         بخش2  t(a)={400,500,601}                       بخش1t(a)={100,300}   

 

سپس همانند الگوريتم apriori ، ابتدا مجموعه اقلام يك عضوي بزرگ را ايجاد مي كنيم . سپس از روي آنها مجموعه اقلام بزرگ دو عضوي را ايجاد ميكنيم و

با اين تفاوت كه در اين الگوريتم براي محاسبه پوشش (تعداد وقوع ) هر مجموعه آيتم مثل

                                          A={i1,i3,i5}                i1,i3,i5 Î I

 تعداد اعضاي مجموعه   t(A)=t(i1)Çt(i3)Çt(i5)را مي شماريم (به جاي خواندن دوبارهDB )، كه t(x) مجموعه ID تراكنش هاي شامل x است (در همان بخش).

پس از اينكه تمام مجموعه اقلام بزرگ(مجموعه اقلامي كه تعداد تكرار آنها در اين بخش از DB بزرگتر از minsupp محلي است ) را بدست آورديم همين كار را براي بخش هاي ديگر تكرار مي كنيم .

در صورتيكه مجموعه اقلام بزرگ  براي بخش i را ، åi  بناميم، مجموعه å به صورت زير ايجاد مي شود:

å=å1Èå2È…Èån                                                                         

حال مجموعه  Σشامل مجموعه اقلام بزرگ بالقوه است .اكنون يك بار ديگر پايگاه داده را مي خوانيم وپوشش هر كدام از مجموعه اقلام كانديد را در كل پايگاه داده مشخص مي كنيم.

 در صورتيكه پوشش A ازminsup،عمومي بزرگتر باشد .يك مجموعه اقلام بزرگ است.                                                        

 

 

تعداد بخش ها در پايگاه به گونه اي تعيين شده كه هر بخش به همراه ساختمان داده هاي مورد نياز در حافظه جاي گيرد .

 

 

 

 

 الگوريتم هاي MaxEclat,Eclat :

 

     در اين الگوريتم ها(Zaki,1997) نيز همانند partition ابتدا مجموعهt(ai) به ازاي هر ai متعلق I (مجموعه اقلام كلي)توليد مي شود.(t(ai)  شناسه تراكنشهايي را دارد كه شامل ai  هستند.)

ولذا پس از ايجاد هر مجموعه آيتم k عضوي (از مجموعه هاي k-1 عضوي) مثل A={a1,a2,a3} براي محاسبه پوشش A در پايگاه داده تعداد اعضاي مجموعه  ∩ t(a2) ∩ t(a3)   t(A)=t(a1) را شمارش مي كنيم.

با توجه به اينكه تعداد مقادير مياني با انجام اين كار (اشتراك ها) بسيار زياد مي شود، فضاي حافظه اصلي جوابگو نيست و لذا راه حل زير ارائه شد.

با توجه به تعاريف رياضي، مجموعه تمام زير مجموعه هاي يك مجموعه (مجموعه تواني) ، يك شبكه را تشكيل ميدهند.اين الگوريتم ، اين شبكه را به چندين زير شبكه تقسيم ميكند و براي هر زير شبكه بطور مجزا مجموعه آيتمهاي بزرگ را توليد مي كند. در اين صورت ساختمان داده هاي هر زير شبكه به راحتي در حافظه اصلي جاي مي گيرد .

 

 

 

 

در شكل زير ، زير شبكه مربوط به آيتم [A] را مشاهده مي كنيم كه شامل اعضايي است كه با A شروع مي شوند. به نودهايي كه مستقيما‍‌ با [A] در ارتباطند ’اتم’ها مي گوييم.

 

 

 

 

 

 

درهرزيرشبكه با داشتن اتمهاي مربوطه ميتوان استراتژيهاي پايين به بالا (partition,apriori ) ويا بالا به پايين را براي جستجوي مجموعه اقلام بزرگ بكار برد.(در شكل جستجوي پايين به بالا را مشاهده مي كنيم).

 

 

 

 

 

S در الگوريتم فوق مجموعه اتمهاي زير شبكه است و F مجموعه اقلام بزرگ نهايي است و     Tiمجموعه اقلام بزرگ جديد هستند.(يك سطح بالاتر).

 

در روش بالا به پايين در هر زير شبكه از بزرگترين مجموعه آيتم در آن زيرشبكه شروع مي كنيم و به سمت اتمها پيش مي رويم. هر گاه يك نود مجموعه قلم بزرگ  را مشخص كند ديگر براي آن نود فرزندانش چك نمي شوند زيرا مطابق قضيه قبلي (زير مجموعه هاي بزرگ هم بزرگند)، تمام زير مجموعه هايش مجموعه اتم هاي بزرگ هستند .

 

 

بجز روش بالا به پايين و پايين به بالا روش ديگري به نام hybrid كه تركيب دو روش بالا به پايين و پايين به بالا مي باشد  نيز وجود دارد كه اين روش را در شكل زير نشان داديم.

 

 

 

 

 

 

ابتداAWو AC تركيب مي شوند(. (ACWاگر(ACW)مجموعه آيتم بزرگ باشد با عنصر اتم بعدي (AT) تركيب ميشود و(ACTW)را ايجاد مي كند.دوباره اگر اين مجموعه آيتم بزرگ باشد با اتم بعدي (AD) تركيب ميشود و تشكيل (ACDTW) را مي دهد و چون اين مجموعه آيتم بزرگ نيست مجموعه آيتم قبلي (ACTW) يك مجموعه آيتم maximal  است.

حال اگر مجموعه تمام اتم هايي كه دراين مرحله شركت داشتند را S1 بناميم و بقيه اتم ها را, S2  به ازاي  اولين عضو  S2   مثل ai,ai را با تمام اتم هاي S1  تركيب كرده و اتم هاي جديد را به دست مي اوريم و براي آنها جستجوي پايين به بالا را تكرار مي كنيم و مجموعه آيتم هاي بزرگ را به دست مي آوريم .سپس ai هم به S1 رفته و از S2 خارج ميشود .حال دوباره به ازاي اولين عنصر S2 كارهاي قبل را تكرار مي كنيم.(تركيب اولين عنصرS2 با اتم هاي S1 و فراخواني جستجو پايين به بالا براي آنها)

 

 

 

با توجه به استراتژيهاي بالا الگوريتم هاي زير را داريم:

Eclat: روش پايين به بالا را براي هر زير شبكه اعمال مي كند.

Maxeclat : روش تركيب hybrid را براي هرزير شبكه اعمال مي كند.

 

الگوريتم با ساختار trie :

    در اين الگوريتم(Amir & Feldman & Kashi,1998) از يك ساختار داده بنام trie  براي توليد مجموعه اقلام بزرگ استفاده مي كنيم . به كار گيري اين ساختارها  ما را قادر مي سازد تا مجموعه اقلام بزرگ را به طور كارا توليد كنيم.( حتي با وجود minsupp هاي بسيار كوچك)

 

     رشته S=S[1]...S [n] را در نظر بگيريد براي افزودن اين رشته به درخت trie ابتدا از ريشه درخت trie شروع مي كنيم (current-node= root) و نگاه مي كنيم , بينيم آيا يالي از

current-node با بر ‌چسپ S [1] وجود دارد يا خير .

اگر چنين يالي وجود داشت , از طريق آن يال به نود فرزند مي رويم و ) نود فرزند=(current node سپس دوباره اعمال بالا را براي current-node جديد و كاراكتر بعدي (S[2]) تكرار مي كنيم.

در غير اين صورت ( يالي با بر چسب S[1]  وجود نداشت ) , يالي با برچسب S[1]  از current-node   ايجاد مي كنيم و فرزند ايجاد شده از طريق اين يال , current-node   مرحله بعدي است .

حال بايد كار را براي S[2]  و current-node   جديد تكرار كنيم .

اين كار را آنقدر تكراركنيم تا رشته تمام شود, در صورتيكه تمام رشته را چك كرديم و كار را براي S[n]  و current-node مربو طه اش چك كرديم شمارنده مربوط به نود فرزند ( Currentنود آخر از طريق يال S[n]  )  رامي افزاييم.

 

الگوريتم مربوطه:

 

     در اين الگوريتم فقط يك دور پايگاه داده را مي خوانيم و به ازاي هر تراكنش مثل  ,T تمام زير مجموعه هاي T  را به درخت (trie)   مي افزاييم .

مثلا براي ‍{1,2,5}  زير مجموعه هاي ‍{1,2,5},{2,5},{1,5},{1,2},{5},{2},{1} يكي يكي به درخت trie افزوده مي شوند.

در نهايت شمارنده مربوطه به هر نود در درخت (trie) تعداد وقوع مجموعه آيتم نود مربوطه را در بر دارد.

 

نكته :اين الگوريتم براي حالات خاصي كه طول هر تراكنش بسيار كم است در نظر گرفته شده است و در هنگامي كه طول تراكنش ها كم باشد , مي توان نتيجه گرفت كه طول مجموعه اقلام بزرگ نيز از يك حدي

 ( طول M ) بيشتر نخواهد بود,لذا براي هر تراكنش فقط زير مجموعه هاي 1 تا M عضوي را توليد وبه درخت اضافه مي كنيم.

 

الگوريتم fp-grow :

 

     در اين الگوريتم (Han &Pei &Yin,2000)با استفاده از ساختاري فشرده به نام

 frequent pattern tree(fp-tree) كل فضاي پايگاه داده را به فضاي كمي در حافظه اصلي نگاشت مي كنيم و موقع شمردن پوشش مجموعه آيتم ها درپايگاه داده از fp- tree  استفاده مي كنيم.به اين ترتيب زمان ناشي از خواندن پايگاه داده (DB) در دفعات كاهش مي يابد.

 

تعريف:

1_ يك fp- tree يك درخت است كه ريشه آن null است و يك مجموعه از زير درخت هاي پيشوندي آيتم به عنوان فرزندان ريشه هستند, يك جدول سرايند آيتم هاي بزرگ هم وجود دارد.

2_هر نود در درخت   fp- tree شامل سه مولفه است:

الف: نام آيتم: آ يتمي كه نود مشخص مي كند.

ب: تعداد : تعداد تراكنش در پايگاه داده, كه شامل بخشي  از شاخه درخت از ريشه تا آن نود هستند.

ج: link : اشاره گري به نود بعدي در درخت كه شامل همين آيتم است , يا مقدارnull دارد.

3 _ هر ورودي در جدول سرايند از دو فيلد تشكيل شده:

1-نام آيتم                   2- اشاره گري به اولين نود حامل آيتم

 

ساخت fp- tree :

 

     براي ساخت fp tree  ازپايگاه داده , ابتدا يك دور پايگاه داده را مي خوانيم تا پوشش هر آيتم مشخص شود . . (Supp (a))

سپس قبل از افزودن هر تراكنش به درخت fp tree , مجموعه آيتم هاي آن تراكنش را, ابتدا بر اساس supp  (پوشش) مرتب مي كنيم و سپس به درخت مي افزاييم.

 

 

 

الگوريتم ساخت fp- tree  :

 

     ورودي : يك پايگاه داده شامل تراكنش ها و يك حد مينيمم براي پوشش )(

     خروجي : درخت fp tree مربوطه.

 

 

الگوريتم :

 1- يكبار پايگاه داده را بخوانيد.مجموعه F شامل آيتم هاي بزرگ( با تكرار كافي در پايگاه داده) و پوشش هر يك را بدست آوريد.سپس F مرتب كنيد و L بناميد.

2_ ريشه fp-tree (T)را null بگذاريد و براي هر تراكنش در پايگاه داده , به ترتيب زير عمل كنيد:

ابتدا آيتم هاي بزرگ در تراكنش را انتخاب نماييد و مطابق مجموعه L مرتب كنيد( به ترتيب پوشش) فرض كنيد مجموعه آيتم هاي بزرگ مرتب شده  حاصل از اين تراكنش به صورت [p|P] كه p اولين آيتم در اين مجموعه است و P بقيه آيتم هاست , تابع  insert tree ( [p|P] ,T) را فراخواني كنيد.

اين تابع به شكل زير كار ميكند كه اگر T فرزندي مثل N دارد كه

 N.itemname=p.itemname  آنگاه شمارنده (count)   نود N يكي افزايش مي يابد و گرنه يك نود جديد N مي سازيم و شما رنده آن را يك مي كنيم .

Link پدربراي اين نود به T اشاره مي كندو node-link اين نود به نودي با همين item-name    

 در همين درخت اشاره مي كندو اگر P تهي نيست insert-tree(P,N) را فراخواني كنيد.

 شكل صفحه  بعد مثالي را نشان مي دهد كه fp tree براي جدول 2 رسم شده است و header table نيز آدرس اولين نود را براي هر آيتم بزرگ را دارد .

 

الگوي شرطي:

     براي روشن مفهوم فوق (الگوي شرطي) شكل را در نظر بگيريد.آيتم p را در نظر بگيريد.مطابق شكل شاخه هاي  پيشوند هاي p در درخت عبارتند از <f:4,c:3,a:3,m:2> و زير شاخه. <c:1,b:1> به اين معني كه مجموعه آيتم هاي پيشوندي در پايگاه داده عبارتند از <c:1,b:1>,<f:2,c:2,a:2,m:2> كه به اين دو الگوي هاي شرطي ميگوييم.

 

 

الف

 

 

 

 

 

  Fp-tree شرطي :

 

   در صورتيكه با الگوهاي شرطي, از نو يك fp-tree درست كنيم و نود مربوط به  آيتم هايي كه تعداد تكرار كمتر از   دارند  را حذف كنيم, درخت حاصل fp-tree  شرطي ناميده ميشود.و به صورت(fp-tree|p) نمايش داده مي شود ) كه p آيتم مربوطه است)

 

 

 

 

 

 

 

 

 

الگوريتم ايجاد مجموعه آيتم هاي بزرگ بوسيله درخت fp-tree :

 

     روش كار به اين صورت است كه ابتدا به ازاي هر آيتم بزرگ مثل {a} كارهاي زير را تكرار مي كنيم :

1-     temp =λ  

2-اگر  , aÈtemp را به مجموعه آيتم هاي بزرگ اضافه كن .

T1=(fp-tree|a) را در درخت ايجاد ميكنيم و (temp=a).

 

 

دوباره درداخل اين  fp-treeجديد(T1)  به ازاي هرآيتم بزرگ دراين  fp-treeمثل a' در صورتيكه  (تكراردردرخت T1)}È temp,   {a' به مجموعه آيتم هاي بزرگ اضافه مي شودو دوباره همين كار را براي ( T2 =(T1|a' حاصل از درخت T1 تكرار مي كنيم.

(مقدار  temp قبل از فراخواني تابع (T1|a') برابرست با : temp=a' È temp')

 

 

 

 

 

الگوريتم برداري :

 

برای هر آیتم یک بردار مشخصات (ویژگی) فشرده به همراه یک رکورد ویژگی ساخته می‌شود. این ساختار فقط یکبار در هنگامی که پایگاه داده برای اولین بار خوانده می‌شود، ساخته می‌شود. سپس براي پوشش  محاسبه هر مجموعه آيتم, از بردارهاي فوق( به جاي پايگاه داده ) استفاده ميشود.

لذا  دسترسی مجدد به پايگاه داده اوليه  نیازی نیست و محاسبات نیز بسیار سریعتر از الگوریتمهای قبل می‌باشد.

 

   الگوریتم ارائه شده:

 

       ایده‌ی این روش، استخراج ویژگی‌های آیتم‌های مشخص شده1 و ذخیره آنها در یک بردار فشرده است. پس از اینکه بردار فشرده این آیتمها ساخته شود همه محاسبات برای مشخص شدن پوشش (تعداد تکرار در پایگاه داده) هر مجموعه آیتم از طریق عملیا ت AND بین بردارها صورت می‌گیرد بجای دسترسی مجدد به پایگاه داده.

(بردار فشرده‌ی یک آیتم مشخص می‌کند که این آیتم در کدام تراکنش‌ها رخ داده است)

در الگوریتم(Tseng,2000) دو پایگاه داده داریم بنامهای Support DB  و feature DB:

feature DB  : بردارهای مربوط به آیتم‌ها را مشخص می‌کند. (هرخانه آن بردار مربوط به یک آیتم است)

Support DB: پوشش هر آیتم را در بر دارد.

هنگامی که کاربر یک تقاضا مبتنی بر کشف قوانین وابستگی بین آیتمهای IT (که ) با حداقل پوشش minsupp و حداقل درجه اطمینان minconf می دهد، در این روش ابتدا چک می‌کنیم ببینیم آیا     feature   DB  , Support DB وجود دارند یا نه در صورتیکه وجود نداشته باشند آن ها را می‌سازد. ساخت feature DB  ,  Support DB احتیاج به یک دور خواندن کل پایگاه داده دارد.در طول خواندن پایگاه داده، Feature DB ، Support DB برای آیتمهای مشخص شده توسط کاربر نیز ساخته می‌شود. پس از اینکه Feature DB Support DB, ساخته شدند در ديسك قرار مي گيرند.

لذا , را نيز با دسترسی مستقیم به Support DB مشخص کنیم , بجای خواندن کل پایگاه داده.

 پس از مشخص شدن ، بردار هر مجموعه آیتم مورد نیاز نیز با عملیات AND به سرعت انجام می‌شود.

1) IF (SupportDB is empty)

Scan the database to build SupportDB and determine , and build Feature DB for interested items;

    ELSE

Retrieve SupportDB and determine and build FeatureDB for non-existent items;

2) k=2

3) Generate candidate large itemsetfrom;

4) IF  is not empty

Optain the count for each itemset in   by bitwise AND operators on the  items' feature vectors and get;

 

go to step 3;

5) Answer= union of all;

 

 

     مرحله ساخت بردار  برای آیتم d به صورت زیر است:

بردار یک بردار است به طول تعداد تراکنشهای پایگاه داده. در صورتیکه آیتم d در یک تراکنش با شناسه‌ی j باشددر غیر اینصورت . (فرض بر این است که شناسه‌ها در پایگاه داده از 1 تا1-  nطول پایگاه داده" است) مثلاً اگرآیتم a در یک پایگاه داده‌ی 10 عضوی فقط در رکوردهای 10,5,4 رخ دهد, داریم:

 

 

1

2

3

4

5

6

7

8

9

10

0

0

0

1

1

0

0

0

0

1

 

 

 

به این ترتیب با داشتن بردار هر آیتم برای مشخص کردن بردار هر مجموعه آیتم مثل  داریم :

 

 

بدیهی است که تعداد 1 ها در بردار هر مجموعه آیتم برابر پوشش آن مجموعه آیتم است.

به این ترتیب تمام مجموعه آیتم‌های بزرگ تولید می‌شوند.

واضح است که در یک بردار مقادیر زیادی صفر وجود دارد که فضای زیادی را اشغال می‌کنند. برای رفع این مشکل می‌توان در صورتیکه چندین (بیشتر از 8) 0 پشت سر هم وجود داشت تعداد آنها را بشماریم و در یک index ِ شمارنده ذخیره کنیم. با ذخیره بردار هر آیتم دسترسی به پایگاه داده به حداقل می‌رسد.

یک راه حل دیگر اینست که برای هر آیتم فقط شماره رکوردهایی را که آیتم در آنها رخ داده را ذخیره کنیم یعنی به عنوان مثال اگر آیتم a در رکوردهای شماره  220,201,100 رخ داده بردار آن به شکل زیر است: 

 

در اینصورت برای هر مجموعه آیتم X بردار به شکل زیر است:

 

 

 

ساخت و هرس کردن مجموعه آیتمهای کاندید بزرگ از  همانند الگوریتم Aprioriاست با این تفاوت که برای شمارش پوشش هر مجموعه آیتم این کار از طریق عملیات   AND  یا اشتراک انجام می‌دهیم.       

و تنها برای محاسبه‌ی بردارهای هر آیتم, پایگاه داده را در ابتداي كار يك دور می‌زنیم.

 

 

 

 

 

 

 يك الگوريتم جديد براي پايگاه داده هاي پويا :

 

 

     پویایی پایگاه داده را از دو جنبه می توان بررسی کرد :

 

  1. هنگامی که داده ها تغییر کنند (یک رکورد تغییر کند) یا داده ها از پایگاه داده حذف شوند .

  2. هنگامی که داده ای ( رکورد جدید ) به پایگاه داده اضافه شود .

داده کاوی که با نوع اول از پویایی پایگاه داده تطابق دارد را داده کاوی کاهشی و داده کاوی که با نوع دوم پویایی تطابق دارد را داده کاوی افزایشی می نامیم.

الگوریتم    Zhang &Etal,2003)  )    از نوع الگوریتم کاهشی است . یعنی ورودی را بررسی میکنیم که میخواهیم داده کاوی را در یک پایگاه داده که داده هایش دائما حذف  شده و یا تغییر کرده اند انجام میدهیم و قاعدتا انتظار داریم که الگوریتم در فواصل مختلف زمانی که پایگاه داده مورد تغییر (یا حذف)  قرار می گیرد با بکارگیری الگوهای حاصل از داده کاوی قبلی از هزینه زمانی خوبی برخوردار باشد .

متاسفانه تحقیقی در مورد کشف قوانین وابستگی هنگامی که داده ها از پایگاه داده حذف می شوند صورت نگرفته است . در حالیکه حذف ،یکی از عملیات اساسی در پایگاه داده است .

لذا کاربر باید دوباره الگوریتم داده کاوی را برای پایگاه داده جدید با تولید تمام الگوها از اول بکار گیرد که این کار بسیار پر هزینه است .

 

نگهداری قوانین وابستگی :

 

    فرض کنید DB پایگاه داده اصلی (قبل ار تغییر) باشد ، db نیز یک مجموعه داده باشد که تصادفا از DB حذف میشوند و DB-db بقیه پایگاه داده ی اصلی باشد .

 |DB| ، |db| و |DB-db| به ترتیب اندازه ی پایگاه داده اصلی ، پایگاه داده ی حذف شده و پایگاه داده ی حاصل از حذف داده ها از DB باشد . همچنین فرض کنید S0 حداقل پوشش تعیین شده توسط کاربر باشد .

 L ، L' و L" مجموعه ی مجموعه آیتمهای بزرگ در DB  ، db و DB-db می باشد . فرض کنید که مجموعه L و پوشش هر مجموعه آیتم بزرگ در آن مشخص است .

بعد از یک دوره زمانی برخی از داده ها ی غیر مفید از پایگاه داده اصلی حذف می شوند و پایگاه داده ی حذف شده ی db را تشکیل میدهند .

 فرض کنید یک مجموعه آیتم مثل X موجود باشد با پوشش Supp X  . X  یک مجموعه آیتم بزرگ است اگر≥ minSupp Supp

بنابراین یک مجموعه آیتم مثل X میتواند در پایگاه داده جدید (DB-db) بزرگ نباشد .

 

الگوریتم کاهشی :

 

     در این الگوریتم با داشتن L  )مجموعه آیتمهای بزرگ DB) و S0 (حداقل پوشش) ، مجموعه آیتمهای بزرگ در پایگاه داده ی جدید (DB-db) را که در L" قرار میدهیم ، بدست می آوریم .

این الگوریتم به شکل زیر آمده است :

 

Compute S' ;  /* S' is explained later in this section and also in Section 4.1. */

 

Mine db with minimum support S' and put the frequent itemsets into L' ;

 

For each itemset in L do

            For each itemset in L' do

              Identify the frequent itemsets in DB-db, eliminate them             from L' and store to L" ;

Return L";

End procedure ;

 

در این الگوریتم برای S' مقادیر مختلفی وجود دارد . بطور کلی S' = m.S0 که 0<m<1 است .

مشخص شدن m  یک مساله قابل بحث و تحقیق است .

 

نتيجه گيري:

هدف اصلي از داده كاوي ,كشف دانش نهفته در محيط مورد بررسي است كه اين دانش مي تواند شكلهاي گوناگوني داسته باشد . دانش استخراج شده مي تواند به فرم الگوهاي موجود در داده ها باشد كه كشف اين الگوها منجر به شناخت بهتر سيستم نيز مي شود . الگوهاي استخراجي عموما بيانگر روابط بين ويژگيهاي سيستم هستند. همانطور كه ديديد در اين تحقيق ما الگوريتم هاي مختلف براي كشف قوا نين وابستگي در پايگاه داده را, مورد بررسي قرار داديم. از بين الگوريتم هاي گفته شده Vector,Partition,Apriori از مهمترين الگوريتم ها مي باشند.

الگوريتم هاي trie,fp-grow نيز در موارد خاص بسيار كارا هستند.

در تمام الگوريتم هاي بحث شده پوشش حداقل ثابت بوده و فقط يك مقدار به عنوان پوشش حداقل داشتيم.الگوريتم هايي(Lee &Hong,2005) براي مواقعي كه براي هر آيتم يك پوشش حداقل,در نظر مي گيريم نيز طراحي شده است كه از گنجاندن آنها در اينجا خودداري كرديم.

همچنين الگوريتم هايي براي مواردي كه در پايگاه داده, به ازاي هر مشتري علاوه بر اجناس خريداري شده تعداد هر جنس را هم داريم , موجود مي باشد.

اخيرا نيز الگوريتم هاي فازي نيز براي كشف قوانين وابستگي در پايگاه داده, طراحي شده است .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

مراجع:

1)A.amiri,R.Feldman and R.Kashi. A new and versatile method for association  generation. Information Systems, vol. 22,no. 6, pp. 333-347, 1999.

2)J.Hipp,U.Guntzer and G.Nakhaeizadeh.Algorithms for Association Rules

data Mining _ a General survey and comparision. Source, ACM SIGKDD Explorations Newsletter,2(1):58–64, July 2000.

3) Y.Lee ,T.Hong and W.Lin.Mining association rules with multiple mininmum supports using minimum constraints . International Journal of Approximate Reasoning 40(2005) 44-54.

4)S.Zhang ,X.Wn , J.Zhang and C.Zhang. A Decremental Algorithm for Maintaining Frequent Itemsets in Dynamic Database. DaWaK 2005, LNCS 3589, pp. 305–314, 2005.

5) S.Tseng.An Efficient Method for Mining Association Rules With Item Constraint . Technical Report No. CSD-99-1089,2000.

6) P.Hsu,Y.chen and C.ling.Algorithms for mining  associations rules in bag database . INFORMATION SCIENCES 166(2004) 31-47.

7)Y.GAO,J.MA and L.Ma.

A New Algorithm for mining fuzzy association rules.preceedings of third international confrance of machine learning and cybmetic, shanghai,26_29 Agust 2004  .

اطلاعات مورد نياز نيز با استفاده از اينترنت تهيه شده است .كليد واژه هاي مورد استفاده عبارتند از :

Data Mining , Graph Data Base , Graph Search Algorithms

سايتهايي كه با كليد واژه هاي فوق نمايش داده مي شوند تعداد نسبتا زيادي را تشكيل مي دهند  پس از مطالعه سايتها ,سايتهاي زير قابل استفاده تشخيص داده شدند و مورد استفاده قرار گرفتند :

 

citeseer.nj.nec.com/gting94graphdb.html : صفحه ابتدايي GraphDB است كه نحوه پياده سازي گراف در بانك اطلاعاتي را توضيح مي دهد .

 db.cs.sfu.ca/DBMiner: سايتي است حاوي اطلاعاتي در مورد معماري نرم افزار داده كاوي و نمونه يك

نرم افزارتوليد شده در اين زمينه كه بر روي انبار داده عمل داده كاوي را انجام مي دهد .

 db.cs.sfu.ca/GeoMiner:  سايتي است حاوي اطلاعاتي در مورد داده كاوي و يك پروژه در زمينه داده كاوي فضايي .

 

www.mecani.org : سايتي است حاوي اطلاعاتي در مورد بانكهاي اطلاعاتي.

 

www.sigmod.com:   سايتي است حاوي اطلاعاتي در مورد داده كاوي از بانكهاي رابطه اي و فضايي.

 

ftp.fas.sfu.ca  : اين سايت حاوي معماري و الگوريتمهاي متعددي براي سيستمهاي داده كاوي است .

هرگونه سوال در زمينه Data Mining  را مي توانيد  با اين email  نيز در ميان بگذاريد .                                   

 

training@the-modeling-agency.com

 


 

1.Khowledge Discovery in DB (KDD)

 

1 . Data Warehouse

 

1 . Classification    

 

2 . Estimation    

 

1 . Statistical Regression

 

2 . Association Rules

 

2 .support

 

3 .confidence

 

-1آیتم هایی که توسط کاربر مشخص می شود.

دانلود فایل مرتبط با خبر :
Share
ارسال نظر
نام و نام خانوادگی :(اختیاری)پست الکترونیک :(اختیاری)
نظر شما :    
لطفا حاصل عبارت زیر را در باکس روبرو وارد کنید:
= ۱۴ + ۶ ارسال
393942