1. مقدمة
في هذا التمرين العملي، ستستخدم BigQuery لتدريب نموذج وعرضه باستخدام بيانات جدولية من خلال وحدة تحكّم. هذا الحلّ المقترَح هو الإضافة المفضّلة لخدمة النماذج وتدريبها المستندَين إلى SQL. تتيح BigQuery ML للمستخدمين إنشاء نماذج تعلُّم الآلة وتنفيذها في BigQuery باستخدام طلبات SQL. الهدف هو إتاحة تعلُّم الآلة للجميع من خلال السماح لمستخدمي SQL بإنشاء نماذج باستخدام أدواتهم الحالية وزيادة سرعة التطوير من خلال إلغاء الحاجة إلى نقل البيانات.
ما ستتعلمه
- استكشاف البيانات المتوفّرة في BigQuery
- إنشاء نموذج باستخدام SQL في BigQuery من خلال وحدة التحكّم
- تقييم نتائج النموذج الذي تم إنشاؤه
- توقُّع ما إذا كانت المعاملة احتيالية أم لا باستخدام النموذج الذي تم إنشاؤه
2. لمحة عن البيانات
تحتوي مجموعات البيانات على معاملات أجراها حاملو بطاقات أوروبيون باستخدام بطاقات الائتمان في أيلول (سبتمبر) 2013. تعرض مجموعة البيانات هذه المعاملات التي حدثت في يومين، حيث لدينا 492 عملية احتيال من أصل 284,807 معاملة. وهي غير متوازنة إلى حد كبير، حيث تمثّل الفئة الإيجابية (عمليات الاحتيال) %0.172 من جميع المعاملات.
يحتوي على متغيرات إدخال رقمية فقط وهي نتيجة عملية تحويل PCA. نظرًا إلى المشاكل المتعلّقة بالسرية، لا يمكننا تقديم الميزات الأصلية والمزيد من المعلومات الأساسية حول البيانات.
- الميزات V1 وV2 و... وV28 هي المكوّنات الرئيسية التي تم الحصول عليها باستخدام تحليل المكوّنات الرئيسية (PCA)، والميزتان الوحيدتان اللتان لم يتم تحويلهما باستخدام تحليل المكوّنات الرئيسية هما "الوقت" و"المبلغ".
- تحتوي السمة "الوقت" على الثواني المنقضية بين كل معاملة وأول معاملة في مجموعة البيانات.
- الميزة "المبلغ" هي مبلغ المعاملة، ويمكن استخدام هذه الميزة مثلاً في التعلّم الحساس للتكلفة والذي يعتمد على المثال.
- الميزة "الفئة" هي المتغير المستجيب، وتأخذ القيمة 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. "جونسون" و"جيانلوكا بونتمبي" 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. الكشف عن عمليات الاحتيال باستخدام بطاقات الائتمان: وضع نماذج واقعية واستراتيجية تعلّم جديدة، معاملات IEEE بشأن الشبكات العصبية وأنظمة التعلّم،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. استراتيجيات التعلّم النشط للبث المباشر من أجل رصد عمليات الاحتيال ببطاقات الائتمان في الحياة الواقعية: التقييم والتصوّر، المجلة الدولية لعلوم البيانات والتحليلات، 5,4,285-300,2018، دار النشر الدولية سبرينغر
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- إعداد البيئة
يجب أن يكون لديك مشروع على Google Cloud Platform مع تفعيل الفوترة لتتمكّن من تنفيذ هذا الدرس العملي. لإنشاء مشروع، اتّبِع التعليمات هنا.
- تفعيل واجهة برمجة التطبيقات bigquery
انتقِل إلى 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: التنفيذ
اضغط على الأمر "تنفيذ" أعلاه لتنفيذ طلب البحث

النتائج
يجب أن يظهر في لوحة "نتائج الاستعلام" وأن يبدو على النحو التالي. قد تختلف البيانات

استكشاف الأعمدة المعنية والناتج
يمكنك تنفيذ طلبات بحث متعددة لفهم كيفية توزيع البيانات. قد تشمل بعض الأمثلة ما يلي:
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. إنشاء نموذج الانحدار اللوجستي
الخطوة 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: التنفيذ
نفِّذ العبارة أعلاه. من المفترض أن يستغرق إكمال هذه الخطوة بضع دقائق.
ملاحظة الأمور الرئيسية بعد اكتمال عملية التشغيل

- ستتضمّن لوحة "المستكشِف" النموذج الذي تم إنشاؤه
- ستعرض لوحة "نتائج الاستعلام" المدة التي استغرقتها معالجة ML SQL، على غرار أي عبارة SQL.
- ستتضمّن لوحة "نتائج طلب البحث" أيضًا الرابط "الانتقال إلى النموذج" لاستكشافه.
الخطوة 3: الاستكشاف
استكشاف النموذج الذي تم إنشاؤه من خلال النقر على "الانتقال إلى النموذج" أو من لوحة "المستكشف" تقدّم علامات التبويب معلومات عن النموذج الذي تم إنشاؤه والتدريب والتقييم وما إلى ذلك. مراجعة النتائج

سنتناول هذا الموضوع بالتفصيل في الأقسام التالية.
لمزيد من المعلومات عن الانحدار اللوجستي، يمكنك الاطّلاع على هذا الرابط.
7. استكشاف مقاييس تقييم النماذج
في هذه الخطوة، سنرى أداء النموذج.
بعد اكتمال مهمة تدريب النموذج، انقر على النموذج الذي درّبته للتو وألقِ نظرة على علامة التبويب "التقييم". هناك العديد من مقاييس التقييم هنا، وسنركّز على مقياس واحد فقط هو roc_auc
SELECT * FROM ML.EVALUATE(MODEL advdata.ulb_fraud_detection)
ستبدو النتائج على النحو التالي، علمًا بأنّ مقياس roc_auc يكون بشكل عام أكثر أهمية في مجموعة البيانات غير المتوازنة.

لمعرفة المزيد عن النتائج يمكنك الاطّلاع على مستندات ML.Evaluate هنا
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)
)
يجب أن تبدو النتيجة على النحو التالي (قد تختلف الأرقام)

في هذه الحالة، نعرض المبلغ مع الاحتمالية المرتبطة بالتصنيف. يشير عمود الفئة هنا إلى النتائج الفعلية.
لمعرفة المزيد عن ML.PREDICT. انقر هنا
9- تنظيف
إذا أردت تنظيف الموارد التي تم إنشاؤها باستخدام هذا التمرين العملي، افتح مجموعة البيانات من لوحة "المستكشف" على الجانب الأيسر.

انقر على "حذف مجموعة البيانات" (Delete Dataset) في أعلى يسار الصفحة.

أدخِل اسم مجموعة البيانات مرة أخرى لتأكيد التفاصيل. في حالتنا، سيكون ذلك advdata
10. تهانينا
تهانينا، لقد نجحت في إنشاء نموذجك الأول وتقييمه والتنبؤ باستخدام تعلُّم الآلة الموجَّه.
أنت الآن على دراية بالخطوات الأساسية المطلوبة لإنشاء نموذج انحدار لوجستي.
ما هي الخطوات التالية؟
إليك بعض الطرق الأخرى التي يتم استخدامها في التوقّع
- بدء استخدام BigQuery ML
- توقّع السلاسل الزمنية باستخدام BigQuery ML
- نموذج رصد الاحتيال باستخدام AutoML
- رصد الاحتيال باستخدام TensorFlow