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

התפקיד של מיון בנתונים Preמעבדים ללמידה מכונה

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

יעילות מקבלת נתונים

נתונים לא מובנים דורשים סריקות מלאות לזהות רשומות העומדות בפני קריטריון.לדוגמה, בחירת ה-1% העליון של עסקאות על ידי ערך מרשימת מיליארד ערכים שלא מאוישים של מיליארד דולר כרוכות בסריקה כל תיעוד.עם נתונים מדומים, אותו פעולה מקטין חישוב פשוט של אינדקס, בדומה לכך, שאילתות המבקשות עבור כל הרשומות בטווח מסוים ניתן לענות ב-FLT:0 הזמן שבו מספר זה הוא 1FLT, לעומת תוצאות קריטיות, מאשר יעילות מחזורית (D) מאשר יעילות מחזורית (D2D).

טכניקות מתקדמות של סמפלינג

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

מפתח מיון אלגוריתמים ויישומים שלהם ב-Data Sampling

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

מהיר: מהירות וחלוקת

QuickSort הוא אלגוריתם דיבידנד וconquer אשר בוחר pivot, מפיץ את המערך לאלמנטים פחות מאשר גדול יותר מאשר pivot, ו recursive מיני את החלוקה.עם מורכבות זמן ממוצעת של case זמן של ⁇ 3 וגורמים קבועים נמוך, QuickSort הוא לעתים קרובות ברירת המחדל במספר רב של ספריות סטנדרטיות (למשל, C++FLT:4, Python, pting נתונים מהירים כל כך מהר).

