إعداد بيانات الحقيقة الأساسية
لاستخدام تضمينات "ديناميكيات السكان"، يجب تجميع بيانات الحقيقة الأساسية في حدود جغرافية متوافقة. بما أنّ أنواع الحدود الإدارية تختلف على مستوى العالم، يمكنك محاذاة بياناتك باستخدام أنظمة شبكة رياضية عالمية (مثل خلايا S2) أو مناطق إدارية محلية (مثل المقاطعات أو الأحياء، حسب مجموعة البيانات الخاصة بالبلد).
الخيار 1: دمج التضمينات في نموذج حالي
- إعداد الحقيقة الأساسية المستندة إلى النموذج الحالي: استخدِم التضمينات كمتغيّرات مكانية وجغرافية مصاحبة لتحسين نموذج حالي.
- تدريب نموذج لتصحيح الأخطاء: حسِّن نموذجًا حاليًا من خلال دمج التضمينات في نموذج يأخذ مخرجات النموذج الأصلي والقيمة المتوقّعة أو الحقيقة الأساسية والتضمينات لتعلُّم نموذج جديد لتصحيح الأخطاء.
الخيار 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)