BigQuery ML לזיהוי הונאות בעסקאות בכרטיס אשראי באמצעות המסוף

1. מבוא

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

מה תלמדו

  • עיון בנתונים שזמינים ב-BigQuery
  • יצירת מודל באמצעות SQL ב-BigQuery באמצעות המסוף
  • הערכת התוצאות של המודל שנוצר
  • חיזוי עסקה אם היא שמקורה בתרמית או לא במסגרת המודל שנוצר

2. מידע על הנתונים

מערכי הנתונים מכילים עסקאות שבוצעו באמצעות כרטיסי אשראי בספטמבר 2013 על ידי בעלי כרטיסים אירופיים. במערך הנתונים הזה מוצגות עסקאות שבוצעו תוך יומיים, שבמהלכם יש לנו 492 הונאות מתוך 284,807 עסקאות. זה מאוד לא מאוזן, והסיווג החיובי (הונאות) הוא 0.172% מכל העסקאות.

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

  1. התכונות V1, V2, ... V28 הן הרכיבים העיקריים שמתקבלים עם PCA, והתכונות היחידות שלא עברו טרנספורמציה עם PCA הן 'זמן' ו'סכום'.
  2. תכונה 'זמן' מכיל את השניות שחלפו בין כל עסקה לעסקה הראשונה במערך הנתונים.
  3. התכונה 'סכום' היא סכום העסקה. אפשר להשתמש בתכונה הזו לצורך למידה תלויי עלות.
  4. התכונה 'Class' היא משתנה התגובה, והיא מקבלת את הערך 1 במקרה של הונאה, ואת הערך 0 במקרים אחרים.

