1. परिचय
इस लैब में, कंसोल का इस्तेमाल करके टेबल के डेटा के साथ मॉडल को ट्रेनिंग देने और दिखाने के लिए, BigQuery का इस्तेमाल किया जाएगा. एसक्यूएल आधारित मॉडल की सेवा और ट्रेनिंग में, यह ऑफ़र सबसे ज़्यादा मददगार है. BigQuery ML की मदद से उपयोगकर्ता, एसक्यूएल क्वेरी का इस्तेमाल करके BigQuery में मशीन लर्निंग मॉडल बना सकते हैं और उन्हें एक्ज़ीक्यूट कर सकते हैं. इसका मकसद मशीन लर्निंग को लोगों के लिए उपलब्ध कराना है, ताकि SQL के पेशेवर लोगों को उनके मौजूदा टूल का इस्तेमाल करके मॉडल बनाने में मदद मिल सके. साथ ही, डेटा के इस्तेमाल की ज़रूरत को खत्म करके डेवलपमेंट की रफ़्तार बढ़ाई जा सके.
आपको क्या सीखने को मिलेगा
- BigQuery में उपलब्ध डेटा को एक्सप्लोर करें
- कंसोल का इस्तेमाल करके, BigQuery में SQL का इस्तेमाल करके मॉडल बनाएं
- बनाए गए मॉडल के नतीजों का आकलन करना
- किसी लेन-देन का अनुमान लगाना, अगर वह बनाए गए मॉडल के साथ धोखाधड़ी वाला है या नहीं
2. डेटा के बारे में जानकारी
इस डेटासेट में, सितंबर 2013 में यूरोपियन कार्डधारक के क्रेडिट कार्ड से किए गए लेन-देन शामिल हैं. इस डेटासेट में, दो दिनों में हुए लेन-देन की जानकारी दी गई है. इस दौरान, 2,84,807 लेन-देन में से 492 धोखाधड़ी हुई. यह पूरी तरह से असंतुलित है. सभी लेन-देन का 0.172% हिस्सा पॉज़िटिव क्लास (धोखाधड़ी) से आता है.
इसमें सिर्फ़ अंकों वाले इनपुट वैरिएबल होते हैं जो किसी PCA ट्रांसफ़ॉर्मेशन का नतीजा होते हैं. माफ़ करें, गोपनीयता से जुड़ी समस्याओं की वजह से, हम डेटा की मूल सुविधाएं और उसके बारे में ज़्यादा जानकारी नहीं दे सकते.
- फ़ीचर V1, V2, ... V28, पीसीए का इस्तेमाल करने पर मिलने वाली मुख्य सुविधाएं हैं. पीसीए के साथ जो सुविधाएं नहीं बदली गई हैं वे सिर्फ़ ‘समय’ हैं और ‘रकम'.
- सुविधा ‘समय' इसमें हर लेन-देन और डेटासेट में पहले लेन-देन के बीच लगने वाले सेकंड शामिल होते हैं.
- सुविधा 'रकम' लेन-देन की रकम है. इस सुविधा का इस्तेमाल उदाहरण के हिसाब से लागत के हिसाब से सीखने के लिए किया जा सकता है.
- सुविधा 'क्लास' रिस्पॉन्स वैरिएबल है. धोखाधड़ी के मामले में वैल्यू 1 होती है, नहीं तो 0 वैल्यू होती है.
बिग डेटा माइनिंग और धोखाधड़ी की पहचान करने के लिए, यूएलबी ( Université Libre de Bruxelles) के वर्ल्डलाइन और मशीन लर्निंग ग्रुप (http://mlg.ulb.ac.be) के साथ मिलकर की गई रिसर्च के दौरान डेटासेट को इकट्ठा किया गया और उसका विश्लेषण किया गया.
मिलते-जुलते विषयों के मौजूदा और पुराने प्रोजेक्ट की ज़्यादा जानकारी, https://www.researchgate.net/project/Fraud-detection-5 और DefeatFraud प्रोजेक्ट के पेज पर उपलब्ध है
उद्धरण:
एंड्रिया डेल पोज़ोलो, ओलिवियर कीलन, रीड ए॰ जॉनसन और जियानलुका बॉंटेपी. असंतुलित क्लासिफ़िकेशन के लिए, अंडरसैंपलिंग की मदद से प्रॉबबिलिटी को कैलिब्रेट करना. इन सिंपोज़ियम ऑन कंप्यूटेशनल इंटेलिजेंस ऐंड डेटा माइनिंग (सीआईआईडीएम), आईईईई, 2015
डेल पोज़ोलो, ऐंड्रिया; केलन, ओलिवियर; ले बॉर्ने, यान-एल; वॉटरशूट, सर्ज; बॉनटेम्पी, जियानलुका. पेशेवर लोगों के हिसाब से, क्रेडिट कार्ड से होने वाली धोखाधड़ी का पता लगाने के बारे में अच्छी तरह से सीखा गया, आवेदन करने वाले विशेषज्ञों के सिस्टम,41,10,4915-4928,2014, Pergamon
डेल पोज़ोलो, ऐंड्रिया; बोराची, जियाकोमो; केलन, ओलिवियर; अलीपी, चेसारे; बॉनटेम्पी, जियानलुका. क्रेडिट कार्ड से होने वाली धोखाधड़ी का पता लगाना: एक असल मॉडलिंग और नई लर्निंग रणनीति, आईईईई न्यूरल नेटवर्क ऐंड लर्निंग सिस्टम पर लेन-देन,29,8,3784-3797,2018,आईईईई
डेल पोज़ोलो, ऐंड्रिया क्रेडिट कार्ड से होने वाली धोखाधड़ी का पता लगाने के लिए अडैप्टिव मशीन लर्निंग यूएलबी एमएलजी पीएचडी थीसिस (जी. Bontempi)
कार्सिलो, फ़ैब्रीज़ियो; डेल पोज़ोलो, ऐंड्रिया; ले बॉर्न, यान-ऐल; केलन, ओलिवियर; मेज़र, यानिस; बॉनटेम्पी, जियानलुका. Scarff: Spark की मदद से, क्रेडिट कार्ड से जुड़ी धोखाधड़ी का पता लगाने के लिए स्केल किया जा सकने वाला फ़्रेमवर्क, Information fusion,41, 182-194,2018,Elsevier
कार्सिलो, फ़ैब्रीज़ियो; ले बॉर्न, यान-ऐल; केलन, ओलिवियर; बॉनटेम्पी, जियानलुका. क्रेडिट कार्ड से होने वाली धोखाधड़ी का पता लगाने के लिए, ऐक्टिव लर्निंग स्ट्रेटजी स्ट्रीम करना: आकलन और विज़ुअलाइज़ेशन, इंटरनैशनल जर्नल ऑफ़ डेटा साइंस ऐंड Analytics, 5,4,285-300,2018,Springer International Publishing
बर्ट्रेंड लेबिशॉट, यान-एल ले बॉर्गन, लियुन हे, फ़्रेडरिक ओब्ले, जियानलुका बॉन्टपी डीप-लर्निंग डोमेन एडाप्टेशन टेक्नीक्स फ़ॉर क्रेडिट कार्ड से होने वाली धोखाधड़ी का पता लगाना, आईएनएनएसबीडीएल 2019: बिग डेटा ऐंड डीप लर्निंग, पीपी 70198, 2
फ़ेब्रिज़ियो कार्सीलो, यान-एल ले बॉर्ने, ओलिवियर कीलन, फ़्रेडरिक ओबले, जियानलुका बॉनटेम्पी कॉम्बिनिंग अनसुपरवाइज़्ड ऐंड सुपरवाइज़्ड लर्निंग इन क्रेडिट कार्ड धोखाधड़ी का पता लगाने वाली तकनीक इन्फ़ॉर्मेशन साइंसेज़, 2019
3. अपना एनवायरमेंट सेट अप करें
इस कोडलैब को चलाने के लिए, आपके पास Google Cloud Platform का ऐसा प्रोजेक्ट होना चाहिए जिसमें बिलिंग की सुविधा चालू हो. प्रोजेक्ट बनाने के लिए, यहां दिए गए निर्देशों का पालन करें.
- BigQuery API चालू करें
BigQuery पर जाएं और अगर यह पहले से चालू नहीं है, तो 'चालू करें' चुनें. आपको अपना मॉडल बनाने के लिए इसकी ज़रूरत होगी.
4. डेटा एक्सप्लोर करें
पहला चरण: BigQuery पर जाना
https://cloud.google.com/console में BigQuery ढूंढें
दूसरा चरण: क्वेरी का इस्तेमाल करके डेटा को एक्सप्लोर करना
सार्वजनिक डेटासेट में मौजूद डेटा की समीक्षा करने के लिए , Editor में नीचे दी गई SQL क्वेरी टाइप करें .
SELECT * FROM `bigquery-public-data.ml_datasets.ulb_fraud_detection` LIMIT 5
तीसरा चरण: लागू करें
क्वेरी चलाने के लिए, ऊपर दिया गया 'रन' कमांड दबाएं
नतीजे
क्वेरी के नतीजे पैनल में होना चाहिए और कुछ ऐसा दिखना चाहिए. डेटा में अंतर हो सकता है
इसमें शामिल कॉलम और आउटपुट को एक्सप्लोर करें.
डेटा को डिस्ट्रिब्यूट करने के तरीके को समझने के लिए, एक से ज़्यादा क्वेरी चलाई जा सकती हैं. कुछ उदाहरणों में ये शामिल हो सकते हैं
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. आउटपुट डेटासेट बनाना
पहला चरण: मॉडल बनाने के लिए डेटासेट बनाना
- एक्सप्लोरर पैनल में - बाईं ओर वह प्रोजेक्ट चुनें जिस पर अभी काम किया जा रहा है. इसके बाद , उसके बगल में मौजूद तीन बिंदुओं पर क्लिक करें
- सबसे ऊपर दाईं ओर मौजूद, 'डेटासेट बनाएं' पर क्लिक करें
- डेटासेट का नाम, निजी डेटा का रखरखाव, जगह वगैरह की जानकारी डालें. इन सेटिंग का इस्तेमाल करें
6. लॉजिस्टिक रिग्रेशन मॉडल बनाएं
पहला चरण: स्टेटमेंट बनाएं
क्वेरी विंडो में, मॉडल बनाने के लिए नीचे दी गई क्वेरी टाइप करें. इस स्टेटमेंट से जुड़े मुख्य विकल्पों को समझें. इस लिंक में बताया गया है.
इनपुट_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`
दूसरा चरण: लागू करें
ऊपर दिया गया स्टेटमेंट चलाएं. इस प्रोसेस को पूरा होने में कुछ मिनट लगेंगे
दौड़ पूरा होने के बाद मुख्य चीज़ों पर ध्यान दें
- एक्सप्लोरर पैनल में मॉडल बनाया जाएगा
- क्वेरी के नतीजों के पैनल में वह समय होगा जो किसी भी एसक्यूएल स्टेटमेंट की तरह, एमएल एसक्यूएल को प्रोसेस करने में लगा
- क्वेरी के नतीजे वाले पैनल में भी 'मॉडल पर जाएं' लिंक होगा, ताकि आप एक्सप्लोर कर सकें
तीसरा चरण: एक्सप्लोर करें
मॉडल पर जाएं पर क्लिक करके या एक्सप्लोरर पैनल से बनाए गए मॉडल को एक्सप्लोर करें. ये टैब , बनाए गए मॉडल, ट्रेनिंग, आकलन वगैरह के बारे में जानकारी देते हैं. नतीजों की समीक्षा करना
हम अगले सेक्शन में इसके बारे में और जानेंगे
लॉजिस्टिक रिग्रेशन के बारे में ज़्यादा जानने के लिए, यहां जाएं
7. मॉडल इवैलुएशन मेट्रिक एक्सप्लोर करना
इस चरण में हम देखेंगे कि हमारे मॉडल की परफ़ॉर्मेंस कैसी है.
मॉडल ट्रेनिंग का काम पूरा होने के बाद, उस मॉडल पर क्लिक करें जिसे आपने अभी-अभी ट्रेनिंग दी है और 'आकलन करें' टैब पर नज़र डालें. इवैलुएशन से जुड़ी कई मेट्रिक यहां मौजूद हैं - हम सिर्फ़ एक :roc_auc पर फ़ोकस करेंगे
SELECT * FROM ML.EVALUATE(MODEL advdata.ulb_fraud_detection)
नतीजे कुछ इस तरह दिखेंगे. आम तौर पर, असंतुलित डेटासेट पर roc_auc ज़्यादा ज़रूरी होता है
नतीजों के बारे में ज़्यादा जानने के लिए. एमएल देखें.दस्तावेज़ का आकलन करने के लिए यहां जाएं
8. किसी खास समय के लिए क्लास का अनुमान लगाएं
'नई क्वेरी लिखें' दबाएं और नीचे दिया गया एसक्यूएल चलाएं. यहां पहचाने गए समय में धोखाधड़ी वाली रकम है. हम यह आकलन करने की कोशिश कर रहे हैं कि सुझाव काम कर रहा है या नहीं
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. साफ़-सफ़ाई सेवा
अगर आपको इस लैब की मदद से बनाए गए संसाधनों का डेटा हटाना है, तो बाईं ओर एक्सप्लोरर पैनल से डेटासेट खोलें
सबसे ऊपर दाएं कोने में मौजूद, 'डेटासेट मिटाएं' पर क्लिक करें
जानकारी की पुष्टि करने के लिए, डेटासेट का नाम फिर से डालें. हमारे मामले में, यह advdata होगा
10. बधाई हो
बधाई हो, आपने 'निगरानी में रखे गए मशीन लर्निंग' का इस्तेमाल करके अपना पहला मॉडल बना लिया है. उसका मूल्यांकन और उसका अनुमान लगाने के बाद!
अब आपको लॉजिस्टिक रिग्रेशन मॉडल बनाने के ज़रूरी चरणों के बारे में पता है.
आगे क्या होगा?
अनुमान लगाने में शामिल इन अन्य तरीकों के बारे में जानें
- BigQuery ML का इस्तेमाल शुरू करना
- BigQuery ML की मदद से टाइमसीरीज़ का अनुमान
- AutoML का इस्तेमाल करके धोखाधड़ी का पता लगाने वाला मॉडल
- Tensorflow का इस्तेमाल करके धोखाधड़ी का पता लगाना