דוגמה לפיצול נתונים

לאחר איסוף הנתונים והדגימה לפי הצורך, השלב הבא הוא לפצל את הנתונים לקבוצות הדרכה, לקבוצות אימות ולקבוצות בדיקה.

מתי הפיצול האקראי הוא לא הדרך הטובה ביותר

פיצול אקראי הוא הגישה הטובה ביותר לבעיות למידת מכונה רבים, אבל הוא לא תמיד הפתרון הנכון. לדוגמה, כדאי לשקול קבוצות נתונים שבהן הדוגמאות מקובצות באופן טבעי לדוגמאות דומות.

נניח שאתם רוצים שהמודל יסווג את הנושא מהטקסט של מאמר חדשותי. למה חלוקה אקראית תהיה בעייתית?

ארבעה אשכולות נפרדים של מאמרים (עם התווית "Story 1", "Story 2",
"Story 3" ו-"Story 4") מופיעים
על ציר זמן. איור 1. סיפורים חדשותיים מקובצים באשכולות.

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

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

גישה פשוטה לפתרון הבעיה היא לפצל את הנתונים שלנו לפי תאריך הפרסום של הכתבה, למשל לפי היום שבו היא פורסמה. כתוצאה מכך, סיפורים באותו יום מופיעים באותו פיצול.

עכשיו, ציר הזמן המקורי מאיור 1 מחולק לקבוצת הכשרה. כל המאמרים מ-"Story 1" ו-"Story 2"
הם בקבוצת האימון, וכל המאמרים מ-"Story 3" ו-"Story 4"
הם בקבוצת הבדיקה. איור 3. פיצול בזמן מאפשר לאשכולות בסופו של דבר באותה קבוצה.

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