עם זאת, QuickSort אינו יציב ויכול לגרוע ל-FLT:5 (בעבורת לא מאוזנת ביותר אם נעשה שימוש באסטרטגיה של בחירה גרועה ב- pivot. ביישומי מודרני כמו introsort להקטין את זה על ידי מעבר ל-HeapSort כאשר מהירות סיור עולה על סף.עבור עומסי עבודה בקנה מידה גדול, עדיף להסתמך על יישום ספריות הכוללים אמצעי הגנה אלה.

מרgeSort: Stable andחיצוני

מרge Sort מחלק את הנתונים לחתיכות קטנות, כל אחד מהם, ואז ממזג אותם.ה-FLT:6 ביצועים הגרועים ביותר ויציבות (הקבלת הסדר היחסי של אלמנטים שווים) הופך אותו אידיאלי עבור נתונים שאינם מתאימים לחלוטין לתוך RAM. מרג' סוטר הוא הבסיס של אלגוריתמים רבים של אלגוריתמים חיצוניים המשמשים במערכות מסד נתונים מבוזרות כמו אפאצ'י Hadoop ו- Sparks.

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

HeapSort: Promised Performance

היפויסטר בונה את ה-max-heap (או Min-heap) מהמידע ומוציא שוב ושוב את האלמנט הגדול ביותר.הוא פועל ב-FLT 7 זמן הגרוע ביותר ומשתמש רק בחלל עזרי (FLT:8), בעוד איטי יותר בפועל מאשר QuickSort עקב מקומי מטמון גרוע, heapSort מספק מערכת מובטחת בעל ערך רב ערך ב-זמני אמת, כאשר הוא יכול להיות מטיפוס של נתונים רצופים ללא צורך קבוע, ללא צורך קבוע, ללא צורך קבוע, ללא כמות מוגבלת של מספר קבוע של נתונים.

ספירת מון ורדקס מון: לא-Comparativeמיין for Integers

כאשר ערכי המפתח הם אינטגרטורים עם טווח מוגבל (למשל, תעודות זהות בכיתה 0-100, תכונות קוונטיות), אלגוריתמים שאינם מקבילים כגון ספירה של מון ורדקס יכולים להשיג מורכבות זמן ליניארית (FLT:9 אלה שימושיים במיוחד ב אלגוריתמים סטרטלינג מלוכדים כאשר סטרטה מוגדרים על ידי תכונות קטגוריות.

עבור נתונים עתירי משקל גבוה, סוג דלי או מין בינארי יכול להיות משולב עם שיטות אלה כדי לחלק במהירות נתונים עבור stratified או sampling אשכול.

שיטות מבוססות סמפלינג מפורטות

עקבו אחרי Mined Labels

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

ב- Python, זה נעשה בקלות על ידי מיון נתונים של נתונים עם (FLT:12), ולאחר מכן באמצעות שימוש ב-FLT:13 עם זאת, מיון כל הנתוניםFrame עשוי להיות יקר; עבור נתונים גדולים מאוד, FLT:0scikit-learn-learn-learn של ספירתול 1 מספק יישום מותאם אישית כי למנוע סוג מלא על ידי שימוש במחלקה מבוסס.

תזמון שיטתי לאחר מיון

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

sampling שיטתי לאחר מיון יעיל במיוחד עבור נתונים גדולים, מאוחסנים באופן משמעותי (למשל, קבצי יומן, ארכיונים של זמן) כי הסדר המתואם עם סדר האחסון הפיזי, מצמצם את I / O. זוהי טכניקה נפוצה ב- sampling מסד נתונים.

Reservoir Sampling and the Role ofמיין

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

(ב) ניתן לבנות מאגר ממולאים על ידי סריקה של הנתונים פעם אחת ולשמור על רשימה מנוסה מדגימה של אינדיקציות, המאפשר תוספת יעילה והסרת. Libraries כמו FLT:0Python's (FLT:1603FLT:1), להסתמך על מיון פנימי כדי לייצר הזמנה עקבית של אלמנטים נבחרים.

יתרונות מעשיים ומסחר

המונחים: Computational Complexity

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

עם זאת, הצעד הממיין עצמו מוסיף מורכבות של FLT:20. בפועל, זה מקובל כי מיון הוא עלות חד פעמית שניתן להזכר על פעולות דגימה רבות. עבור נתונים גדולים מאוד, אלגוריתמים מבוזרים (למשל, MapReduce-based) זמינים, ואת העלות ניתן מקבילים על פני אשכולות.

זיכרון ו/או שיקולים

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

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

דמוקרטיה נגד Overhead

בעוד מיון משפר את יעילות הדגימה, זה יכול להציג הטיה אם סדר מסוג זה משמש באופן בלתי נמנע כ Proxy עבור אקראיות.לדוגמה, מיון מפתח לא-random ולאחר מכן נטילת הראשון (FLT 22 אלמנטים הוא לא שיטת הדגימה תקפה; זה יוצר מבחר מכריע כי לא יכול לייצג את האוכלוסייה.

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

דוגמאות אמיתיות לשימוש במקרים

מידע מאוזן

(למשל, זיהוי הונאה עם 99% נורמלי, 1% הונאה) לעתים קרובות דורש דגימה מלוכדת כדי לשמר את מעמד המיעוט.למיין את הנתונים על ידי תווית הכיתה מאפשר מיצוי מהיר של כל דגימות הונאות.אז, תחת הדגימה של שיעור הרוב או over-sampling theמיעוט הופך פשוט.

זמן-Series Data Spling

כאשר מתמודדים עם נתוני זמן, כגון קריאת חיישן או עסקאות פיננסיות, מיון על ידי תזמון הוא חיוני כדי למנוע דליפות נתונים. הזמנה מכוונת מבטיחה כי דגימות הכשרה נמשכים מחלון זמן רב, וכי קבוצות אימות מגיעות מהתקופה מאוחרת יותר. Sampling a זמן ממיין עם מרווחים קבועים (למשל, כל תצפית 10th) יכול לייצר set מופחת נתונים עדיין לוכדת דפוסים זמן רב.

סקר גדול מאוד של סמפלינג

במסגרות מחשוב מבוזרות כמו Apache Spark, sampling מבוצעת לעתים קרובות במהלך קידוד נתונים.מיין על ידי מפתחות מחיצה לפני דגימה משפר איזון עומס ומפחיתה את הרשת מעל ראש. Spark's FLT:25) שיטה עבור stratified sampling קבוצות ראשונות על ידי מפתח סטרטום באמצעות מפצה חיתול - יש בבירור סוג מבוזר על המפתח הזה מאפשר לכל אחד מהם לבצע דגימה מלאה בעולם, ללא מדגם מבוזר באופן מקומי.

עבור למידה מכונה GPU-accelerated, ספריות כמו RAPIDS cuDF נתונים על GPU באמצעות סוג קרינת רדיוקס מקבילים, השגת מהירויות של סדר גודל מהר יותר מאשר סוג מבוסס CPU. זה מאפשר דגימה של זמן קצר של זרימת נתונים עבור מודלים למידה מקוונת.

שיקולים מתקדמים: מיון בסביבה של Distributed ו- GPU

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

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

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

מחשבות אחרונות

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