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


در حال بارگذاری
23 اکتبر 2022
فایل ورد و پاورپوینت
2120
1 بازدید
۷۹,۷۰۰ تومان
خرید

توجه : به همراه فایل word این محصول فایل پاورپوینت (PowerPoint) و اسلاید های آن به صورت هدیه ارائه خواهد شد

  مقاله نگاهی بر داده کاوی و کشف قوانین وابستگی دارای ۲۴ صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است

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

توجه : در صورت  مشاهده  بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی مقاله نگاهی بر داده کاوی و کشف قوانین وابستگی،به هیچ وجه بهم ریختگی وجود ندارد


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

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

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

Data mining(داده کاوی)
تعریف :
داده کاوی فرآیند بکارگیری یک یا چند تکنیک آموزش کامپیوتر، برای تحلیل و استخراج داده های یک پایگاه داده می باشد.در واقع هدف داده کاوی یافتن الگوهایی در داده هاست.
دانش کسب شده از فرآیند داده کاوی بصورت مدل یا تعمیمی از داده ها نشان داده می شود.
چندین روش داده کاوی وجود دارد با این وجود همه روشها “ آموزش بر مبنای استنتاج “ را بکار می برند.
آموزش بر مبنای استنتاج، فرآیند شکل گیری تعاریف مفهوم عمومی از طریق مشاهده مثالهای خاص از مفاهیمی که آموزش داده شده اند، است.

مثال زیر نمونه ای از دانش بدست امده از طریق فرایند اموزش بر مبنای استنتاج است:
آیا تا کنون فکر کرده اید، فروشگاههای بزرگ اینترنتی در mail های خود به مشتریان از چه تبلیغاتی استفاده می کنند؟ و آیا این تبلیغات برای همه مشتریان یکسان است؟
پاسخ این است که از روی دانش کسب شده از اطلاعات خرید افراد و نتیجه گیری از این دانش، این کار را انجام می دهند.مثلا در نظر بگیرید یک قانون در پایگاه داده بصورت زیر استخراج می شود:
دقت = ۸۰% : سیگار می خرند ^ نان می خرند کسانی که شیر می خرند
از روی این قانون فروشگاه می تواند به تمام کسانی که شیر می خرند تبلیغات سیگار و انواع نان را نیز بفرستد.همچنین این قانون در چیدن قفسه های فروشگاه نیز بی تاثیر نخواهد بود.
{شیر و نان و سیگار در قفسه های کنار هم چیده شوند}

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

آیا داده کاوی برای حل مسائل ما مناسب است؟
تصمیم گیری در مورد اینکه آیا داده کاوی را به عنوان استراتژی حل مساله بکار ببریم یا نه، یک مساله دشوار است.
اما به عنوان نقطه شروع چهار سؤال عمومی را باید در نظر بگیریم :
۱ آیا به وضوح می توانیم مساله را تعریف کنیم ؟
۲ آیا بطور بالقوه داده با معنی وجود دارد ؟

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

شکل فوق یک دیاگرام از فرآیند داده کاوی را نشان می دهد.

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

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

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

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

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

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

تخمین۲ :
مشابه طبقه بندی ، هدف یک مدل تخمین نیز مشخص کردن مقدار برای یک صفت خروجی است؛ اما بر خلاف طبقه بندی صفات خروجی برای مساله تخمین، عددی است بجای مقوله ای .
بعنوان یک مثال برای تخمین ، پایگاه داده ای را در نظر بگیرید که هر رکورد آن اطلاعاتی را راجع به شخصی دارد مثل : محل زندگی، غذای روزانه در اغلب روزها، نوع ماشین شخصی ، درآمد ماهانه و ;.
هدف الگوریتم تخمین در این مثال ایجاد مدلی برای تشخیص درآمد ماهانه نمونه های جدید (رکوردهای جدید) می باشد.{که بقیه صفات آنها بجز درآمد ماهانه مشخص است}.
بیشترتکنیکهای تحت کنترل قادرند که یا مسائل طبقه بندی را حل کنند یا تخمین ، اما نه هردورا.

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

