1. परिचय
इस लैब में, आपको कंसोल का इस्तेमाल करके, टेबल वाले डेटा के साथ मॉडल को ट्रेन करने और उसे इस्तेमाल करने के लिए, BigQuery का इस्तेमाल करना होगा. यह सुविधा, एसक्यूएल पर आधारित मॉडल सर्विंग और ट्रेनिंग के लिए सबसे ज़्यादा इस्तेमाल की जाती है. BigQuery ML की मदद से, उपयोगकर्ता SQL क्वेरी का इस्तेमाल करके BigQuery में मशीन लर्निंग मॉडल बना सकते हैं और उन्हें लागू कर सकते हैं. इसका मकसद, मशीन लर्निंग को सभी के लिए उपलब्ध कराना है. इसके लिए, एसक्यूएल का इस्तेमाल करने वालों को मौजूदा टूल का इस्तेमाल करके मॉडल बनाने की सुविधा दी जाती है. साथ ही, डेटा को एक जगह से दूसरी जगह ले जाने की ज़रूरत को खत्म करके, डेवलपमेंट की स्पीड को बढ़ाया जाता है.
आपको क्या सीखने को मिलेगा
- BigQuery में उपलब्ध डेटा एक्सप्लोर करना
- कंसोल का इस्तेमाल करके, BigQuery में एसक्यूएल की मदद से मॉडल बनाना
- बनाए गए मॉडल के नतीजों का आकलन करना
- बनाए गए मॉडल की मदद से, यह अनुमान लगाना कि कोई लेन-देन धोखाधड़ी वाला है या नहीं
2. डेटा के बारे में जानकारी
इन डेटासेट में, यूरोप में रहने वाले कार्डधारकों के क्रेडिट कार्ड से सितंबर 2013 में किए गए लेन-देन की जानकारी शामिल है. इस डेटासेट में, दो दिनों में हुए लेन-देन दिखाए गए हैं. इनमें 2,84,807 लेन-देन में से 492 धोखाधड़ी वाले लेन-देन हैं. यह बहुत ज़्यादा असंतुलित है. इसमें पॉज़िटिव क्लास (धोखाधड़ी) के लेन-देन, कुल लेन-देन का 0.172% हैं.
इसमें सिर्फ़ संख्या वाले इनपुट वैरिएबल होते हैं. ये PCA ट्रांसफ़ॉर्मेशन का नतीजा होते हैं. माफ़ करें, गोपनीयता से जुड़ी समस्याओं की वजह से, हम ओरिजनल सुविधाएं और डेटा के बारे में ज़्यादा जानकारी नहीं दे सकते.
- V1, V2, ... V28 मुख्य कॉम्पोनेंट हैं, जिन्हें पीसीए की मदद से हासिल किया गया है. सिर्फ़ ‘Time' और ‘Amount' ऐसी सुविधाएं हैं जिन्हें पीसीए की मदद से बदला नहीं गया है.
- 'टाइम' फ़ीचर में, हर लेन-देन और डेटासेट में मौजूद पहले लेन-देन के बीच का समय (सेकंड में) शामिल होता है.
- 'रकम' सुविधा, लेन-देन की रकम होती है. इस सुविधा का इस्तेमाल, उदाहरण के हिसाब से लागत के बारे में संवेदनशील जानकारी पाने के लिए किया जा सकता है.
- 'क्लास' फ़ीचर, रिस्पॉन्स वैरिएबल है. धोखाधड़ी के मामले में इसकी वैल्यू 1 होती है. वहीं, अन्य मामलों में इसकी वैल्यू 0 होती है.
इस डेटासेट को Worldline और ULB ( Université Libre de Bruxelles) के मशीन लर्निंग ग्रुप (http://mlg.ulb.ac.be) ने मिलकर इकट्ठा किया है. साथ ही, इसका विश्लेषण भी किया है. यह रिसर्च, बिग डेटा माइनिंग और धोखाधड़ी का पता लगाने के बारे में है.
इस विषय से जुड़े मौजूदा और पिछले प्रोजेक्ट के बारे में ज़्यादा जानकारी, https://www.researchgate.net/project/Fraud-detection-5 और DefeatFraud प्रोजेक्ट के पेज पर उपलब्ध है
उद्धरण:
Andrea Dal Pozzolo, Olivier Caelen, Reid A. जॉनसन और जियानलुका बोंटेम्पी ने की थी. असमान क्लासिफ़िकेशन के लिए, अंडरसैंपलिंग की मदद से प्रॉबेबिलिटी को कैलिब्रेट करना. सिंपोज़ियम ऑन कंप्यूटेशनल इंटेलिजेंस ऐंड डेटा माइनिंग (सीआईडीएम), आईईईई, 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)
कार्सिलो, फ़ैब्रिज़ियो; डेल पॉज़ोलो, एंड्रिया; ले बॉर्गने, यान-एल; कैलन, ओलिवियर; मैज़र, यानिस; बोंटेम्पी, जियानलुका. Scarff: a scalable framework for streaming credit card fraud detection with Spark, Information fusion,41, 182-194,2018,Elsevier
कार्सिलो, फ़ैब्रिज़ियो; ले बॉर्गने, यान-एल; कैलन, ओलिवियर; बोंटेम्पी, जियानलुका. Streaming active learning strategies for real-life credit card fraud detection: assessment and visualization, 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
फ़ैब्रिज़ियो कार्सिलो, यान-एल ले बोर्गने, ओलिवियर कैलन, फ़्रेडरिक ओब्ले, जियानलुका बोंटेम्पी क्रेडिट कार्ड से होने वाली धोखाधड़ी का पता लगाने के लिए, बिना लेबल वाले और लेबल वाले डेटा का इस्तेमाल करना Information Sciences, 2019
3. अपना एनवायरमेंट सेट अप करने का तरीका
इस कोडलैब को चलाने के लिए, आपके पास बिलिंग की सुविधा वाला Google Cloud Platform प्रोजेक्ट होना चाहिए. प्रोजेक्ट बनाने के लिए, यहां दिए गए निर्देशों का पालन करें.
- bigquery API चालू करें
BigQuery पर जाएं. अगर यह पहले से चालू नहीं है, तो इसे चालू करें. आपको अपना मॉडल बनाने के लिए इसकी ज़रूरत होगी.
4. डेटा एक्सप्लोर करें
पहला चरण: BigQuery पर जाएं
https://cloud.google.com/console में BigQuery ढूंढें
दूसरा चरण: क्वेरी का इस्तेमाल करके डेटा एक्सप्लोर करना
सार्वजनिक डेटासेट में मौजूद डेटा की समीक्षा करने के लिए , एडिटर में जाकर नीचे दी गई एसक्यूएल क्वेरी टाइप करें .
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. लॉजिस्टिक रिग्रेशन मॉडल बनाना
पहला चरण: स्टेटमेंट बनाना
मॉडल बनाने के लिए, क्वेरी विंडो में नीचे दी गई क्वेरी टाइप करें. इस स्टेटमेंट में दिए गए मुख्य विकल्पों के बारे में जानें. इस बारे में इस लिंक में बताया गया है.
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`
दूसरा चरण: लागू करना
ऊपर दिए गए स्टेटमेंट को चलाएं. इस प्रोसेस को पूरा होने में कुछ मिनट लग सकते हैं
रन पूरा होने के बाद, मुख्य चीज़ों पर ध्यान दें

- एक्सप्लोरर पैनल में बनाया गया मॉडल दिखेगा
- क्वेरी के नतीजे वाले पैनल में, एमएल एसक्यूएल को प्रोसेस करने में लगा समय दिखेगा. यह समय, किसी भी एसक्यूएल स्टेटमेंट को प्रोसेस करने में लगे समय के बराबर होगा
- क्वेरी के नतीजों वाले पैनल में, 'मॉडल पर जाएं' लिंक भी दिखेगा, ताकि आप उसे एक्सप्लोर कर सकें
तीसरा चरण: एक्सप्लोर करना
'मॉडल पर जाएं' या एक्सप्लोरर पैनल पर क्लिक करके, बनाए गए मॉडल को एक्सप्लोर करें. इन टैब में , बनाए गए मॉडल, ट्रेनिंग, आकलन वगैरह के बारे में जानकारी मिलती है. नतीजों की समीक्षा करना

हम अगले सेक्शन में इस बारे में और जानेंगे
लॉजिस्टिक रिग्रेशन के बारे में ज़्यादा जानने के लिए, यहां क्लिक करें
7. मॉडल इवैलुएशन मेट्रिक के बारे में जानकारी
इस चरण में, हम देखेंगे कि हमारे मॉडल ने कैसा परफ़ॉर्म किया.
मॉडल ट्रेनिंग का काम पूरा होने के बाद, उस मॉडल पर क्लिक करें जिसे आपने अभी-अभी ट्रेन किया है. इसके बाद, 'आकलन करें' टैब देखें. यहां आकलन करने की कई मेट्रिक दी गई हैं. हम सिर्फ़ एक मेट्रिक पर फ़ोकस करेंगे :roc_auc
SELECT * FROM ML.EVALUATE(MODEL advdata.ulb_fraud_detection)
नतीजे कुछ इस तरह दिखेंगे. roc_auc आम तौर पर, असंतुलित डेटासेट पर ज़्यादा ज़रूरी होता है

नतीजों के बारे में ज़्यादा जानने के लिए. ML.Evaluate फ़ंक्शन के बारे में जानकारी देने वाले दस्तावेज़ यहां देखें
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 का इस्तेमाल करके धोखाधड़ी का पता लगाना