0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Khám Phá BigQuery ML: Hướng Dẫn Tạo Mô Hình Machine Learning Trên Google Cloud

Đăng vào 3 tuần trước

• 4 phút đọc

Giới thiệu về BigQuery ML

Trong thời đại công nghệ hiện nay, việc xây dựng và triển khai các mô hình Machine Learning một cách hiệu quả là rất quan trọng. Việc sử dụng dịch vụ Cloud, đặc biệt là BigQuery ML trên Google Cloud, sẽ giúp bạn tiết kiệm rất nhiều thời gian và công sức, đồng thời tận dụng những công cụ mạnh mẽ cho việc lưu trữ và xử lý dữ liệu.

BigQuery ML cho phép bạn triển khai các mô hình Machine Learning thông qua cú pháp SQL quen thuộc, giúp cho việc phân tích, chạy mô hình, và đưa ra báo cáo trở nên nhanh chóng và chính xác hơn. Trong bài viết này, chúng ta sẽ cùng thực hành với BigQuery ML theo khóa học của Google Cloud. Bạn có thể tham gia thực hành tại đây.

Làm quen với BigQuery ML

Để bắt đầu, bạn cần truy cập console của Google Cloud và chọn BigQuery. Tiếp theo, hãy tạo một dataset mới bằng cách chọn "Create dataset" và nhập tên cho dataset, chẳng hạn như bqml_lab. Sau khi tạo dataset thành công, hãy thử tạo một query đơn giản để tiến hành dự đoán.

sql Copy
#standardSQL
CREATE OR REPLACE MODEL `bqml_lab.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;

Đoạn code trên tạo một mô hình hồi quy logistic để dự đoán khả năng thực hiện giao dịch của người dùng. Sau khi chạy code, chúng ta có thể đánh giá chất lượng của mô hình bằng câu truy vấn sau:

sql Copy
#standardSQL
SELECT
  *
FROM
  ml.EVALUATE(MODEL `bqml_lab.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'));

Kết quả thu được sẽ cho bạn biết độ chính xác của mô hình. Để tìm hiểu thêm về khả năng dự đoán, bạn có thể sử dụng query dưới đây để xác định 10 quốc gia có khả năng giao dịch cao nhất:

sql Copy
#standardSQL
SELECT
  country,
  SUM(predicted_label) as total_predicted_purchases
FROM
  ml.PREDICT(MODEL `bqml_lab.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;

Thực Hành: Dự Đoán Khách Hàng Mua Sắm

Câu hỏi 1: Tính tỷ lệ chuyển đổi của khách hàng

sql Copy
#standardSQL
WITH visitors AS(
SELECT
COUNT(DISTINCT fullVisitorId) AS total_visitors
FROM `data-to-insights.ecommerce.web_analytics`
),

purchasers AS(
SELECT
COUNT(DISTINCT fullVisitorId) AS total_purchasers
FROM `data-to-insights.ecommerce.web_analytics`
WHERE totals.transactions IS NOT NULL
)

SELECT
  total_visitors,
  total_purchasers,
  total_purchasers / total_visitors AS conversion_rate
FROM visitors, purchasers;

Trong đó, chúng ta nhận thấy tỷ lệ chuyển đổi của khách hàng là 2.69%. Tiếp theo, chúng ta sẽ tìm ra 5 sản phẩm bán chạy nhất:

sql Copy
SELECT
  p.v2ProductName,
  p.v2ProductCategory,
  SUM(p.productQuantity) AS units_sold,
  ROUND(SUM(p.localProductRevenue / 1000000), 2) AS revenue
FROM `data-to-insights.ecommerce.web_analytics`,
UNNEST(hits) AS h,
UNNEST(h.product) AS p
GROUP BY 1, 2
ORDER BY revenue DESC
LIMIT 5;

Câu hỏi 2: Dự đoán khả năng mua của người dùng

Với một mô hình dự đoán, ta sẽ cần đánh giá các feature như totals.bouncestotals.timeOnSite. Chúng ta sẽ tạo mô hình phân loại sau:

sql Copy
CREATE OR REPLACE MODEL `ecommerce.classification_model`
OPTIONS(model_type='logistic_reg', input_label_cols = ['will_buy_on_return_visit']) AS

SELECT
  * EXCEPT(fullVisitorId)
FROM

  (SELECT
    fullVisitorId,
    IFNULL(totals.bounces, 0) AS bounces,
    IFNULL(totals.timeOnSite, 0) AS time_on_site
  FROM
    `data-to-insights.ecommerce.web_analytics`
  WHERE
    totals.newVisits = 1)
    JOIN
  (SELECT
    fullvisitorid,
    IF(COUNTIF(totals.transactions > 0 AND totals.newVisits IS NULL) > 0, 1, 0) AS will_buy_on_return_visit
  FROM
    `data-to-insights.ecommerce.web_analytics`
  GROUP BY fullvisitorid)
  USING (fullVisitorId); 

Sau khi bắt đầu mô hình, chúng ta có thể đánh giá hiệu suất bằng cách sử dụng câu truy vấn đánh giá mô hình. Thông qua các query SQL chi tiết về việc dự đoán và phân tích dữ liệu, bài viết này đã giới thiệu đến bạn cách tiếp cận một cách hệ thống và logic trong việc phát triển một mô hình Machine Learning.

Kết luận

Bài viết này đã cung cấp cho bạn cái nhìn tổng quan về cách sử dụng BigQuery ML trên Google Cloud để phát triển và triển khai mô hình Machine Learning. Nền tảng này không chỉ cho phép bạn chạy các mô hình phức tạp mà còn giúp bạn tiếp cận với đám mây một cách dễ dàng và tiện lợi hơn. Trong tương lai, chúng ta sẽ còn khám phá những use case phức tạp hơn với BigQuery.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào