الگوریتم داده کاوی

الگوريتم با ساختار 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 نيز آدرس اولين نود را براي هر آيتم بزرگ را دارد.

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

فریلنسر هستم و مهارت انجام پروژه ای را دارم!

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

نحوه سفارش پروژه در سایت کافه پروژه :

اگر پروژه ای دارید که میخواهید آن را برون سپاری کنید کافی است در سایت کافه پروژه ثبت نام کنید و پروژه خود را ثبت نمایید.پروژه شما هر چه که باشد حتما مجری برای آن وجود دارد.جهت ثبت نام و ثبت سفارش پروژه خود برروی دکمه زیر کلیک نمایید.

بدون دیدگاه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *