1. खास जानकारी
BigQuery ML (BQML) की मदद से उपयोगकर्ता, एसक्यूएल क्वेरी का इस्तेमाल करके, BigQuery में मशीन लर्निंग मॉडल बना सकते हैं और उन्हें एक्ज़ीक्यूट कर सकते हैं. इसका मकसद मशीन लर्निंग को आसान बनाना है, ताकि एसक्यूएल में काम करने वाले लोगों को उनके मौजूदा टूल का इस्तेमाल करके मॉडल बनाने में मदद मिल सके. साथ ही, डेटा के इस्तेमाल की ज़रूरत को खत्म करके डेवलपमेंट की रफ़्तार बढ़ाई जा सके.
आपको क्या बनाना होगा
Analytics 360 के डेटासेट का नमूना इस्तेमाल करके, ऐसा मॉडल बनाया जा सकता है जो यह अनुमान लगाता है कि वेबसाइट पर आने वाला व्यक्ति लेन-देन करेगा या नहीं.
आप इन चीज़ों के बारे में जानेंगे
BigQuery में मशीन लर्निंग मॉडल बनाने, उनका आकलन करने, और उनका इस्तेमाल करने का तरीका
आपको इनकी ज़रूरत होगी
2. सेटअप और ज़रूरी शर्तें
अपने हिसाब से एनवायरमेंट सेटअप करना
- Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से Gmail या Google Workspace खाता नहीं है, तो आपको नया खाता बनाना होगा.
प्रोजेक्ट आईडी याद रखें. यह Google Cloud के सभी प्रोजेक्ट के लिए एक खास नाम होता है (ऊपर दिया गया नाम पहले ही ले लिया गया है और यह आपके लिए काम नहीं करेगा!). बाद में, इस कोडलैब को इस कोडलैब में PROJECT_ID
के तौर पर दिखाया जाएगा.
- इसके बाद, आपको Google Cloud के संसाधनों का इस्तेमाल करने के लिए, Cloud Console में बिलिंग की सुविधा चालू करनी होगी.
इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. "साफ़ करना" सेक्शन में दिए गए निर्देशों का पालन करना न भूलें सेक्शन में, संसाधनों को बंद करने का तरीका बताया गया है. इससे इस ट्यूटोरियल के अलावा बिलिंग की सुविधा नहीं मिलेगी. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले प्रोग्राम में हिस्सा ले सकते हैं.
BigQuery कंसोल खोलें
Google Developer Console में, स्क्रीन के शीर्ष बाईं ओर मेन्यू आइकन पर क्लिक करें.
मेन्यू को नीचे तक स्क्रोल करें और BigQuery: पर क्लिक करें
इससे BigQuery कंसोल, एक नए ब्राउज़र टैब में खुल जाएगा. यह कुछ ऐसा दिखेगा:
लेकिन, यहां कुछ नहीं है! अच्छी बात यह है कि BigQuery में आपके लिए कई सार्वजनिक डेटासेट उपलब्ध हैं, जिन्हें आप एक्सप्लोर कर सकते हैं.
3. डेटासेट बनाना
डेटासेट बनाने के लिए, अपने प्रोजेक्ट के नाम के बगल में मौजूद ऐरो पर क्लिक करें और नया डेटासेट बनाएं चुनें.
इसके बाद, अपने डेटासेट को bqml_codelab नाम दें और 'ठीक है' पर क्लिक करें.
4. मॉडल बनाएं
Analytics 360 के लिए लॉजिस्टिक रिग्रेशन
चलिए, अब हमारे टास्क पर चलते हैं. यहां बताया गया है कि आप मॉडल कैसे बनाएंगे, ताकि यह अनुमान लगाया जा सके कि कोई विज़िटर लेन-देन करेगा या नहीं.
#standardSQL CREATE OR REPLACE MODEL `bqml_codelab.sample_model` OPTIONS(model_type='logistic_reg') AS SELECT IF(totals.transactions IS NULL, 0, 1) AS label, IFNULL(device.operatingSystem, "") AS os, device.isMobile AS is_mobile, IFNULL(geoNetwork.country, "") AS country, IFNULL(totals.pageviews, 0) AS pageviews FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN '20160801' AND '20170631' LIMIT 100000;
यहां, हम विज़िटर के डिवाइस के ऑपरेटिंग सिस्टम का उपयोग करते हैं, चाहे वह डिवाइस एक मोबाइल डिवाइस हो, विज़िटर का देश और पृष्ठ दृश्यों की संख्या का उपयोग इस आधार पर होता है कि कोई लेन-देन हुआ है या नहीं.
इस मामले में, "कोडलैब" डेटासेट और "sample_model" का नाम है हमारे मॉडल का नाम है. बताया गया मॉडल टाइप बाइनरी लॉजिस्टिक रिग्रेशन है. इस मामले में, हम label
को पूरा करने की कोशिश कर रहे हैं. ध्यान दें कि अगर आपकी दिलचस्पी सिर्फ़ एक कॉलम में है, तो यह input_label_cols
सेट करने का एक अन्य तरीका है. साथ ही, हम अपना ट्रेनिंग डेटा, 1 अगस्त, 2016 से 31 जून, 2017 तक इकट्ठा किए गए डेटा तक सीमित कर रहे हैं. हम ऐसा "अनुमान" के लिए पिछले महीने का डेटा सेव करने के लिए कर रहे हैं. इसके अलावा, हम अपना कुछ समय बचाने के लिए 1,00,000 डेटा पॉइंट तक सीमित कर रहे हैं. अगर आपको कोई जल्दी नहीं है, तो बेझिझक आखिरी लाइन हटा दें.
CREATE MODEL चलाने से एक क्वेरी जॉब बन जाता है, जो एसिंक्रोनस रूप से चलेगा, ताकि आप BigQuery यूज़र इंटरफ़ेस (यूआई) विंडो को बंद या रीफ़्रेश कर सकें.
[वैकल्पिक] मॉडल की जानकारी और ट्रेनिंग के आंकड़े
अगर इसमें आपकी दिलचस्पी है, तो आपको यूज़र इंटरफ़ेस (यूआई) में bqml_codelab डेटासेट के तहत, sample_model पर क्लिक करके मॉडल के बारे में जानकारी मिल सकती है. ब्यौरा सेक्शन में, आपको मॉडल बनाने के लिए इस्तेमाल किए गए मॉडल की बुनियादी जानकारी और ट्रेनिंग के विकल्प मिलेंगे. ट्रेनिंग के आंकड़े में, आपको इससे मिलती-जुलती टेबल दिखेगी:
5. मॉडल का मूल्यांकन करें
हमारे मॉडल का आकलन करना
#standardSQL SELECT * FROM ml.EVALUATE(MODEL `bqml_codelab.sample_model`, ( SELECT IF(totals.transactions IS NULL, 0, 1) AS label, IFNULL(device.operatingSystem, "") AS os, device.isMobile AS is_mobile, IFNULL(geoNetwork.country, "") AS country, IFNULL(totals.pageviews, 0) AS pageviews FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170801'));
अगर लीनियर रिग्रेशन मॉडल के साथ इस्तेमाल किया जाता है, तो ऊपर दी गई क्वेरी से ये कॉलम दिखते हैं: mean_absolute_error
, mean_squared_error
, mean_squared_log_error
, median_absolute_error
, r2_score
, explained_variance
. अगर लॉजिस्टिक रिग्रेशन मॉडल के साथ इस्तेमाल किया जाता है, तो ऊपर दी गई क्वेरी से ये कॉलम दिखते हैं: precision
, recall
, accuracy
, f1_score
, log_loss
, roc_auc
. कृपया मशीन लर्निंग ग्लॉसरी देखें या Google पर खोज करें. इससे आपको पता चलेगा कि इनमें से हर मेट्रिक को कैसे कैलकुलेट किया जाता है और उनका क्या मतलब होता है.
सीधे तौर पर, आपको यह महसूस होगा कि क्वेरी के SELECT
और FROM
हिस्से वही हैं जो ट्रेनिंग के दौरान इस्तेमाल किए गए थे. WHERE
हिस्सा, समयसीमा में हुए बदलाव को दिखाता है और FROM
वाला हिस्सा दिखाता है कि हम ml.EVALUATE
को कॉल कर रहे हैं. आपको इससे मिलती-जुलती टेबल दिखेगी:
6. मॉडल का उपयोग करें
हर देश के लिए खरीदारी का अनुमान लगाना
यहां हम प्रत्येक देश के विज़िटर द्वारा किए गए लेन-देन की संख्या का अनुमान लगाने का प्रयास करते हैं, परिणामों को क्रमबद्ध करते हैं और खरीदारी के आधार पर शीर्ष 10 देशों को चुनते हैं.
#standardSQL SELECT country, SUM(predicted_label) as total_predicted_purchases FROM ml.PREDICT(MODEL `bqml_codelab.sample_model`, ( SELECT IFNULL(device.operatingSystem, "") AS os, device.isMobile AS is_mobile, IFNULL(totals.pageviews, 0) AS pageviews, IFNULL(geoNetwork.country, "") AS country FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170801')) GROUP BY country ORDER BY total_predicted_purchases DESC LIMIT 10;
ध्यान दें कि यह क्वेरी, पिछले सेक्शन में दिखाई गई आकलन क्वेरी से काफ़ी मिलती-जुलती है. हम यहां ml.EVALUATE
के बजाय, ml.PREDICT
का इस्तेमाल करते हैं. साथ ही, हम क्वेरी के BQML वाले हिस्से को स्टैंडर्ड एसक्यूएल कमांड की मदद से रैप करते हैं. सीधे तौर पर, हमारी दिलचस्पी उस देश और हर देश से की गई खरीदारी के योग में है, इसलिए हम SELECT
, GROUP BY
, और ORDER BY
. यहां LIMIT
का इस्तेमाल करके, यह पक्का किया जाता है कि हमें सिर्फ़ टॉप 10 नतीजे मिलें. आपको इससे मिलती-जुलती टेबल दिखेगी:
हर उपयोगकर्ता के हिसाब से खरीदारी का अनुमान लगाना
यहां एक और उदाहरण दिया गया है. इस बार हम प्रत्येक विज़िटर द्वारा किए जाने वाले लेन-देन की संख्या का पूर्वानुमान लगाने का प्रयास करते हैं, परिणामों को क्रमित करते हैं और लेन-देन के आधार पर शीर्ष 10 विज़िटर चुनते हैं.
#standardSQL SELECT fullVisitorId, SUM(predicted_label) as total_predicted_purchases FROM ml.PREDICT(MODEL `bqml_codelab.sample_model`, ( SELECT IFNULL(device.operatingSystem, "") AS os, device.isMobile AS is_mobile, IFNULL(totals.pageviews, 0) AS pageviews, IFNULL(geoNetwork.country, "") AS country, fullVisitorId FROM `bigquery-public-data.google_analytics_sample.ga_sessions_*` WHERE _TABLE_SUFFIX BETWEEN '20170701' AND '20170801')) GROUP BY fullVisitorId ORDER BY total_predicted_purchases DESC LIMIT 10;
आपको इससे मिलती-जुलती टेबल दिखेगी:
7. बधाई हो!
आपने यह कोडलैब पूरा कर लिया है. क्या आपको किसी चैलेंज की तलाश है? BQML की मदद से लीनियर रिग्रेशन मॉडल बनाएं.
इसमें हमने इन विषयों के बारे में बताया
- बाइनरी लॉजिस्टिक रिग्रेशन मॉडल बनाना
- मॉडल का मूल्यांकन करना
- मॉडल का इस्तेमाल करके अनुमान लगाना
अगले चरण
- BQML के बारे में ज़्यादा जानकारी के लिए, कृपया दस्तावेज़ देखें.