1 / 35

מחסני נתונים ( Data Warehousing )

מחסני נתונים ( Data Warehousing ). קורס מסדי נתונים. מחסן נתונים. מחסן נתונים הוא מסד נתונים ענק המאחסן מידע היסטורי דוגמא: שמירת המידע על כל הקניות של מוצרים בכל הסניפים של רשת סופרמרקטים דוגמא: שמירת המידע על כל שיחות הטלפון שנעשו בטלפונים של חברה מסוימת. שאילתות OLTP ו- OLAP.

adair
Download Presentation

מחסני נתונים ( Data Warehousing )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. מחסני נתונים (Data Warehousing) קורס מסדי נתונים

  2. מחסן נתונים • מחסן נתונים הוא מסד נתונים ענק המאחסן מידע היסטורי • דוגמא: שמירת המידע על כל הקניות של מוצרים בכל הסניפים של רשת סופרמרקטים • דוגמא: שמירת המידע על כל שיחות הטלפון שנעשו בטלפונים של חברה מסוימת

  3. שאילתות OLTP ו- OLAP • השאילתות עד כה הן Online Line Transaction Processing (OLTP), כלומר הרבה שאילתות קטנות שהתוצאה שלהן נדרשת באופן מיידי • סוג אחר של שאילתות הן שאילתות Online Line Analytical Processing (OLAP) שלרוב מופעלות על מחסני נתונים • בשאילתות שימוש רב בפונקציות הקבצה • אין צורך בתוצאות מיידיות • חישובי סטטיסטיקות על הנתונים כחלק מתמיכה בקבלת החלטות

  4. יצירת מחסן נתונים • נדרש צירוף נתונים ממקורות שונים • נדרש שינוי בסכימה של הנתונים להתאמה לסכימה אחידה • נדרשת התאמה ביחידות של הנתונים המאוחדים • לעיתים נדרשת תמיכה בעדכון נתונים שהשתנו • לעיתים נדרשת תמיכה בניקוי נתונים שהתיישנו • נדרשת שמירת מידע על הנתונים (metadata repository) כדי לנהל את הנתונים

  5. תכנון הטבלאות במחסן הנתונים • לרוב נעשה שימוש בסכימת כוכב: • טבלת נתונים (fact table) שגדלה באופן קבוע • טבלאות ממד (dimension tables) קטנות שלרוב נשארות קבועות • לדוגמא: • Sales(pid, timeid, locid, amount) • Products(pid, pname, category, price) • Locations(locid, city, start, country) • Times(timeid, date, week, month, holiday_flag) טבלת נתונים טבלאות ממד

  6. צורות נורמליות • טבלת נתונים בצורת BCNF • טבלאות ממד: לא בהכרח בצורת BCNF • מיעוט פעולות הוספה, ביטול ועדכון ולכן מיעוט בעיות של אי עקביות ואי סדירות • יחסית מעט מידע ולכן כפילויות אינן מהוות בעיה • מאפשר חישוב יעיל של שאילתות משום שהפירוק אינו דורש ביצוע פעולות צירוף טבעי

  7. כריית נתונים (Data Mining)

  8. כריית נתונים • כריית נתונים הוא תהליך של מציאת הקשרים מעניינים או תבניות במסדי נתונים גדולים לצורך תמיכה בקבלת החלטות עתידיות • כריית נתונים מאופיינת בניתוח מידע על סמך קבוצות נתונים גדולות מאוד

  9. דוגמאות • מציאת קישורים בין מוצרים שנקנים בחנות: • דוגמת הבירה והחיתולים • החלטה על הנחה במוצר • קביעת רשימת הספרים המומלצים שיופיעו בסוף ספר מסוים • כיצד לסווג לקוחות לצורך משלוח יעיל של עלוני פרסומת

  10. Data Mining vs. Machine Learning • כמות הנתונים: מסד הנתונים מאוד גדול אז על האלגוריתמים להיות מותאמים לכך • עיצוב: מסדי נתונים לרוב אינם מעוצבים למימוש כריית נתונים ולכן תכונותיהם לא מתאימות לכריית נתונים • שגיאות ורעש: כמעט תמיד מסדי נתונים מכילים שגיאות

  11. טכניקות כריית נתונים

  12. חוקי קישור (Association Rules) • סל קניות הוא אוסף של פריטים שנקנו בידי לקוח יחיד בקניה יחידה • הבעיה: זיהוי קבוצות של פריטים שנקנו יחד • מנסים לזהות חוקים מהצורה {pen}  {ink} המשמעות: אם עט נרכש בקניה אז סביר להניח שגם דיו נרכש בקניה

  13. טבלת רכישות לדוגמה

  14. מדדים לחוקי קישור • צורה כללית של חוק קישור: LR כאשר L ו-R הן קבוצות של פריטים • תמיכה (Support): התמיכה בחוק LR היא אחוז עסקאות הקניה שמכילות את כל הפריטים מ-L ומ-R • וודאות (Cnfidence): הוודאות של חוק LR היא אחוז עסקאות הקניה שכוללות את R מבין העסקאות שכוללות את L

  15. דוגמאות • לחוק{pen}{ink} יש: • תמיכה: • ודאות: • לחוק {tissues}{ink}יש • תמיכה: • ודאות: • לחוק {pen}{soap} יש • תמיכה: • ודאות:

  16. אינטואיציה למדדים • אם לחוק תמיכה נמוכה יתכן שהוא נתגלה במקרה ואין מספיק עדויות כדי לבסס אותו • אם לחוק LR יש וודאות נמוכה סביר להניח שאין קשר בין רכישת L ורכישת R • הערה: החוקים RL ו-LR יש להם תמיכה זהה אבל עשויה להיות להם ודאות שונה

  17. המטרה • מעונינים למצוא חוקי קישור בעלי תמיכה גבוהה וודאות גבוהה (בהתייחס למינימום תמיכה ומינימום ודאות הנתונים על ידי המשתמש)

  18. אלגוריתם לחישוב • בהנתן ערכים s ו-c, יש למצוא את כל חוקי הקישור עם תמיכה גדולה או שווה ל-s ועם וודאות גדולה או שווה ל-c • ניתן לבצע את החישוב בשני שלבים: • שלב 1: מציאת קבוצות פריטים בעלות תדירות גבוהה (קבוצות פריטים בעלות תמיכה >= s) • שלב 2: לכל קבוצה בעלת תדירות גבוהה F, עוברים על כל החלוקות של F ל-R ול-L ובודקים אם לחוק LRיש וודאות >= c

  19. מציאת קבוצות בעלות תדירות גבוהה • כיצד נעשה זאת? ?

  20. מציאת קבוצות בעלות תדירות גבוהה • תכונה אפריורית (The A Priori Property): כל תת קבוצה של קבוצה בעלת תדירות גבוהה היא בעלת תדירות גבוהה • מהתכונה האפריורית מתקבל שניתן לייצר באופן איטרטיבי את הקבוצות בעלות התדירות הגבוהה: • לוקחים קבוצות פריטים בעלות תדירות גבוהה שגודלן n • מרחיבים את הקבוצות בגודל n לקבוצות בעלות תדירות גבוהה בגודל n+1

  21. מציאת קבוצות בעלות תדירות גבוהה Freq = {} scan all transactions once and add to Freq the items that have support > s k = 1 repeat foreachIkin Freq with k items generate all itemsets Ik+1with k+1 items, such that Ikis contained in Ik+1 scan all transactions once and add to Freq the k+1-itemsets that have support > s k++ until no new frequent itemsets are found

  22. דוגמא מריצים את האלגוריתם עם תמיכה = 0.7 • שלב 1: מציאת קבוצות עם תדירות גבוהה: {pen}, {ink}, {diary} • שלב 2: בודקים את הקבוצות הבאות: {pen, ink}, {pen, diary}, {pen, soap}, {pen, tissues}, {ink, diary}, {ink, soap}, {ink, tissues}, {diary, soap}, {diary, tissues} הקבוצות עם תדירות >= 0.7 הן: {pen, ink}, {pen, diary}

  23. המשך דוגמא • שלב 3: בודקים כל אחת מהקבוצות: {pen, ink, diary}, {pen, ink, soap}, {pen, ink, tissues}, {pen, diary, soap}, {pen, diary, tissues} אין קבוצות עם תדירות >= 0.7 • מקבלים שקבוצות הפריטים עם התדירות הגבוהה הן: {pen}, {ink}, {diary} {pen, ink}, {pen, diary}

  24. עידון של האלגוריתם • באלגוריתם, נבדק האם {pen, tissues} זו קבוצה בעלת תדירות גבוהה גם כאשר היה ידוע ש- {tissues} אינה קבוצה בעלת תדירות גבוהה • עידון: מרחיבים קבוצות פריטים בעלות תדירות גבוהה רק על ידי פריטים כך שכל תת הקבוצות אחרי ההרחבה יהיו קבוצות פריטים בעלות תדירות גבוהה • יתכן שטבלת הקניות לא נכנסת לזיכרון הראשי ואז הסריקה תהיה יקרה • הפתרון: דוגמים את טבלת הקניות ומשתמשים בדגימה בעלת גודל שתואם את הזיכרון הראשי במקום להשתמש בטבלת הקניות עצמה

  25. גזירת חוקי קישור foreach frequent itemset I foreach partition of I to two sets L, R generate a candidate rule LR foreach transaction T in the database foreach candidate rule LR if L in T then lnum(LR)++ if R in T then rnum(LR)++ return all rules LR with rnum(LR)/lnum(LR) > c

  26. הכללת חוקי קישור • רוצים לדעת האם בימי חמישי {milk}{bread} באופן שונה מיתר ימי השבוע, כיצד נעשה זאת? • רוצים לדעת האם לקוחות מתל אביב מתקיימים לגביהם אותם חוקי גרירה שמתקיימים ללקוחות מירושלים

  27. סוגים אחרים של חוקים • תבניות סדרתיות (Sequential Patterns) • כל קניה עבור כל לקוח היא קבוצה של פריטים • סדרה של קניות היא סדרה של קבוצות פריטים • לדוגמא: {pen, ink, soap}, {pen, ink diary, soap} • תת סדרה נגזרת מסדרה על ידי • מחיקת מספר קבוצות במלואן מהסדרה • מחיקת פריטים מקבוצות אחרות בסדרה

  28. תבניות סדרה • {pen}, {ink, diary}, {pen, soap} • היא תת סדרה של • {pen, ink}, {shirt}, {milk, ink, diary}, {soap, pen, diary} • {pen}, {ink, diary}, {pen, soap} • אינה תת סדרה של • {pen, ink}, {shirt}, {soap, pen, diary}, {milk, ink, diary}

  29. תבניות סדרה • התמיכה בתבנית סדרה S היא אחוז סדרות הקניה של הלקוחות ש-S היא תת סדרה שלהן • סדרה s1, s2, ..., snבעלת תמיכה גבוהה מעידה שמי שקנה את s1 בסבירות גבוהה יקנה את s2 בהמשך וכן הלאה... • מציאת תבניות סדרה: • נעשה באופן דומה למציאת קבוצות פריטים בעלות תדירות גבוהה • מתחילים עם סדרות קטנות ומנסים להרחיב אותן

  30. חוקי סיווג (Classification Rules) • נתונה טבלה: InsuranceInfo(custid:integer, age:integer, cartype:string, highrisk:boolean) • מעונינים למצוא חוקים מהסוג הבא: "אם הגיל הוא בטווח מסוים והמכונית מסוג מסוים אז הלקוח הוא לקוח בסיכון גבוה" • ניתן להפעיל את החוק על לקוחות חדשים שבאים לבטח את המכונית שלהם

  31. חוקי סיווג (Classification Rules) • צורה כללית: (l1< X1< h1) and ... and (lk < Xk < hk)Y=c • משתמשים בערכים עבור X1,...,Xkלקביעת Y

  32. מינוחים • אטריביוט תלוי (dependent attribute) נקבע בחוק • אטריביוט קובע (predictor attribute) מופיעים בגוף החוק • אטריביוט מספרי: li<=Xi<=hi • אטריביוט קטגורי: Xi in {v1 …vj} • חוקי סיווג (classification rules) – האטריביוט התלוי הוא קטגורי • חוקי רגרסיה (regression rules) – האטריביוט התלוי הוא מספרי

  33. דוגמא (18<age< 25) and (cartype in {Sports,Truck})  highrisk=true

  34. תמיכה וודאות • תמיכה: תמיכה בתנאי C היא אחוז הרשומות שמספקות את C • התמיכה בחוק C1C2 היא התמיכה בתנאי C1 and C2 • וודאות: הודאות של חוק C1C2 היא אחוז הרשומות שמספקות את C2 מבין הרשומות שמספקות את C1

  35. עצי בחירה (עצי סיווג) Age <=25 >25 Car Type no Sedan Sports, Truck no Yes ניתן לייצר חוקי סיווג ממסלולים משורש העץ לעלה

More Related