מערך נתונים הוא אוסף של דוגמאות.
מערכי נתונים רבים מאחסנים נתונים בטבלאות (grid), למשל ערכים מופרדים בפסיקים (CSV) או ישירות מגיליונות אלקטרוניים או בטבלאות של מסדי נתונים. טבלאות הן פורמט קלט אינטואיטיבי למכונות מודלים של למידת מכונה. כל שורה בטבלה יכולה להופיע כדוגמה. וכל עמודה כתכונה או תווית פוטנציאליות. עם זאת, ייתכן שמערכי נתונים נגזרים גם מפורמטים אחרים, כולל קובצי יומן ומאגרי פרוטוקולים.
ללא קשר לפורמט, מודל למידת המכונה שלכם טוב שהיא מאמנים את הנתונים לפיהם. בקטע הזה נבחן את המאפיינים העיקריים של הנתונים.
סוגי נתונים
מערך נתונים יכול להכיל סוגים רבים של סוגי נתונים, כולל, אבל בהחלט לא מוגבל ל:
- נתונים מספריים, וניתן לעיין בהם ב יחידה
- נתונים קטגוריים, שנכללים במסגרת יחידה
- שפה אנושית, כולל מילים ומשפטים בודדים, מסמכי טקסט שלמים
- מולטימדיה (כגון תמונות, סרטונים וקובצי אודיו)
- פלט ממערכות למידת מכונה אחרות
- וקטורים של הטמעה, נלמד ביחידה מאוחרת יותר
אפשר לחלק את סוגי הנתונים האלה לקבוצות משנה נוספות. המודולים הבאים בקורס – לדוגמה, Categorical נתונים מודול — פרטים לסווג את סוגי הנתונים האלה לקטגוריות משנה.
כמות הנתונים
ככלל אצבע, המודל צריך לאמן את המודל לפחות לפי סדר מסוים שהם בגודל (או שתי דוגמאות) יותר מאשר פרמטרים שניתנים לאימון. אבל הן טובות בדרך כלל, המודלים האלה מאמנים באופן משמעותי יותר דוגמאות ממה שהם צריכים.
מודלים שאומנו על מערכי נתונים גדולים עם תכונות בדרך כלל יש ביצועים טובים יותר ממודלים שאומנו על מערכי נתונים קטנים הרבה תכונות. בעבר 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 |
איזה ערך סביר שיהיה ערך הגיוני לערך החסר של Temperature?