Sử dụng các thành phần nhúng Thông tin chi tiết về biến động dân số

Chuẩn bị dữ liệu thực tế

Để sử dụng tính năng nhúng Động lực học dân số, dữ liệu thực tế của bạn phải được tổng hợp theo ranh giới địa lý được hỗ trợ. Vì các loại ranh giới hành chính khác nhau trên toàn cầu, nên bạn có thể căn chỉnh dữ liệu của mình bằng cách sử dụng hệ thống lưới toán học phổ quát (như ô S2) hoặc các khu vực hành chính địa phương (chẳng hạn như quận hoặc huyện, tuỳ thuộc vào bộ dữ liệu cụ thể của quốc gia).

Cách 1: Kết hợp tính năng nhúng vào mô hình hiện có

  • Chuẩn bị dữ liệu thực tế dựa trên mô hình hiện có: Sử dụng tính năng nhúng làm các biến đồng biến không gian địa lý để cải thiện mô hình hiện có.
  • Huấn luyện mô hình sửa lỗi: Cải thiện mô hình hiện có bằng cách tích hợp tính năng nhúng vào mô hình lấy đầu ra của mô hình ban đầu, giá trị dự kiến hoặc dữ liệu thực tế và tính năng nhúng để tìm hiểu mô hình sửa lỗi mới.

Cách 2: Điều chỉnh cho các trường hợp sử dụng cụ thể

  • Chọn mô hình dự đoán: Bạn có thể sử dụng bất kỳ mô hình nào, chẳng hạn như GBDT, MLP hoặc mô hình tuyến tính để dự đoán.
  • Sử dụng tính năng nhúng để dự đoán: Sử dụng tính năng nhúng Động lực học dân số làm các đặc điểm đầu vào, cùng với các dữ liệu theo bối cảnh khác, để cải thiện độ chính xác của dự đoán.

Ví dụ về truy vấn

Thay thế your-project.your_dataset.embeddings_table bằng tên dự án, tập dữ liệu và bảng đích thực tế của bạn.

SQL: Tìm nạp tính năng nhúng

Truy vấn này truy xuất vectơ nhúng và siêu dữ liệu hành chính cho các ô S2 trong tập dữ liệu được cung cấp.

SELECT
  geo_id,
  administrative_area_level_1_name AS state,
  administrative_area_level_2_name AS county,
  features -- The 330-dim vector
FROM
  `your-project.your_dataset.embeddings_table`
LIMIT 10;

SQL: Tìm địa điểm tương tự

Truy vấn này xác định các địa điểm tương tự về hành vi mà không cần dữ liệu bên ngoài.

Truy vấn này sử dụng hàm ML.DISTANCE để tính toán độ tương tự cosine, trả về các kết quả phù hợp nhất cho một ô S2 đích. Phương pháp này hỗ trợ các trường hợp lập kế hoạch mở rộng, chẳng hạn như xác định địa điểm mở cửa hàng mới dựa trên hồ sơ của một địa điểm hiện có thành công.

WITH TargetLocation AS (
  SELECT features AS target_vector
  FROM `your-project.your_dataset.embeddings_table`
  -- Replace with your target S2 hex token (e.g., '80ead45')
  WHERE geo_id = 'YOUR_TARGET_S2_TOKEN'
)

SELECT
  t.geo_id,
  t.administrative_area_level_1_name AS state,
  t.administrative_area_level_2_name AS county,
  -- Calculate Similarity (1.0 is identical, 0.0 is dissimilar)
  (1 - ML.DISTANCE(t.features, p.target_vector, 'COSINE')) AS similarity_score
FROM
  `your-project.your_dataset.embeddings_table` t,
  TargetLocation p
WHERE
  t.geo_id != `YOUR_TARGET_S2_TOKEN` -- Exclude the target itself
ORDER BY
  similarity_score DESC
LIMIT 20;

SQL: Kết hợp dữ liệu khách hàng

Ví dụ này minh hoạ cách làm phong phú dữ liệu nội bộ của riêng bạn (ví dụ: bảng hiệu suất của cửa hàng) bằng tính năng nhúng hành vi. Đảm bảo dữ liệu nội bộ của bạn bao gồm các mã thông báo ô S2 phù hợp (chuỗi thập lục phân).

SELECT
  store.store_id,
  store.s2_token,
  store.total_revenue,
  embeddings.features AS pdfm_vector
FROM
  `your-project.internal_data.store_performance` AS store
JOIN
  `your-project.your_dataset.embeddings_table` AS embeddings
ON
  -- Join based on the S2 hex token string
  store.s2_token = embeddings.geo_id

Python: Tải dữ liệu cho công nghệ học máy

Tính năng nhúng được lưu trữ dưới dạng Mảng BigQuery. Để sử dụng các tính năng này trong thư viện ML, bạn phải chuyển đổi cột thành ma trận NumPy.

from google.cloud import bigquery
import numpy as np
import pandas as pd

client = bigquery.Client()

query = """
    SELECT
        geo_id,
        features -- Returns as a list of floats
    FROM
        `your-project.your_dataset.embeddings_table`
    LIMIT 1000
"""

# 1. Load data into DataFrame
df = client.query(query).to_dataframe()

# 2. Convert the 'features' column (Series of Lists) into a Matrix (2D Array)
X_matrix = np.stack(df['features'].values)

print(f"Data Loaded. Matrix Shape: {X_matrix.shape}")
# Output: Data Loaded. Matrix Shape: (1000, 330)