دسته بندی بدون کنترل۱ :
در دسته بندی بدون کنترل، ما دیگر صفات خروجی نداریم که ما را در فرآیند یادگیری راهنمایی کند، در عوض برنامه مربوطه ساختارهای دانش را با بکارگیری معیارهای “ کیفیت دسته” برای گروه بندی داده ها به دو یا چند کلاس (دسته)، بدست می آورد.
یک هدف اساسی دسته بندی بدون کنترل، کشف ساختارهای مفهومی در داده است.
کاربردهای متداول دسته بندی بدون نظارت عبارتند از :
– مشخص می کند که آیا ارتباطات با معنی در شکل مفاهیم می تواند در داده ما پیدا شود یا نه ؟
– کارآیی روش آموزش تحت کنترل را مشخص می کند.
– بهترین صفات ورودی برای آموزش تحت کنترل را مشخص می کند.
– شناسایی از حد خارج شده ها (outlier)

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

تکنیکهای داده کاوی تحت کنترل۳ :
تکنیکهای داده کاوی برای بکارگیری استراتژی داده کاوی برای یک مجموعه داده بکار می رود. یک تکنیک داده کاوی از دو قسمت تشکیل شده است:
۱ الگوریتم.
۲ ساختار دانش مربوطه مثل درخت یا یک مجموعه قوانین درخت تصمیم که در قسمتهای قبلی توضیح دادیم.
در اینجا چندین روش دیگر برای داده کاوی نظارت شده ارائه می دهیم :

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

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

میبینیم که E صفت خروجی است که مقدارش توسط ترکیب خطی صفات A , B , C تعیین می گردد.
همانند شبکه عصبی ، در این روش نیز همه ورودیها باید عددی باشند و در صورتیکه داده ها در پایگاه داده مقوله ای باشند باید آنها را به داده های عددی تبدیل کنیم.

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

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

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

Conf(x=>y) = support(xUy) support(x)
الگوریتم : Apriori این الگوریتم(Agrawal & Srikant ,1994) برای تولید مجموعه اقلام بزرگ به این ترتیب
عمل می کند:

