BigQuery ML দিয়ে শুরু করা

1. ওভারভিউ

BigQuery ML (BQML) ব্যবহারকারীদের SQL কোয়েরি ব্যবহার করে BigQuery-এ মেশিন লার্নিং মডেল তৈরি করতে এবং কার্যকর করতে সক্ষম করে। লক্ষ্য হল SQL অনুশীলনকারীদের তাদের বিদ্যমান সরঞ্জামগুলি ব্যবহার করে মডেল তৈরি করতে এবং ডেটা চলাচলের প্রয়োজনীয়তা দূর করে বিকাশের গতি বাড়ানোর মাধ্যমে মেশিন লার্নিংকে গণতান্ত্রিক করা।

আপনি কি নির্মাণ করবেন

আপনি একটি মডেল তৈরি করতে নমুনা বিশ্লেষণ 360 ডেটাসেট ব্যবহার করবেন যা ভবিষ্যদ্বাণী করে যে একজন দর্শক একটি লেনদেন করবে কিনা।

আপনি কি শিখবেন

BigQuery-এ কীভাবে মেশিন লার্নিং মডেল তৈরি, মূল্যায়ন এবং ব্যবহার করবেন

আপনি কি প্রয়োজন হবে

2. সেটআপ এবং প্রয়োজনীয়তা

স্ব-গতিসম্পন্ন পরিবেশ সেটআপ

  1. ক্লাউড কনসোলে সাইন ইন করুন এবং একটি নতুন প্রকল্প তৈরি করুন বা বিদ্যমান একটি পুনরায় ব্যবহার করুন৷ আপনার যদি ইতিমধ্যেই একটি Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তাহলে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

96a9c957bc475304.png

b9a10ebdf5b5a448.png

a1e3c01a38fa61c2.png

প্রজেক্ট আইডিটি মনে রাখবেন, সমস্ত Google ক্লাউড প্রকল্প জুড়ে একটি অনন্য নাম (উপরের নামটি ইতিমধ্যে নেওয়া হয়েছে এবং আপনার জন্য কাজ করবে না, দুঃখিত!)। এটি পরে এই কোডল্যাবে PROJECT_ID হিসাবে উল্লেখ করা হবে।

  1. এর পরে, Google ক্লাউড সংস্থানগুলি ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং সক্ষম করতে হবে৷

এই কোডল্যাবের মাধ্যমে চালানোর জন্য খুব বেশি খরচ করা উচিত নয়, যদি কিছু থাকে। "ক্লিনিং আপ" বিভাগে যে কোনও নির্দেশাবলী অনুসরণ করতে ভুলবেন না যা আপনাকে কীভাবে সংস্থানগুলি বন্ধ করতে হবে তা পরামর্শ দেয় যাতে আপনি এই টিউটোরিয়ালের বাইরে বিলিং করতে না পারেন৷ Google ক্লাউডের নতুন ব্যবহারকারীরা $300 USD বিনামূল্যের ট্রায়াল প্রোগ্রামের জন্য যোগ্য৷

BigQuery কনসোল খুলুন

Google ডেভেলপার কনসোলে, স্ক্রিনের উপরের বাম দিকে মেনু আইকনে ক্লিক করুন।

select-bq_0.png

নিচের দিকে মেনুতে স্ক্রোল করুন এবং BigQuery-এ ক্লিক করুন:

নির্বাচন-bq.png

এটি একটি নতুন ব্রাউজার ট্যাবে BigQuery কনসোল খুলবে, যা দেখতে এইরকম:

8b0218390329e8cf.png

কিন্তু, এখানে কিছুই নেই! ভাগ্যক্রমে, আপনার অন্বেষণ করার জন্য BigQuery-এ প্রচুর পাবলিক ডেটাসেট উপলব্ধ রয়েছে।

3. একটি ডেটাসেট তৈরি করুন

একটি ডেটাসেট তৈরি করতে, আপনার প্রকল্পের নামের পাশের তীরটিতে ক্লিক করুন এবং নতুন ডেটাসেট তৈরি করুন নির্বাচন করুন।

4f51bf57291a59db.png

এরপরে, আপনার ডেটাসেটের নাম bqml_codelab দিন এবং ঠিক আছে ক্লিক করুন।

63e32478a5652fbc.png

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-এ ক্লিক করে মডেল সম্পর্কে তথ্য পেতে পারেন। বিশদ বিবরণের অধীনে, আপনাকে মডেল তৈরি করতে ব্যবহৃত কিছু মৌলিক মডেল তথ্য এবং প্রশিক্ষণের বিকল্পগুলি খুঁজে পাওয়া উচিত। প্রশিক্ষণ পরিসংখ্যানের অধীনে, আপনার এটির মতো একটি টেবিল দেখতে হবে:

b8bd9548a0d89165.png

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 কল করছি। আপনি এই অনুরূপ একটি টেবিল দেখতে হবে:

1c7779f6028730cc.png

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 ব্যবহার করা হয়েছে। আপনি এই অনুরূপ একটি টেবিল দেখতে হবে:

e639f7a409741dcb.png

ব্যবহারকারী প্রতি ক্রয় পূর্বাভাস

এখানে আরেকটি উদাহরণ। এই সময় আমরা প্রতিটি দর্শক কত লেনদেন করে তা ভবিষ্যদ্বাণী করার চেষ্টা করি, ফলাফলগুলি সাজান এবং লেনদেনের মাধ্যমে সেরা 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;

আপনি এই অনুরূপ একটি টেবিল দেখতে হবে:

2be1d8fa96e10178.png

7. অভিনন্দন!

আপনি এই কোডল্যাব দিয়ে সম্পন্ন করেছেন। একটি চ্যালেঞ্জ খুঁজছেন? BQML এর সাথে একটি লিনিয়ার রিগ্রেশন মডেল তৈরি করার চেষ্টা করুন।

আমরা কভার করেছি কি

  • একটি বাইনারি লজিস্টিক রিগ্রেশন মডেল তৈরি করুন
  • মডেল মূল্যায়ন
  • ভবিষ্যদ্বাণী করতে মডেল ব্যবহার করুন

পরবর্তী পদক্ষেপ