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

הגדלת עסקאות הונאה באמצעות נתונים סינתטיים באמזון SageMaker

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

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

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

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

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

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

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

סקירה כללית של הפתרון

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

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

אנו משתמשים בשירותי AWS, כולל Amazon SageMaker ו-Amazon S3, אשר כרוכים בעלויות לשימוש במשאבי ענן.

הגדר את סביבת הפיתוח

SageMaker מספקת מופע מחברת Jupyter מנוהל לבניית מודלים, הדרכה ופריסה.

דרישות:

עליך להיות בעל חשבון AWS כדי להפעיל את SageMaker. אתה יכול לקבל החל עם SageMaker ונסה הדרכות מעשית.

להנחיות להגדרת סביבת העבודה Jupyter Notebook, ראה התחל בעבודה עם מופעי מחברת אמזון SageMaker.

שלב 1: הגדר את מופע Amazon SageMaker שלך

  1. היכנס למסוף AWS וחפש את "SageMaker".
  2. בחר סטודיו.
  3. בחר מופעי מחברת בסרגל השמאלי ובחר צור מופע מחברת.
  4. מהעמוד הבא (כפי שמוצג בתמונה הבאה), בחר את התצורות של המכונה הוירטואלית (VM) בהתאם לצרכים שלך, ובחר צור מופע מחברת. שימו לב שהשתמשנו ב-VM מותאם ל-ML ללא GPU ו-5 GB של נתונים, ml.t3.medium המריץ Amazon Linux 2, ו-Jupyter Lab 3 ליבה.
    צור מופע מחברת
  5. מופע מחברת יהיה מוכן לשימושך תוך מספר דקות.
  6. בחר פתח את JupyterLab לשגר.
    הגדלת עסקאות הונאה באמצעות נתונים סינתטיים באמזון SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.
  7. כעת, כשיש לנו JupyterLab עם המפרטים הנדרשים שלנו, נתקין את הספרייה הסינתטית.
pip install ydata-synthetic

שלב 2: הורד או חלץ את מערך הנתונים האמיתי כדי ליצור נתונים סינתטיים

הורד את נתוני ההפניה מ-Kaggle באופן ידני, כפי שאנו עושים כאן, או באופן תכנותי דרך Kaggle API אם יש לך חשבון Kaggle. אם תחקור את מערך הנתונים הזה, תבחין שמחלקת "הונאה" מכילה הרבה פחות נתונים מאשר המחלקה "לא הונאה".

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

צור תיקיית נתונים ב-JupyterLab והעלה את קובץ הנתונים של Kaggle לתוכה. זה יאפשר לך להשתמש בנתונים בתוך המחברת מאז SageMaker מגיע עם אחסון שהיית מציין כאשר הפקת את המחברת.

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

מערך הנתונים הזה הוא 144 מגה-בייט

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

לאחר מכן תוכל לקרוא את הנתונים באמצעות קוד סטנדרטי דרך ספריית הפנדות:

import pandas as pd
data = pd.read_csv('./data/creditcard.csv')

לנתוני גילוי הונאה יש מאפיינים מסוימים, כלומר:

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

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

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

בואו נסנתז את מערך ההונאה החדש.

שלב 3: אימן את הסינתיסייזרים וצור את הדגם

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

לרשת יריבות יצירתית (GAN) יש שני חלקים:

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

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

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

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

שלב 4: דגימת נתונים סינתטיים מהסינתיסייזר

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

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

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

# use the same shape as the real data
synthetic_fraud = synthesizer.sample(492)

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

שלב 5: השוו והעריכו את הנתונים הסינתטיים מול הנתונים האמיתיים

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

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

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

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

שלב 6: נקה

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

סיכום

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

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

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

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


על המחבר

הגדלת עסקאות הונאה באמצעות נתונים סינתטיים באמזון SageMaker PlatoBlockchain Data Intelligence. חיפוש אנכי. איי.פאריס חדד הוא ה-Data & Insights Lead בצוות AABG Strategic Pursuits. הוא עוזר לארגונים להפוך בהצלחה מונעי נתונים.

בול זמן:

עוד מ למידת מכונות AWS