420 likes | 669 Views
داده کاوي الگوهاي تکرارشونده در جريان دادهها. استاد : جناب آقاي دکتر رهگذر تهيه کننده : يوحنا قديمي - علی عباسی - کاوه پاشايي. جريان داده.
E N D
داده کاوي الگوهاي تکرارشونده در جريان دادهها استاد : جناب آقاي دکتر رهگذر تهيه کننده : يوحنا قديمي - علی عباسی - کاوه پاشايي
جريان داده • بسياری از برنامه های کاربردی نوع داده جديدی به نام جريان داده را توليد و تحليل می کنند که در آن داده ها به صورت پويا به يک بستر ( يا پنجره ) وارد و يا از آن خارج می شوند . • خواص جريان داده : • حجم زياد و گاه نامحدود • تغييرپويا • جريان به درون و خارج با يک ترتيب مشخص • پيمايش يکبار يا تعدا د محدود • نيازمند زمان پاسخ سريع ( اغلب بلادرنگ ) • ممکن است دارای چندين منبع باشند .
نتایج پرس و جوی جريان ذخيره نتايج حاصل از جريان صادرکردن پرسوجوی پيوسته سيستم مديريت جریان داده جريان های ورودی بايگانی پايگاه داده های موجود در سيستم منبع چکنويس جريان داده يک نگاه کلی به جريان داده
جريان داده • در جريان داده تعدادی يا همه داده های ورودی که بايد روی آنها عمليات انجام شود روی ديسک يا حافظه اصلی قرار ندارند و بيشتر به صورت جريان داده پيوسته می رسند . • جريان داده ها از داده های ذخيره شده در موارد زير متفاوت اند : • عناصر داده ها به صورت بر خط می رسند . • سيستم هيچ گونه کنترلی روی ترتيب عناصر دادهای ( روی عناصر جريان يا جريانهای دادهای ) ، که جهت پردازش میرسند ، ندارد . • جريانهای داده ای به صورت ذاتی از نظر اندازه نامحدود هستند . • يک عنصر از جريان داده پس از پردازش يا ناديده در نظر گرفته می شود يا آرشيو می شود .
دادهکاوی • دادهکاوی استخراج اطلاعات مفيد و دانش از حجم زياد داده ها است . • تکنيک هايی دادهکاوی : • تحليل قواعد وابستگی : کشف قواعد وابستگی است که هر قاعده وابستگی به صورت جفت صفت- مقدار هايی است که اغلب با هم در يک مجموعه داده اتفاق می افتند . • کلاسهبندی : فرايند يافتن مجموعه مدلهايی است که کلاس های داده را توصيف و مشخص میکنند تا بدين وسيله بتوان کلاس اشيايی را که نامشخص است مشخص کرد . • تحليل خوشه ها : اشيا بر اساس قاعده " زياد کردن شباهت بين عناصر کلاس و کم کردن شباهت بين کلاس ها " ، اشيا را به خوشه هايی تقسيم می کند . اشيا داده ای موجود در يک خوشه بيشترين شباهت را با هم دارند و با اشيا ساير خوشه ها بسيار متفاوت هستند .
دادهکاوی روی جريان داده ها • دادهکاوی جريان داده ها يک فرايند بلادرنگ استخراج الگوهای جالب توجه از جريان داده ها است . • برای مثال ممکن است بخواهيم ورود به حريم شبکه کامپيوتری را بر اساس جريان غير عادی پيام ها شناسايی بکنيم که از طريق مقايسه الگوهای تکرارشونده فعلی با يک زمان قبلی ، قابل کشف است .
الگوريتم های داده کاوی جريان داده جريان داده ورودی دانش خروجی 1 2 3 دادهکاوی روی جريان داده ها فرايند کلی دادهکاوی در جريان داده
دادهکاوی روی جريان داده ها • تکنيک های ذکر شده در دادهکاوي بطور مستقيم بر جريان داده ها قابل اعمال نيستند زيرا الگوريتم های موجود برای اين تکنيک ها روی داده های مقيم در ديسک اعمال می شوند و می توانند داده ها را چند بار پيمايش کنند . • چالش های موجود در دادهکاوی جريان داده عبارتند از : • به دليل خصوصيت پيوستگی عناصر داده ورودی ، نياز به حافظه نامحدود دارند . • الگوريتم های دادهکاوی نياز به چندين پيمايش روی جريان داده دارند ولی به دليل سرعت بالای جريان داده اين امر امکان پذير نيست .
مشتريانی که هر دو را می خرند مشتريانی که شير می خرند مشتريانی که نان می خرند الگوهای تکرارشونده در پايگاهدادهها • الگوهای تکرارشونده ، الگوهايی هستند که اغلب در يک مجموعه داده ظاهر می شوند . • برای نمونه در يک پايگاهداده های مربوط به سابقه خريد يک فروشگاه ، شير و نان که اغلب با هم خريداری میشوند نمونهای از الگوهای تکرارشونده میباشند .
الگوهای تکرارشونده • I={i1,i2,…im} مجموعهای از عناصر • Dمجموعهای از تراکنشهای پايگاه دادهها باشد . • دراينجاهر تراکنش شامل يک شماره منحصر بفرد و شامل ليستی از عناصر است ، مثلا کالاهايی که در يک فروشگاه به فروشمیرسند . • اگر A مجموعهای از عناصر باشد ، گوييم تراکنش T شامل A است اگر و فقط اگر • يک قاعده وابستگی به فرم است که در آن و است و Ø • قاعده در مجموعه تراکنشهای D دارای پشتيبانی s است که s درصد تراکنشهايی در D است که شامل باشند . • قانون دارای اعتماد c در مجموعه تراکنش D است اگر c درصد تراکنشهايی از D باشد که اگر شامل A هستند آنگاه شامل B هم باشند .
الگوهای تکرارشونده - يک مثال Min. support 50% Min. confidence 50% • برای قانونAC: • support = support({A} ∩{C}) = 50% • confidence = support({A} ∩ {C})/support({A}) = 66.6%
الگوريتم Apriori( يافتن مجموعه عناصرتکرارشونده با استفاده از روش توليد و آزمون ) • هر زيرمجموعه از يک مجموعه تکرارشونده ، تکرارشونده است . • اگر {شير ، نون ، قند} تکرارشونده باشد آنگاه {شير ، نون} نيز تکرارشونده است . • هر تراکنشی که شامل {شير ، نون ، قند} باشد آنگاه شامل {شير ، نون} نيز است . • قانون هرس Apriori : اگر مجموعه ای غيرتکرارشونده باشد آنگاه هر مجموعه دربرگيرنده آن نبايد توليد/تست شود . • روش کار : • توليد مجموعه های کانديد به طول k+1از روی مجموعه های تکرارشونده به طول k • تست کانديد ها روی پايگاه (شمارش تعداد هر کانديد)
شبه کد الگوريتم Apriori • Pseudo-code: • Ck: Candidate itemset of size k • Lk : frequent itemset of size k • L1= {frequent items}; • for (k = 1; Lk !=; k++) do begin • Ck+1 = candidates generated from Lk; • for each transaction t in database do increment the count of all candidates in Ck+1 that are contained in t • Lk+1 = candidates in Ck+1 with min_support • end • returnki=1Lk;
نحوه توليد کانديد • Suppose the items in Lk-1 are listed in an order • Step 1: self-joining Lk-1 insert intoCk select p.item1, p.item2, …, p.itemk-1,q. item1,q. item2,…, q.itemk-1 from Lk-1 p, Lk-1 q where p.item1=q.item1, …, p.itemk-2=q.itemk-2, p.itemk-1 < q.itemk-1 • Step 2: pruning forall itemsets c in Ckdo forall (k-1)-subsets s of c do if (s is not in Lk-1) then delete c from Ck
جزييات الگوريتم Apriori • مثالی از توليد کانديد • L3={abc, abd, acd, ace, bcd} • پيوندL3 با خودش • abcd from abc and abd • acde from acd and ace • هرس کردن • acde حذف می شود چونade در L3نيست • C4={abcd}
Itemset sup Database TDB Itemset sup L1 {A} 2 C1 {A} 2 Tid Items {B} 3 {B} 3 10 A, C, D 1st scan {C} 3 {C} 3 20 B, C, E {D} 1 {E} 3 30 A, B, C, E {E} 3 40 B, E C2 C2 Itemset sup Itemset L2 2nd scan {A, B} 1 Itemset sup {A, B} {A, C} 2 {A, C} 2 {A, C} {A, E} 1 {B, C} 2 {A, E} {B, C} 2 {B, E} 3 {B, C} {B, E} 3 {C, E} 2 {B, E} {C, E} 2 {C, E} L3 C3 3rd scan Itemset Itemset sup {B, C, E} {B, C, E} 2 الگوريتم Apriori - مثال
جريان داده الگوهای تکرارشونده در جريان داده ها مساله : مشخص کردن تمام عناصری که فراوانی کنونی آنها از پشتيبانی S بيشتر است
الگوريتم Lossy Counting • اين الگوريتم دو پارامتر را از کاربر میپذيرد : • آستانه پشتيبانی که s E (0,1) • پارامتر خطا εE (0,1) که ε << s • N طول فعلی جريان را نشان میدهد (تعداد تاپلهايی که تاکنون ديده شده است) .
ضمانت های Lossy Counting • هر مجموعه عناصری که فراوانیواقعی آن بيش از sN باشد در خروجی ظاهر میشود . يعنی الگوهای تکرارشونده ای وجود ندارد که در خروجی ظاهر نشود . • هيچ مجموعه عناصری با فراوانی کمتر از N(s-ε) در خروجی ظاهر نمیشود . • فرکانسهای تخمين زده شده از فراوانی واقعی حداکثر به اندازه Nε کمتر است .
bucket 1 bucket 3 bucket 2 Lossy Counting تقسيم جريان به باکت ها نگهداری شمارنده برای عناصر موجود در باکت ها هرس در انتهای باکت ها
Lossy Counting - تعاريف • جريان ورودی به باکت هايی پهنای w = ceil(1/e) تقسيم می شود . • باکت ها با backet id برچسب می خورند که از يک شروع می شود . • شماره باکت فعلی با bcurrent نشان داده می شود که مقدار آن ceil(N/w) است . • feفراوانی واقعی عنصر e در جريان داده ديده شده تاکنون را نشان می دهد . • ساختمان داده D مجموعهای از مدخلها به فرم (e , f , Δ) است که در آن e عنصری از جريان داده ، f يک عدد صحيح است که فراوانی تقريبی عنصر را نشان میدهد و Δ حداکثر خطا در f است .
Lossy Counting - الگوريتم • Initially D is empty • Receive element eif (e exists in D) increment its frequency (f) by 1else create a new entry (e, 1, bcurrent – 1) • If it bucket boundary prune D by the following the rule:(e,f,D) is deleted if f + D ≤ bcurrent • When the user requests a list of items with threshold s, output those entries in D where f ≥ (s – ε)N
Lossy Counting - نکات • برای مدخل (e,f,D) ، f فراوانی واقعی e از زمان درج شدن در D را نشان می دهد . • مقدار D تعداد ماکزيمم دفعاتی است که e می توانسته است در bcurrent – 1 باکت اوليه ظاهر شود . • مقدار D از زمانی که مقداری در D درج می شود بدون تغيير می ماند .
Frequency Counts + First Bucket Lossy Counting در عمل D is Empty در انتهای باکت مدخل هايي که شرط f+ D ≤bcurrent را داشته باشند حذف می شوند .
Frequency Counts + Next Bucket Lossy Counting در عمل در انتهای باکت مدخل هايي که شرط f+ D ≤bcurrent را داشته باشند حذف می شوند .
Lossy Counting • پيچيدگی فضايی : • می توان نشان داد Lossy Counting برای حفظ ضمانت های گفته شده از1/elog(eN) مدخل استفادهمی کند . • ضعف ها : • با ادامه يافتن جريان ليست فراوانی ها به صورت نامحدود بزرگ می شود و در نتيجه پيچيدگی فضايی آن به اندازه کافی مناسب نيست . • خروجی الگوريتم مبتنی بر داده های قبلی است در حالی که مردم به داده های اخير علاقمند هستند .
{} Header Table Item frequency head f 4 c 4 a 3 b 3 m 3 p 3 f:4 c:1 c:3 b:1 b:1 a:3 p:1 m:2 b:1 p:2 m:1 ساختن درخت الگوهای تکرارشونده از يک پايگاه داده تراکنشی TID Items bought (ordered) frequent items 100 {f, a, c, d, g, i, m, p}{f, c, a, m, p} 200 {a, b, c, f, l, m, o}{f, c, a, b, m} 300 {b, f, h, j, o, w}{f, b} 400 {b, c, k, s, p}{c, b, p} 500{a, f, c, e, l, p, m, n}{f, c, a, m, p} min_support = 0.5 • پيمايش پايگاه داده و يافتن مجموعه تکرارشونده با يک عنصر • مرتب کردن عناصر تکرارشوند بر حسب کاهش فراوانی • پيمايش دوباره پايگاه و ساختن درخت الگوهای تکرارشونده
پنجره زمانی • کدام يک مدنظر است : • عنصر(های) تکرارشونده از ابتدا • عنصر(های) تکرارشونده در ساعت/روز اخير • مردم علاقمند به موارد زير هستند : • تغييرات اخير در يک دانه زمانی ريز • تغييرات طولانی مدت در يک دانه زمانی درشت
پنجره زمانی • پنجره زمانی طبيعی • تعداد پنجره زمانی طبيعی برای يک ماه : 4 + 24 + 31 = 59 • فضا و کارآيی قابل قبول
پنجره زمانی • پنجره زمانی لگاريتمی • دادههای يک سال با دقت ربع • به log2(365*24*4)+1 = 17 ويندو در حالت لگاريتمی نياز دارد . • به 12+31+24+4+1= 72 ويندو در حالت طبيعی نياز دارد .
پنجره زمانی • بهنگام سازی پنجره زمانی لگاريتمی • بيش از دو پنجره هم اندازه وجود ندارد . t 2t 4t t t 2t t t 2t 4t t 2t t t 2t t t t
الگوهای تکرارشونده و پنجره های زمانی • درخت الگو در پنجره زمانی • جنگلی از درختان الگو
الگوهای تکرارشونده و پنجره های زمانی • درختان الگو مربوط به پنجره های مختلف زمانی به طور کلی مشابه هستند و هستند پنجره زمانی در درخت الگو بسيار فشردهتر و کارآمدتر است . • پنجره زمانی در درخت الگو
تعريف مساله • فرض کنيد t0, …, tnپنجرههای زمانی هستند که t0 قديميترين آنهاست • ورودی : • حداقل پشتيبانی : s • T = t k U t k+1 U … U t k’ • خروجی : تمام مجموعههای تکرارشونده در T با پشتيبانی بزرگتر يا مساوی s * W که در آن W تعداد تراکنشهای موجود در T است . • اين مساله غيرقابل حل است مگر اينکه اطلاعات تمام مجموعههای ممکن نگهداری شود که نمايی از تعداد عناصر است . • عناصری که هم اکنون غيرتکرارشونده هستند با پيشرفت جريان داده ممکن است تکرارشونده شوند .
استفاده از تقريب • بدست آوردن مجموعههای تکرارشونده به صورت تقريبی . • فرض کنيد t0, …, tnپنجرههای زمانی شيبدار هستند که t0 قديميترين آنهاست • ورودی : • حداقل پشتيبانی : s • کران خطا ε • T = t k U t k+1 U … U t k’ • خروجی : • تمام مجموعههای تکرارشونده در T با پشتيبانی بزرگتر يا مساوی s * W • تعدادی مجموعههای زيرتکرارشونده در T با پشتيبانی بزرگتر يا مساوی(s-ε) * W ممکن است در خروجی ظاهر شوند (W تعداد تراکنشهای موجود در T است ) .
tm tm+1 tm+2 tm+3 tm tm+1 tm+2 tm+3 هرس کردن دم • اگر برای هر k<=n و f(I,tm+1) +…+ f(I,tk) < ε * (Wm+1 + … + Wk) آنگاه ويندوهای زمانی که ازtm+1 شروع میشوند میتوانند هرس شوند ( Wi تعداد تراکنش ها در ti است و f(I,ti) فراوانی مجموعه I روی ويندو زمانی ti است ) .
الگوريتم FP-Stream • Maintain a Pattern-Tree with Tilted-Time Windows • When a new time unit t arrives • For each itemset I • If I is not in the structure • Add I if f(I, t) > ε *W • If I is already in the structure • Add f(I, t) • Do Tail Pruning
منابع (1) • B. Babcock, S. Babu, M. Datar, R. Motwani and J. Widom, “Models and Issues in Data Stream Systems”, Proc. 2002 ACM-SIGACT/SIGART/SIGMOD Int. Conf. on Principles of Data base (PODS'02), Madison, WI, June 2002. (Conference tutorial) • Gurmeet Singh Manku, Rajeev Motwani.. Approximate Frequency Counts over Data Streams, VLDB’02 • C. Giannella, J. Han, J. Pei, X. Yan and P.S. Yu, “Mining Frequent Patterns in Data Streams at Multiple Time Granularities”, H. Kargupta, A. Joshi, K. Sivakumar, and Y. Yesha (eds.), Next Generation Data Mining, 2003. • Geoff Hulten, Laurie Spencer, Pedro Domingos: Mining time-changing data streams. KDD 2001: 97-106 • J. Han, J. Pei, and Y. Yin. Mining frequent patterns without candidate generation. In Proc. Of 2000 ACM SIGMOD,pages 1-12,2000.
منابع (2) • S. Muthukrishnan, Data streams: algorithms and applications, Proceedings of the fourteenth annual ACM-SIAM symposium on Discrete algorithms, 2003. • Mohamed Medhat Gaber , Shonali Krishnaswamy , Arkady Zaslavsky . Ubiquitous Data Stream Mining , 2003 • Andrew Wu . Mining Data Streams : A Review . 2003
پايان پرسش و پاسخ باتشکر