ابتدا با یک دور خواندن پایگاه داده مجموعه اقلام بزرگ یک عضوی ((۱-itemsetرا مشخص می کنیم.[مجموعه اقلام ۱ عضوی که تعداد تکرار آنها در DB از حد تایین شده(minsup) بیشتر است.]
سپس با استفاده ازمجموعه اقلام بزرگ یک عضوی، مجموعه اقلام دو عضوی را ایجاد می کنیم و برای تایین پوشش مجموعه اقلام دو عضوی یک بار دیگر کل پایگاه داده را می خوانیم تا مجموعه اقلام بزرگ دو عضوی را تایین کنیم.
به همین ترتیب با استفاده از مجموعه اقلام برگ دو عضوی مجموعه اقلام سه عضوی را ایجاد کرده و با خواندن دوباره پایگاه داده پوشش هر مجموعه قلم سه عضوی را مشخص کرده و مجموعه اقلام بزرگ سه عضوی تولید می شوند و این کار را برای مجموعه های ۴عضوی و ; انجام میدهیم تا مرحله ای که هیچ مجموعه آیتم بزر الگوریتم:
L1= { larg-1-itemset }
for ( k=2; Lk-1 0;k+1 ) do

begin
C k=apriori – gen(Lk-1 ) //عضوی k عضوی با استفاده از اقلام بزرگ۱-k ساخت زیر مجموعه های
for all transaction lD do
begin
C t=subset(Ck,l); // رخ دادند. عضوی در تراکنش k تست اینکها کدام مجموعه آیتمهای
for all candidate cCt do
c.count++;
end
Lk={ cCk l c.count minsup}
end;
Answer=Uk Lk

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

minsup=3 Database:
Items TID
۱ ۳ ۴ ۵ ۱۰۰
۲ ۳ ۵ ۲۰۰
۱ ۲ ۳ ۵ ۳۰۰
۲ ۵ ۴۰۰
۱ ۳ ۴ ۵ ۵۰۰

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

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)در ابتدا فضای جستجو پایگاه داده اولیه است که هر تراکنش آن را به عنوان مجموعه ای از مجموعه قلم های تک عضوی می بینیم:
به این معنی که تراکنش ((۱۰۰ l 1,2,3 به صورت (۱۰۰ l{1}{2}{3})در نظر گرفته می شود
سپس همانند الگوریتم aprioriمجموعه اقلام ۱ عضوی را ایجاد کرده و تعداد تکرار آنها را در پایگاه می شماریم و مجموعه اقلام بزرگ ۱ عضوی را مشخص می کنیم.
همانند الگوریتمapriori با استفاده ازعناصر مجموعه آیتمهای ۱عضوی بزرگ، مجموعه آیتمهای دو عضوی را ایجاد می کنیم.(چون هر مجموعه آیتم k عضوی از ترکیب دو مجموعه k-1 عضوی تشکیل شده است برای شمردن تعداد تکرار یک مجموعه kعضوی در پایگاه می توان در هر تراکنش به دنبال مجموعه آیتمهایk-1 عضوی تولید کننده آن مجموعه آیتم، گشت. یعنی مثلا برای شمردن تکرار مجموعه آیتم {۱,۲,۳}در هر تراکنش باید ببینیم آیا (۱,۲)و(۱,۳)در مجموعه هست یا نه.)

سپس برای هر تراکنش 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 کلی برای کل پایگاه داده نیز داریم.
نحوه تولید مجموعه اقلام بزرگ در هر بخش به صورت زیر است:

۱- ابتدا به ازای هر آیتم a در مجموعه I ( آیتم ها ) ، ID تراکنش هایی در بخش مربوطه از DB که شامل آیتم a می باشند را مشخص می کنیم.

بخش۲ t(a)={400,500,601} بخش۱t(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 بنامیم، مجموعه به صورت زیر ایجاد می شود:
=۱۲…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) می افزاییم .
مثلا برای ‍{۱,۲,۵} زیر مجموعه های ‍{۱,۲,۵},{۲,۵},{۱,۵},{۱,۲},{۵},{۲},{۱} یکی یکی به درخت trie افزوده می شوند.
در نهایت شمارنده مربوطه به هر نود در درخت (trie) تعداد وقوع مجموعه آیتم نود مربوطه را در بر دارد.

نکته :این الگوریتم برای حالات خاصی که طول هر تراکنش بسیار کم است در نظر گرفته شده است و در هنگامی که طول تراکنش ها کم باشد , می توان نتیجه گرفت که طول مجموعه اقلام بزرگ نیز از یک حدی
( طول M ) بیشتر نخواهد بود,لذا برای هر تراکنش فقط زیر مجموعه های ۱ تا M عضوی را تولید وبه درخت اضافه می کنیم.

الگوریتم fp-grow

در این الگوریتم (Han &Pei &Yin,2000)با استفاده از ساختاری فشرده به نام
frequent pattern tree(fp-tree) کل فضای پایگاه داده را به فضای کمی در حافظه اصلی نگاشت می کنیم و موقع شمردن پوشش مجموعه آیتم ها درپایگاه داده از fp- tree استفاده می کنیم.به این ترتیب زمان ناشی از خواندن پایگاه داده (DB) در دفعات کاهش می یابد.

تعریف:
۱_ یک fp- tree یک درخت است که ریشه آن null است و یک مجموعه از زیر درخت های پیشوندی آیتم به عنوان فرزندان ریشه هستند, یک جدول سرایند آیتم های بزرگ هم وجود دارد.
۲_هر نود در درخت fp- tree شامل سه مولفه است:
الف: نام آیتم: آ یتمی که نود مشخص می کند.
ب: تعداد : تعداد تراکنش در پایگاه داده, که شامل بخشی از شاخه درخت از ریشه تا آن نود هستند.
ج: link : اشاره گری به نود بعدی در درخت که شامل همین آیتم است , یا مقدارnull دارد.
۳ _ هر ورودی در جدول سرایند از دو فیلد تشکیل شده:
۱-نام آیتم ۲- اشاره گری به اولین نود حامل آیتم

ساخت fp- tree :

برای ساخت fp tree ازپایگاه داده , ابتدا یک دور پایگاه داده را می خوانیم تا پوشش هر آیتم مشخص شود . . (Supp (a))
سپس قبل از افزودن هر تراکنش به درخت fp tree , مجموعه آیتم های آن تراکنش را, ابتدا بر اساس supp (پوشش) مرتب می کنیم و سپس به درخت می افزاییم.

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

ورودی : یک پایگاه داده شامل تراکنش ها و یک حد مینیمم برای پوشش ) (
خروجی : درخت fp tree مربوطه.
الگوریتم :
۱- یکبار پایگاه داده را بخوانید.مجموعه F شامل آیتم های بزرگ( با تکرار کافی در پایگاه داده) و پوشش هر یک را بدست آورید.سپس F مرتب کنید و L بنامید.
۲_ ریشه 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 برای جدول ۲ رسم شده است و 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> که به این دو الگوی های شرطی میگوییم.

  راهنمای خرید:
  • در صورتی که به هر دلیلی موفق به دانلود فایل مورد نظر نشدید با ما تماس بگیرید.