1. ওভারভিউ
BigQuery ML (BQML) ব্যবহারকারীদের SQL কোয়েরি ব্যবহার করে BigQuery-এ মেশিন লার্নিং মডেল তৈরি করতে এবং কার্যকর করতে সক্ষম করে। লক্ষ্য হল SQL অনুশীলনকারীদের তাদের বিদ্যমান সরঞ্জামগুলি ব্যবহার করে মডেল তৈরি করতে এবং ডেটা চলাচলের প্রয়োজনীয়তা দূর করে বিকাশের গতি বাড়ানোর মাধ্যমে মেশিন লার্নিংকে গণতান্ত্রিক করা।
আপনি কি নির্মাণ করবেন
আপনি একটি মডেল তৈরি করতে নমুনা বিশ্লেষণ 360 ডেটাসেট ব্যবহার করবেন যা ভবিষ্যদ্বাণী করে যে একজন দর্শক একটি লেনদেন করবে কিনা।
আপনি কি শিখবেন
BigQuery-এ কীভাবে মেশিন লার্নিং মডেল তৈরি, মূল্যায়ন এবং ব্যবহার করবেন
আপনি কি প্রয়োজন হবে
- একটি ব্রাউজার, যেমন ক্রোম বা ফায়ারফক্স
- SQL বা BigQuery এর প্রাথমিক জ্ঞান
- BQML ডকুমেন্টেশন
2. সেটআপ এবং প্রয়োজনীয়তা
স্ব-গতিসম্পন্ন পরিবেশ সেটআপ
- ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।
প্রজেক্ট আইডিটি মনে রাখবেন, সমস্ত Google ক্লাউড প্রকল্প জুড়ে একটি অনন্য নাম (উপরের নামটি ইতিমধ্যে নেওয়া হয়েছে এবং আপনার জন্য কাজ করবে না, দুঃখিত!)। এটি পরে এই কোডল্যাবে PROJECT_ID
হিসাবে উল্লেখ করা হবে।
- এর পরে, Google ক্লাউড সংস্থানগুলি ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে৷
এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ করা উচিত নয়, যদি কিছু থাকে। "ক্লিনিং আপ" বিভাগে যে কোনও নির্দেশাবলী অনুসরণ করতে ভুলবেন না যা আপনাকে কীভাবে সংস্থানগুলি বন্ধ করতে হবে তা পরামর্শ দেয় যাতে আপনি এই টিউটোরিয়ালের বাইরে বিলিং করতে না পারেন৷ Google ক্লাউডের নতুন ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷
BigQuery কনসোল খুলুন
Google ডেভেলপার কনসোলে, স্ক্রিনের উপরের বাম দিকে মেনু আইকনে ক্লিক করুন।
নিচের দিকে মেনুতে স্ক্রোল করুন এবং 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;
এখানে, আমরা ভিজিটরের ডিভাইসের অপারেটিং সিস্টেম ব্যবহার করি, ডিভাইসটি একটি মোবাইল ডিভাইস কিনা, ভিজিটরের দেশ এবং পৃষ্ঠা দেখার সংখ্যা একটি লেনদেন করা হয়েছে কিনা তার মানদণ্ড হিসাবে।
এই ক্ষেত্রে, "কোডল্যাব" হল ডেটাসেটের নাম এবং "নমুনা_মডেল" হল আমাদের মডেলের নাম। নির্দিষ্ট মডেলের ধরন হল বাইনারি লজিস্টিক রিগ্রেশন। এই ক্ষেত্রে, label
হল যা আমরা ফিট করার চেষ্টা করছি। মনে রাখবেন যে আপনি যদি শুধুমাত্র 1টি কলামে আগ্রহী হন তবে এটি input_label_cols
সেট করার একটি বিকল্প উপায়। এছাড়াও আমরা আমাদের প্রশিক্ষণের ডেটা 1 আগস্ট 2016 থেকে 31 জুন 2017 পর্যন্ত সংগৃহীতদের মধ্যে সীমাবদ্ধ রাখছি৷ আমরা "ভবিষ্যদ্বাণী" এর জন্য শেষ মাসের ডেটা সংরক্ষণ করতে এটি করছি৷ উপরন্তু, আমাদের কিছু সময় বাঁচাতে আমরা 100,000 ডেটা পয়েন্টে সীমাবদ্ধ করছি। আপনি যদি তাড়াহুড়ো না করেন তবে শেষ লাইনটি নির্দ্বিধায় সরিয়ে ফেলুন।
CREATE MODEL কমান্ড চালানোর ফলে একটি Query Job তৈরি হয় যা অ্যাসিঙ্ক্রোনাসভাবে চলবে যাতে আপনি, উদাহরণস্বরূপ, BigQuery UI উইন্ডো বন্ধ বা রিফ্রেশ করতে পারেন।
[ঐচ্ছিক] মডেল তথ্য এবং প্রশিক্ষণ পরিসংখ্যান
আগ্রহী হলে, আপনি UI-তে 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
। aa লজিস্টিক রিগ্রেশন মডেলের সাথে ব্যবহার করা হলে, উপরের ক্যোয়ারীটি নিম্নলিখিত কলামগুলি প্রদান করে: 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 অংশটিকে স্ট্যান্ডার্ড SQL কমান্ড দিয়ে মোড়ানো করি। সুনির্দিষ্টভাবে, আমরা দেশ এবং প্রতিটি দেশের জন্য কেনাকাটার সমষ্টিতে আগ্রহী, তাই আমরা এটিই SELECT
, GROUP BY
এবং ORDER BY
৷ আমরা শুধুমাত্র সেরা 10টি ফলাফল পেতে পারি তা নিশ্চিত করতে এখানে LIMIT
ব্যবহার করা হয়েছে। আপনি এই অনুরূপ একটি টেবিল দেখতে হবে:
ব্যবহারকারী প্রতি ক্রয় পূর্বাভাস
এখানে আরেকটি উদাহরণ। এই সময় আমরা প্রতিটি দর্শক কত লেনদেন করে তা ভবিষ্যদ্বাণী করার চেষ্টা করি, ফলাফলগুলি সাজান এবং লেনদেনের মাধ্যমে সেরা 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 সম্পর্কে আরও তথ্যের জন্য, অনুগ্রহ করে ডকুমেন্টেশন পড়ুন।