ארגון בסדר אקראי

שיקולים מעשיים

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

ברוח זו, ודאו שאפשר להפוך את הרנדומיזציה ליצירת נתונים באופן דמטרי:

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

הגישות הקודמות חלות גם על הדגימה וגם על פיצול הנתונים.

שיקולים לגיבוב

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

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

במקום זאת, תוכלו לבצע גיבוב לפי שאילתה + תאריך, מה שיגרום לגיבוב (hash) שונה בכל יום.

 

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