מערך הנתונים נאסף ונותח במהלך מחקר משותף של Worldline ו-Machine Learning Group ( http://mlg.ulb.ac.be) של ULB (Université Libre de Bruxelles) בנושא כריית Big Data וזיהוי הונאות.

פרטים נוספים על פרויקטים קיימים וקודמים בנושאים קשורים זמינים בכתובת https://www.researchgate.net/project/Fraud-detection-5 ובדף של פרויקט DefeatFraud.

ציטוט:

אנדריאה דאל פוזולו, אוליבייה קאלן, רייד א. ג'ונסון וג'יאנלוקה בונטמפי. כיול הסתברות באמצעות דגימה נמוכה לסיווג לא מאוזן. ב-Symposium on Computational Intelligence וכריית נתונים (CIDM), IEEE, 2015

דאל פוצולו, אנדריאה; קאלן, אוליבייה; Le Borgne, Yann-Ael; ווטרשוט, סרג'; בונטמפי, ג'אנלוקה. שיעורים שנלמדו בזיהוי הונאות בכרטיסי אשראי מנקודת המבט של בעלי המקצוע, מערכות מומחים עם אפליקציות,41,10,4915-4928,2014, פרגמון

דאל פוצולו, אנדריאה; בוראצ'י, ג'אקומו; קאלן, אוליבייה; AliPP, Cesare; בונטמפי, ג'אנלוקה. זיהוי הונאות בכרטיסי אשראי: מודלים ריאליסטיים ואסטרטגיית למידה חדשנית, עסקאות IEEE ברשתות נוירונים ובמערכות למידה,29,8,3784-3797,2018,IEEE

Dal Pozzolo, Andrea למידת מכונה דינמית לזיהוי הונאות בכרטיסי אשראי ULB MLG PhD תזה (בפיקוח של G. Bontempi)

Carcillo, Fabrizio; דאל פוצולו, אנדריאה; Le Borgne, Yann-Aël; קאלן, אוליבייה; Mazzer, Yannis; בונטמפי, ג'אנלוקה. Scarff: מסגרת ניתנת להרחבה לזיהוי הונאות בכרטיסי אשראי באמצעות Spark, Information fusion,41, 182-194,2018,Elsevier

Carcillo, Fabrizio; Le Borgne, Yann-Aël; קאלן, אוליבייה; בונטמפי, ג'אנלוקה. סטרימינג של אסטרטגיות למידה פעילות לזיהוי הונאות בכרטיסי אשראי אמיתיות: הערכה והצגה חזותית, International Journal of Data Science and Analytics, 5,4,285-300,2018,Springer International Publishing

Bertrand Lebichot, Yann-Aël Le Borgne, Liyun He, Frederic Oblé, Gianluca Bontempi Deep-Learning Domain Adaptation Techniques for Credit Cards Fraud Detection, INNSBDDL 2019: חידושים ב-Big Data ו-Deep Learning, pp 78-88, pp 78-88

Fabrizio Carcillo, Yann-Aël Le Borgne, אוליבייה קאלן (Oliivier Caelen), פרדריק אובלה (Gianluca Bontempi), שילוב של למידה בלתי מפוקחת ולמידה מבוקרת בזיהוי הונאות בכרטיסי אשראי , מדעי המידע, 2019

3. הגדרת הסביבה

כדי להריץ את ה-Codelab הזה צריך פרויקט ב-Google Cloud Platform שהחיוב מופעל בו. כדי ליצור פרויקט, יש לפעול לפי ההוראות האלה.

  1. הפעלת BigQuery API

עוברים אל BigQuery ובוחרים באפשרות 'הפעלה' אם היא עדיין לא מופעלת. תצטרכו את זה כדי ליצור את המודל.

4. עיון בנתונים

שלב 1: עוברים אל BigQuery

מחפשים את BigQuery בכתובת https://cloud.google.com/console

שלב 2: בדיקת הנתונים באמצעות שאילתה

בעורך , מקלידים את שאילתת ה-SQL הבאה כדי לבדוק את הנתונים במערך הנתונים הציבורי .

SELECT * FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` LIMIT 5

שלב 3: הפעלה

צריך ללחוץ על הפקודה 'הרצה' למעלה כדי להפעיל את השאילתה

c670e136ecd58236.png

תוצאות

הן אמורות להופיע בחלונית Query Results (תוצאות שאילתה) והן נראות בערך כך. הנתונים עשויים להשתנות

be082fb135879158.png

לסקור את העמודות המוצגות ואת הפלט.

אפשר להריץ כמה שאילתות כדי להבין איך הנתונים מופצים. הנה כמה דוגמאות:

SELECT count(*) FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` 
where Class=0;
SELECT count(*) FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` 
where Class=1;

5. יצירת מערך נתונים של פלט

שלב 1: יצירת מערך נתונים ליצירת מודל

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

7618699754e066bd.png

  1. בפינה השמאלית העליונה, לוחצים על 'יצירת מערך נתונים'

17851cc9db05dc1.png

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

b8b6731408f61d57.png

6. יצירת מודל רגרסיה לוגיסטית

שלב 1: יצירת דוח

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

INPUT_LABEL_COLS מציין את תווית החיזוי

auto_CLASS_WEIGHTS משמשים למערכי נתונים לא מאוזנים

MODEL_TYPE יציין שהאלגוריתם שבו נעשה שימוש במקרה זה הוא רגרסיה לוגיסטית

DATA_SPLIT_METHOD מציין את החלוקה בין נתוני האימון לנתוני הבדיקה

CREATE OR REPLACE MODEL advdata.ulb_fraud_detection 
TRANSFORM(
    * EXCEPT(Amount),
    SAFE.LOG(Amount) AS log_amount
)
OPTIONS(
    INPUT_LABEL_COLS=['class'],
    AUTO_CLASS_WEIGHTS = TRUE,
    DATA_SPLIT_METHOD='seq',
    DATA_SPLIT_COL='Time',
    MODEL_TYPE='logistic_reg'
) AS

SELECT 
 *
FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection`

שלב 2: הפעלה

מריצים את ההצהרה שלמעלה. המחיקה תסתיים תוך כמה דקות

שימו לב לדברים החשובים אחרי שההרצה הסתיימה

3385a54d3907443e.png

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

שלב 3: התנסות

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

b350f1b94835f2d1.png

נרחיב על כך בסעיפים הבאים

מידע נוסף על רגרסיה לוגיסטית זמין כאן

7. בחינת המדדים של הערכת המודל

בשלב הזה נציג את הביצועים של המודל שלנו.

בסיום המשימה של אימון המודל, לחצו על המודל שאימנתם ועיינו בכרטיסייה 'הערכה'. יש כאן הרבה מדדי הערכה - נתמקד רק באחד ממדדי ההערכה :roc_auc

 SELECT * FROM ML.EVALUATE(MODEL advdata.ulb_fraud_detection)

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

c3c80286082dc336.png

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

דיוק ואחזור

ROC Curve ו-AUC

8. חיזוי הכיתה לפרק זמן מסוים

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

SELECT Amount, predicted_class_probs, Class
FROM ML.PREDICT( MODEL advdata.ulb_fraud_detection,
 (SELECT * FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` WHERE Time = 85285.0)
)

הפלט אמור להיראות בערך כך (המספרים עשויים להשתנות)

676fc8accdab2f6c.png

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

מידע נוסף על ML.PREDICT חיפוש כאן

9. הסרת המשאבים

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

e7d18fadd2b781be.png

לוחצים על 'מחיקת מערך הנתונים' בפינה השמאלית העליונה.

b47bc819869bed6c.png

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

10. מזל טוב

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

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

מה השלב הבא?

נסו להשתמש בחיזוי של דרכים נוספות

מסמכי עזר