מערך נתונים הוא אוסף של דוגמאות.
בקבוצות נתונים רבות, הנתונים מאוחסנים בטבלאות (מרתפים), למשל כערכים מופרדים בפסיקים (CSV) או ישירות מגיליונות אלקטרוניים או מטבלאות של מסדי נתונים. טבלאות הן פורמט קלט אינטואיטיבי למודלים של למידת מכונה. אפשר לחשוב על כל שורה בטבלה כדוגמה ועל כל עמודה כתכונה או תווית פוטנציאליות. עם זאת, מערכי נתונים יכולים להיגזר גם מפורמטים אחרים, כולל קובצי יומנים ומאגרי פרוטוקולים.
ללא קשר לפורמט, איכות מודל ה-ML תלויה באיכות הנתונים שבהם הוא מתאמן. בקטע הזה נסקור את המאפיינים של נתוני מפתחות.
סוגי נתונים
מערך נתונים יכול להכיל סוגים רבים של סוגי נתונים, כולל, בין היתר:
- נתונים מספריים, שמפורטים ביחידה נפרדת
- נתונים קטגוריאליים, שמפורטים ביחידה נפרדת
- שפה אנושית, כולל מילים ומשפטים בודדים ועד למסמכי טקסט שלמים
- מולטימדיה (כמו תמונות, סרטונים וקובצי אודיו)
- פלט ממערכות למידת מכונה אחרות
- וקטור הטמעה, שנדון בהם ביחידה מאוחרת יותר
כמות הנתונים
ככלל אצבע, מומלץ לאמן את המודל על מספר דוגמאות גדול פי כמה (או פי שניים) ממספר הפרמטרים שניתן לאמן. עם זאת, בדרך כלל מודל טוב מתאמן על מספר רב יותר של דוגמאות.
בדרך כלל, מודלים שמתאימים למערכי נתונים גדולים עם מעט מאפיינים מניבים ביצועים טובים יותר ממודלים שמתאימים למערכי נתונים קטנים עם הרבה מאפיינים. בעבר, Google הצליחה מאוד לאמן מודלים פשוטים על קבוצות נתונים גדולות.
יכול להיות שתוכלו ליצור מודל שימושי עם כמויות שונות מאוד של דוגמאות במערכי נתונים שונים של תוכניות שונות ללמידת מכונה. לבעיות פשוטות יחסית, עשרות דוגמאות עשויות להספיק. לבעיות אחרות, טריליון דוגמאות עשויות להיות לא מספיקות.
אפשר לקבל תוצאות טובות ממערך נתונים קטן אם מתאימים מודל קיים שכבר אומן על כמויות גדולות של נתונים מאותה סכימה.
איכות הנתונים והאמינות שלהם
כולם מעדיפים איכות גבוהה על פני איכות נמוכה, אבל איכות היא מושג כל כך מעורפל שאפשר להגדיר אותו בדרכים רבות ושונות. בקורס הזה איכות מוגדרת באופן פרגמטי:
מערך נתונים באיכות גבוהה עוזר למודל להשיג את היעד שלו. מערך נתונים באיכות נמוכה מונע מהמודל להשיג את היעד שלו.
בדרך כלל, מערך נתונים באיכות גבוהה הוא גם אמין. אמינות היא מידת האמון שאפשר לתת בנתונים. מודל שאומן על מערך נתונים מהימן צפוי לספק תחזיות מועילות יותר מאשר מודל שאומן על נתונים לא מהימנים.
כדי למדוד את האמינות, צריך לקבוע:
- כמה שגיאות נפוצות בתווית? לדוגמה, אם הנתונים שלכם מסומנים על ידי בני אדם, באיזו תדירות הבודקים האנושיים עשו טעויות?
- האם התכונות שלכם רועשות? כלומר, האם הערכים בתכונות מכילים שגיאות? חשוב להיות ריאליים – אי אפשר לנקות את מערך הנתונים מכל הרעשים. רעש מסוים הוא נורמלי. לדוגמה, מדידות GPS של כל מיקום תמיד משתנות מעט משבוע לשבוע.
- האם הנתונים מסוננים כראוי בהתאם לבעיה? לדוגמה, האם מערך הנתונים צריך לכלול שאילתות חיפוש מבוטים? אם אתם מפתחים מערכת לזיהוי ספאם, סביר להניח שהתשובה היא כן. עם זאת, אם אתם מנסים לשפר את תוצאות החיפוש עבור בני אדם, התשובה היא לא.
אלה כמה סיבות נפוצות לנתונים לא מהימנים במערכי נתונים:
- ערכים שהושמטו. לדוגמה, משתמש שכח להזין ערך לגיל הבית.
- דוגמאות כפולות. לדוגמה, שרת העלאה בטעות את אותן רשומות ביומן פעמיים.
- ערכים שגויים של מאפיינים. לדוגמה, מישהו הקליד ספרה נוספת או שהתרמומטר הושאר בשמש.
- תוויות לא תקינות. לדוגמה, משתמש מסוים סימן בטעות תמונה של עץ אלון כעץ מייפל.
- קטעי נתונים לא תקינים. לדוגמה, תכונת מסוימת אמינה מאוד, מלבד אותו יום אחד שבו הרשת קרסה שוב ושוב.
מומלץ להשתמש באוטומציה כדי לסמן נתונים לא מהימנים. לדוגמה, בדיקות יחידה שמגדירות סכימה חיצונית של נתונים רשמיים או מסתמכות עליה יכולות לסמן ערכים שנמצאים מחוץ לטווח שהוגדר.
דוגמאות מלאות לעומת דוגמאות חלקיות
בעולם מושלם, כל דוגמה שלמה, כלומר כל דוגמה מכילה ערך לכל מאפיין.
לצערנו, דוגמאות מהעולם האמיתי הן לרוב חלקיות, כלומר חסר לפחות ערך אחד של מאפיין.
לא לאמן מודל על דוגמאות חלקיות. במקום זאת, צריך לתקן או להסיר דוגמאות חלקיות באמצעות אחת מהפעולות הבאות:
- למחוק דוגמאות חלקיות.
- Impute של ערכים חסרים. כלומר, הופכים את הדוגמה החלקית לדוגמה מלאה על ידי מתן ניחושים מבוססים לערכים החסרים.
אם מערך הנתונים מכיל מספיק דוגמאות מלאות כדי לאמן מודל שימושי, כדאי למחוק את הדוגמאות הלא מלאות. באופן דומה, אם חסר נתון משמעותי רק בתכונה אחת, וכנראה שהתכונה הזו לא יכולה לעזור למודל הרבה, כדאי לשקול למחוק את התכונה הזו מהקלט של המודל ולבדוק כמה איכות נאבדת כתוצאה מההסרה שלה. אם המודל פועל בצורה טובה או כמעט טובה באותה מידה גם בלי הנכס, זה מצוין. לעומת זאת, אם אין לכם מספיק דוגמאות מלאות כדי לאמן מודל שימושי, כדאי לשקול להוסיף ערכים חסרים.
מותר למחוק דוגמאות חסרות תועלת או מיותרות, אבל אסור למחוק דוגמאות חשובות. לצערנו, לפעמים קשה להבדיל בין דוגמאות חסרות תועלת לבין דוגמאות מועילות. אם אתם לא יכולים להחליט אם למחוק או להוסיף ערכים חסרים, כדאי ליצור שני מערכי נתונים: אחד שנוצר על ידי מחיקה של דוגמאות חלקיות, והשני על ידי הוספת ערכים חסרים. לאחר מכן, צריך לקבוע איזה מערך נתונים מאפשר אימון של מודל טוב יותר.
אלגוריתם נפוץ אחד הוא שימוש בממוצע או בחציון כערך המשוער. כתוצאה מכך, כשמייצגים מאפיין מספרי באמצעות ציוני Z, הערך שמשוערך הוא בדרך כלל 0 (כי בדרך כלל 0 הוא ציון Z הממוצע).
תרגול: בדיקת ההבנה
אלה שתי עמודות של מערך נתונים שממוינות לפי Timestamp
.
חותמת זמן | טמפרטורה |
---|---|
8 ביוני 2023 09:00 | 12 |
8 ביוני 2023 בשעה 10:00 | 18 |
8 ביוני 2023 בשעה 11:00 | חסר |
8 ביוני 2023 בשעה 12:00 | 24 |
8 ביוני 2023 בשעה 13:00 | 38 |
איזה מהערכים הבאים יהיה ערך סביר להשלמה של הערך החסר של טמפרטורה?