Bigquery ML برای تشخیص تقلب در معاملات کارت اعتباری با استفاده از کنسول
درباره این codelab
1. مقدمه
در این آزمایشگاه، از BigQuery برای آموزش و ارائه مدل با داده های جدولی با استفاده از یک کنسول استفاده خواهید کرد. این پیشنهاد افزودنی مورد علاقه برای ارائه و آموزش مدل مبتنی بر SQL است. BigQuery ML کاربران را قادر می سازد تا با استفاده از پرس و جوهای SQL، مدل های یادگیری ماشینی را در BigQuery ایجاد و اجرا کنند. هدف، دموکراتیک کردن یادگیری ماشین از طریق فعال کردن متخصصان SQL برای ساخت مدلها با استفاده از ابزارهای موجود و افزایش سرعت توسعه با حذف نیاز به انتقال داده است.
آنچه خواهید آموخت
- داده های موجود در Bigquery را کاوش کنید
- یک مدل با استفاده از SQL در Bigquery با استفاده از کنسول ایجاد کنید
- نتایج مدل ایجاد شده را ارزیابی کنید
- با مدل ایجاد شده، تراکنش را پیش بینی کنید که آیا تقلبی است یا خیر
2. در مورد داده ها
مجموعه داده ها شامل تراکنش های انجام شده توسط کارت های اعتباری در سپتامبر 2013 توسط دارندگان کارت اروپایی است. این مجموعه داده تراکنش هایی را ارائه می دهد که در دو روز اتفاق افتاده است، که در آن ما 492 کلاهبرداری از 284807 تراکنش داریم. این بسیار نامتعادل است، طبقه مثبت (تقلب ها) 0.172٪ از کل معاملات را تشکیل می دهد.
این فقط شامل متغیرهای ورودی عددی است که نتیجه یک تبدیل PCA هستند. متأسفانه، به دلیل مسائل محرمانه، نمیتوانیم ویژگیهای اصلی و اطلاعات پسزمینه بیشتری درباره دادهها ارائه کنیم.
- ویژگیهای V1، V2، ... V28 اجزای اصلی بهدستآمده با PCA هستند، تنها ویژگیهایی که با PCA تغییر نکردهاند «زمان» و «مقدار» هستند.
- ویژگی 'Time ' حاوی ثانیه های سپری شده بین هر تراکنش و اولین تراکنش در مجموعه داده است.
- ویژگی «مبلغ» مبلغ تراکنش است، این ویژگی را می توان برای یادگیری مبتنی بر هزینه به عنوان مثال استفاده کرد.
- ویژگی «Class» متغیر پاسخ است و در صورت تقلب مقدار 1 و در غیر این صورت 0 می گیرد.
مجموعه داده طی یک همکاری تحقیقاتی Worldline و گروه یادگیری ماشین ( http://mlg.ulb.ac.be ) از ULB (Université Libre de Bruxelles) در مورد داده کاوی و کشف تقلب جمع آوری و تجزیه و تحلیل شده است.
جزئیات بیشتر در مورد پروژه های فعلی و گذشته در مورد موضوعات مرتبط در https://www.researchgate.net/project/Fraud-detection-5 و صفحه پروژه DefeatFraud موجود است.
نقل قول:
آندره آ دال پوزولو، اولیویه کالن، رید آ. جانسون و جیانلوکا بونتمپی. کالیبره کردن احتمال با نمونه برداری کم برای طبقه بندی نامتعادل. در سمپوزیوم هوش محاسباتی و داده کاوی (CIDM)، IEEE، 2015
دال پوزولو، آندریا؛ کالن، اولیویه؛ لو بورن، یان ائل؛ واترشوت، سرژ؛ بونتمپی، جیانلوکا. درس های آموخته شده در تشخیص کلاهبرداری کارت اعتباری از دیدگاه پزشک ، سیستم های خبره با برنامه های کاربردی، 41،10،4915-4928،2014، Pergamon
دال پوزولو، آندریا؛ بوراچی، جاکومو؛ کالن، اولیویه؛ علیپی، سزار؛ بونتمپی، جیانلوکا. تشخیص تقلب کارت اعتباری: یک مدل سازی واقع بینانه و یک استراتژی یادگیری جدید، تراکنش های IEEE در شبکه های عصبی و سیستم های یادگیری، 29،8،3784-3797،2018، IEEE
Dal Pozzolo، Andrea Adaptive Machine Learning برای تشخیص تقلب در کارت اعتباری پایان نامه دکتری ULB MLG (به راهنمایی G. Bontempi)
کارسیلو، فابریزیو؛ دال پوزولو، آندریا؛ Le Borgne, Yann-Aël; کالن، اولیویه؛ مازر، یانیس؛ بونتمپی، جیانلوکا. Scarff: چارچوبی مقیاسپذیر برای شناسایی تقلب در کارت اعتباری با Spark ، Information fusion، 41، 182-194،2018، Elsevier
کارسیلو، فابریزیو؛ Le Borgne, Yann-Aël; کالن، اولیویه؛ بونتمپی، جیانلوکا. جریان استراتژی های یادگیری فعال برای تشخیص تقلب کارت اعتباری در زندگی واقعی: ارزیابی و تجسم، مجله بین المللی علوم داده و تجزیه و تحلیل، 5،4،285-300،2018، انتشارات بین المللی اسپرینگر
برتراند لبیچوت، یان-آل لو بورگن، لییون هی، فردریک اوبله، Gianluca Bontempi تکنیک های تطبیق دامنه یادگیری عمیق برای تشخیص تقلب در کارت های اعتباری ، INNSBDDL 2019: پیشرفت های اخیر در داده های بزرگ و یادگیری عمیق، 78-89
Fabrizio Carcillo، Yann-Aël Le Borgne، Olivier Caelen، Frederic Oblé، Gianluca Bontempi ترکیب یادگیری بدون نظارت و نظارت در علوم اطلاعات شناسایی تقلب در کارت اعتباری ، 2019
3. محیط خود را تنظیم کنید
برای اجرای این کد لبه به یک پروژه Google Cloud Platform با فعال بودن صورتحساب نیاز دارید. برای ایجاد یک پروژه، دستورالعمل های اینجا را دنبال کنید.
- Bigquery API را فعال کنید
به BigQuery بروید و اگر قبلاً فعال نشده است Enable را انتخاب کنید. برای ایجاد مدل خود به این نیاز خواهید داشت.
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 - سمت چپ پروژه ای را که در حال حاضر روی آن کار می کنید انتخاب کنید، روی سه نقطه کنار آن کلیک کنید
- روی Create Dataset در بالا سمت راست کلیک کنید
- جزئیات نام مجموعه داده، حفظ، مکان و غیره را وارد کنید، از این تنظیمات استفاده کنید
6. ایجاد مدل رگرسیون لجستیک
مرحله 1: ایجاد بیانیه
در پنجره Query، عبارت زیر را برای ایجاد مدل تایپ کنید. با این عبارت گزینه های کلیدی را درک کنید. در این لینک توضیح داده شده است.
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 خواهد داشت.
- پانل نتایج پرس و جو همچنین پیوند Go to Model را برای کاوش شما خواهد داشت
مرحله 3: کاوش
مدل ایجاد شده را با کلیک بر روی Go to Model یا از پانل Explorer کاوش کنید. برگه ها اطلاعاتی در مورد مدل ایجاد شده، آموزش، ارزیابی و غیره ارائه می دهند، نتایج را بررسی کنید
در بخش های بعدی به بررسی بیشتر این موضوع خواهیم پرداخت
برای دانستن بیشتر در مورد رگرسیون لجستیک به اینجا نگاه کنید
7. بررسی معیارهای ارزیابی مدل
در این مرحله خواهیم دید که مدل ما چگونه عمل کرده است.
پس از اتمام کار آموزش مدل، روی مدلی که به تازگی آموزش داده اید کلیک کنید و به برگه ارزیابی نگاهی بیندازید. معیارهای ارزیابی زیادی در اینجا وجود دارد - ما فقط روی یکی تمرکز خواهیم کرد: 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. اینجا را نگاه کن
9. پاکسازی
اگر می خواهید منابع ایجاد شده با این آزمایشگاه را پاکسازی کنید، مجموعه داده را از پانل Explorer در سمت چپ باز کنید.
روی Delete Dataset در گوشه بالا سمت راست کلیک کنید
برای تأیید جزئیات، نام مجموعه داده را دوباره وارد کنید. برای مورد ما این advdata خواهد بود
10. تبریک میگم
تبریک میگوییم، شما با موفقیت اولین مدل خود را ایجاد کردید، با استفاده از یادگیری ماشینی نظارت شده ارزیابی و پیشبینی کردید!
اکنون مراحل کلیدی مورد نیاز برای ایجاد یک مدل رگرسیون لجستیک را می دانید.
بعدش چی؟
برخی از این راههای دیگری که در پیشبینی دخیل هستند را بررسی کنید
- شروع کار با Bigquery ML
- پیشبینی سریهای زمانی با Bigquery ML
- مدل تشخیص تقلب با استفاده از AutoML
- تشخیص تقلب با استفاده از تنسورفلو