الگوریتم داده کاوی
الگوریتم با ساختار 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 ) بیشتر نخواهد بود,لذا برای هر تراکنش فقط زیر مجموعه های ۱ تا M عضوی را تولید وبه درخت اضافه می کنیم.
الگوریتم fp-grow
در این الگوریتم (Han &Pei &Yin,2000)با استفاده از ساختاری فشرده به نام
frequent pattern tree(fp-tree) کل فضای پایگاه داده را به فضای کمی در حافظه اصلی نگاشت می کنیم و موقع شمردن پوشش مجموعه آیتم ها درپایگاه داده از fp- tree استفاده می کنیم.به این ترتیب زمان ناشی از خواندن پایگاه داده (DB) در دفعات کاهش می یابد.
تعریف:
1_ یک fp- tree یک درخت است که ریشه آن null است و یک مجموعه از زیر درخت های پیشوندی آیتم به عنوان فرزندان ریشه هستند, یک جدول سرایند آیتم های بزرگ هم وجود دارد.
2_هر نود در درخت fp- tree شامل سه مولفه است:
الف: نام آیتم: آ یتمی که نود مشخص می کند.
ب: تعداد : تعداد تراکنش در پایگاه داده, که شامل بخشی از شاخه درخت از ریشه تا آن نود هستند.
ج: link : اشاره گری به نود بعدی در درخت که شامل همین آیتم است , یا مقدارnull دارد.
۳ _ هر ورودی در جدول سرایند از دو فیلد تشکیل شده:
۱-نام آیتم ۲- اشاره گری به اولین نود حامل آیتم
ساخت fp- tree :
برای ساخت fp tree ازپایگاه داده , ابتدا یک دور پایگاه داده را می خوانیم تا پوشش هر آیتم مشخص شود . . (Supp (a))
سپس قبل از افزودن هر تراکنش به درخت fp tree , مجموعه آیتم های آن تراکنش را, ابتدا بر اساس supp (پوشش) مرتب می کنیم و سپس به درخت می افزاییم.
الگوریتم ساخت fp- tree
ورودی : یک پایگاه داده شامل تراکنش ها و یک حد مینیمم برای پوشش )(
خروجی : درخت fp tree مربوطه.
الگوریتم :
۱- یکبار پایگاه داده را بخوانید.مجموعه 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 برای جدول ۲ رسم شده است و header table نیز آدرس اولین نود را برای هر آیتم بزرگ را دارد.
از شما دوستان عزیز که این مطلب آموزشی را دنبال نموده اید تشکر می کنیم و شما را دعوت میکنیم که برای فراگیری داده کاوی مطالب ما را دنبال کنید.این مطالب برای افزایش دانش شما در سایت قرار داده شده و کمک زیادی در یادگیری شما در انجام پروژه داده کاوی خواهد نمود.
فریلنسر هستم و مهارت انجام پروژه ای را دارم!
اگر شما فریلنسر هستید و توانایی انجام پروژه ای را در یک رشته یا حوزه ای خاص دارید برای فعالیت در سایت کافه پروژه و کسب درآمد می توانید در سایت ثبت نام کنید و پروژه هایی با مهارت انتخاب خود را مشاهده کنید.جهت ثبت نام و ثبت رزومه خود در سایت از طریق دکمه پایین صفحه در سایت عضو شوید:
نحوه سفارش پروژه در سایت کافه پروژه :
اگر پروژه ای دارید که میخواهید آن را برون سپاری کنید کافی است در سایت کافه پروژه ثبت نام کنید و پروژه خود را ثبت نمایید.پروژه شما هر چه که باشد حتما مجری برای آن وجود دارد.جهت ثبت نام و ثبت سفارش پروژه خود برروی دکمه زیر کلیک نمایید.
بدون دیدگاه