1. מבוא
בשיעור Lab הזה תשתמשו ב- BigQuery כדי לאמן מודל ולהפעיל אותו עם נתונים טבלאיים באמצעות מסוף. השירות הזה הוא התוספת המועדפת להדרכה ולשירות של מודלים מבוססי SQL. בעזרת BigQuery ML, משתמשים יכולים ליצור ולהריץ מודלים של למידת מכונה ב-BigQuery באמצעות שאילתות SQL. המטרה היא להפוך את למידת המכונה לנגישה יותר, ולאפשר למשתמשי SQL לבנות מודלים באמצעות הכלים הקיימים שלהם, וגם להגביר את מהירות הפיתוח על ידי ביטול הצורך בהעברת נתונים.
מה תלמדו
- סקירת הנתונים שזמינים ב-BigQuery
- יצירת מודל באמצעות SQL ב-BigQuery דרך המסוף
- הערכת התוצאות של המודל שנוצר
- חיזוי עסקה אם היא תרמיתית או לא באמצעות המודל שנוצר
2. מידע על הנתונים
מערכי הנתונים מכילים עסקאות שבוצעו בכרטיסי אשראי בספטמבר 2013 על ידי בעלי כרטיסים אירופאים. קבוצת הנתונים הזו מציגה עסקאות שהתרחשו במשך יומיים, שבהם היו 492 מקרי הונאה מתוך 284,807 עסקאות. הנתונים לא מאוזנים, והסיווג החיובי (הונאות) מייצג 0.172% מכל העסקאות.
הוא מכיל רק משתני קלט מספריים שהם התוצאה של טרנספורמציה של PCA. לצערנו, מטעמי סודיות, אנחנו לא יכולים לספק את התכונות המקוריות ומידע נוסף על הנתונים.
- Features V1, V2, ... V28 הם הרכיבים העיקריים שהתקבלו באמצעות PCA. התכונות היחידות שלא עברו טרנספורמציה באמצעות PCA הן Time ו-Amount.
- התכונה 'זמן' מכילה את מספר השניות שחלפו בין כל עסקה לבין העסקה הראשונה במערך הנתונים.
- התכונה 'סכום' היא סכום העסקה. אפשר להשתמש בתכונה הזו ללמידה רגישה לעלויות שמשתנה בהתאם לדוגמה.
- התכונה 'Class' היא משתנה התגובה, והערך שלה הוא 1 במקרה של הונאה ו-0 אחרת.
מערך הנתונים נאסף ונותח במהלך שיתוף פעולה מחקרי בין Worldline לבין קבוצת למידת המכונה ( http://mlg.ulb.ac.be) של ULB (Université Libre de Bruxelles) בנושא כריית נתונים בהיקפים גדולים וזיהוי הונאות.
פרטים נוספים על פרויקטים נוכחיים וקודמים בנושאים קשורים זמינים בכתובת https://www.researchgate.net/project/Fraud-detection-5 ובדף של הפרויקט DefeatFraud
ציטוט:
Andrea Dal Pozzolo, Olivier Caelen, Reid A. Johnson וג'יאנלוקה בונטמפי. Calibrating Probability with Undersampling for Unbalanced Classification. In Symposium on Computational Intelligence and Data Mining (CIDM), IEEE, 2015
Dal Pozzolo, Andrea; Caelen, Olivier; Le Borgne, Yann-Ael; Waterschoot, Serge; Bontempi, Gianluca. Learned lessons in credit card fraud detection from a practitioner perspective, Expert systems with applications,41,10,4915-4928,2014, Pergamon
Dal Pozzolo, Andrea; Boracchi, Giacomo; Caelen, Olivier; Alippi, Cesare; Bontempi, Gianluca. Credit card fraud detection: a realistic modeling and a novel learning strategy, IEEE transactions on neural networks and learning systems,29,8,3784-3797,2018,IEEE
Dal Pozzolo, Andrea Adaptive Machine learning for credit card fraud detection ULB MLG PhD thesis (supervised by G. Bontempi)
Carcillo, Fabrizio; Dal Pozzolo, Andrea; Le Borgne, Yann-Aël; Caelen, Olivier; Mazzer, Yannis; Bontempi, Gianluca. Scarff: a scalable framework for streaming credit card fraud detection with Spark, Information fusion,41, 182-194,2018,Elsevier
Carcillo, Fabrizio; Le Borgne, Yann-Aël; Caelen, Olivier; Bontempi, Gianluca. אסטרטגיות של למידה פעילה לזיהוי הונאות בכרטיסי אשראי בחיים האמיתיים: הערכה והצגה חזותית,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: Recent Advances in Big Data and Deep Learning, pp 78-88, 2019
Fabrizio Carcillo, Yann-Aël Le Borgne, Olivier Caelen, Frederic Oblé, Gianluca Bontempi Combining Unsupervised and Supervised Learning in Credit Card Fraud Detection Information Sciences, 2019
3. הגדרת הסביבה
כדי להפעיל את ה-codelab הזה, צריך פרויקט ב-Google Cloud Platform שמופעל בו חיוב. כדי ליצור פרויקט, פועלים לפי ההוראות האלה.
- הפעלת 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: ביצוע
לוחצים על הפקודה Run (הפעלה) שלמעלה כדי להריץ את השאילתה.

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

בודקים את העמודות שמשתתפות בפונקציה ואת הפלט.
אתם יכולים להריץ כמה שאילתות כדי להבין איך הנתונים מתפלגים. לדוגמה, יכול להיות שתתבקשו לשלוח
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: יוצרים מערך נתונים ליצירת מודל
- בחלונית Explorer (סייר) בצד ימין , בוחרים את הפרויקט שעליו עובדים כרגע ולוחצים על סמל שלוש הנקודות שלידו.

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

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

6. Create Logistic Regression Model
שלב 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: ביצוע
מריצים את ההצהרה שלמעלה. הפעולה תימשך כמה דקות
שימו לב לדברים החשובים אחרי שההרצה מסתיימת

- המודל שנוצר יופיע בחלונית של כלי המחקר
- בחלונית Query Results (תוצאות השאילתה) יופיע משך הזמן שנדרש לעיבוד ה-ML SQL, בדומה לכל הצהרת SQL
- בחלונית Query Results (תוצאות השאילתה) יופיע גם הקישור Go to Model (מעבר למודל) כדי שתוכלו לבדוק
שלב 3: בודקים את הנתונים
כדי לעיין במודל שנוצר, לוחצים על 'מעבר למודל' או בחלונית Explorer. בכרטיסיות מוצג מידע על המודל שנוצר, על האימון, על ההערכה וכו'. עיון בתוצאות

בקטעים הבאים נסביר על כך בהרחבה
כאן אפשר לקרוא מידע נוסף על רגרסיה לוגיסטית
7. עיון במדדי הערכת המודל
בשלב הזה נראה את הביצועים של המודל.
אחרי שמשימת אימון המודל מסתיימת, לוחצים על המודל שאומן וצופים בכרטיסייה Evaluate (הערכה). יש כאן הרבה מדדי הערכה – נתמקד רק באחד :roc_auc
SELECT * FROM ML.EVALUATE(MODEL advdata.ulb_fraud_detection)
התוצאות ייראו בערך כך. בדרך כלל, מדד roc_auc חשוב יותר במערך נתונים לא מאוזן

כדי לקבל מידע נוסף על התוצאות. אפשר לעיין במסמכי התיעוד בנושא ML.Evaluate כאן
8. חיזוי של הכיתה לזמן מסוים
לוחצים על Compose a new query (יצירת שאילתה חדשה) ומריצים את ה-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)
)
הפלט אמור להיראות כך (המספרים עשויים להיות שונים)

בדוגמה הזו, אנחנו מציגים את הסכום עם ההסתברות המשויכת לתווית. בעמודה 'כיתה' מופיעות התוצאות בפועל.
מידע נוסף על ML.PREDICT טבלת Look מספר כאן
9. הסרת המשאבים
כדי לנקות את המשאבים שנוצרו באמצעות ה-Lab הזה, פותחים את מערך הנתונים מחלונית Explorer בצד ימין.

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

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