استخدام عمليات التضمين في "إحصاءات حول ديناميات السكان"

إعداد بيانات الحقيقة الأساسية

لاستخدام تضمينات "ديناميكية السكان"، يجب تجميع بياناتك الأساسية في حدود جغرافية متوافقة. بما أنّ أنواع الحدود الإدارية تختلف على مستوى العالم، يمكنك مطابقة بياناتك باستخدام أنظمة شبكات رياضية عالمية (مثل خلايا S2) أو مناطق إدارية محلية (مثل المقاطعات أو المناطق، حسب مجموعة بيانات البلد المحدّد).

الخيار 1: دمج Embeddings في نموذج حالي

  • إعداد بيانات الحقيقة الواقعية الحالية المستندة إلى النماذج: استخدِم عمليات التضمين كمتغيرات مكانية مشتركة لتحسين نموذج حالي.
  • تدريب نموذج لتصحيح الأخطاء: يمكنك تحسين نموذج حالي من خلال دمج التضمينات في نموذج يأخذ مخرجات النموذج الأصلي والقيمة المتوقّعة أو الحقيقة الأساسية والتضمينات لتعلُّم نموذج جديد لتصحيح الأخطاء.

الخيار 2: تحسين الأداء لحالات استخدام محدّدة

  • اختَر نموذج توقّع: يمكن استخدام أي نموذج، مثل GBDT أو MLP أو نموذج خطي، لوضع التوقّعات.
  • استخدام التضمينات لإجراء التوقّعات: استخدِم تضمينات "ديناميكيات السكان" كميزات إدخال، إلى جانب بيانات سياقية أخرى، لتحسين دقة التوقّعات.

أمثلة على طلبات البحث

استبدِل your-project.your_dataset.embeddings_table باسم مشروعك ومجموعة البيانات واسم الجدول المستهدَف الفعلي.

SQL: استرداد التضمينات

يستردّ هذا الاستعلام المتّجه التضميني والبيانات الوصفية الإدارية لخلايا S2 في مجموعة البيانات المتوفّرة لديك.

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: البحث عن مواقع جغرافية مشابهة

يحدّد طلب البحث هذا المواقع الجغرافية المتشابهة سلوكيًا بدون الحاجة إلى بيانات خارجية.

تستخدم هذه الدالة ML.DISTANCE لحساب التشابه في جيب التمام، وتعرض أفضل المطابقات لخلية S2 مستهدَفة. يدعم هذا الأسلوب سيناريوهات تخطيط التوسّع، مثل تحديد مكان فتح متجر جديد استنادًا إلى الملف الشخصي لموقع جغرافي حالي ناجح.

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: ربط بيانات العملاء

يوضّح هذا المثال كيفية إثراء بياناتك الداخلية (على سبيل المثال، جدول أداء المتجر) باستخدام التضمينات السلوكية. تأكَّد من أنّ بياناتك الداخلية تتضمّن رموزًا مميّزة متطابقة لخلايا S2 (سلاسل سداسية عشرية).

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

بايثون: تحميل البيانات للتعلّم الآلي

يتم تخزين التضمينات كمصفوفات BigQuery. لاستخدامها في مكتبات تعلُّم الآلة، يجب تحويل العمود إلى مصفوفة 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)