إعداد بيانات الحقيقة الأساسية
لاستخدام عمليات التضمين في "ديناميكية السكان"، يجب تجميع بيانات الحقيقة الأساسية ضمن حدود جغرافية متوافقة. بما أنّ أنواع الحدود الإدارية تختلف على مستوى العالم، يمكنك مطابقة بياناتك باستخدام أنظمة شبكات رياضية عالمية (مثل خلايا S2) أو مناطق إدارية محلية (مثل المقاطعات أو المناطق، حسب مجموعة البيانات الخاصة بالبلد).
الخيار 1: دمج التضمينات في نموذج حالي
- إعداد بيانات الحقيقة الأساسية المستندة إلى النموذج الحالي: استخدِم عمليات التضمين كمتغيرات مكانية مشتركة لتحسين نموذج حالي.
- تدريب نموذج لتصحيح الأخطاء: يمكنك تحسين نموذج حالي من خلال دمج عمليات التضمين في نموذج يأخذ نتائج النموذج الأصلي والقيمة المتوقّعة أو الحقيقة الأساسية وعمليات التضمين لتعلُّم نموذج جديد لتصحيح الأخطاء.
الخيار 2: التحسين لحالات استخدام معيّنة
- اختَر نموذج توقّع: يمكن استخدام أي نموذج، مثل GBDT أو MLP أو نموذج خطي، لوضع التوقّعات.
- استخدام التضمينات لإجراء التوقّعات: استخدِم تضمينات "ديناميكيات السكان" كميزات إدخال، إلى جانب البيانات السياقية الأخرى، لتحسين دقة التوقّعات.
تجميع الحدود المخصّصة
إذا كانت بياناتك الأساسية تستخدم مضلّعات مخصّصة، مثل الرموز البريدية أو منحنيات تساوي الزمن اللازم للقيادة أو المناطق التجارية، يمكنك إجراء تجميع الحدود. تجمع هذه العملية بين متجهات خلايا S2 متعددة في تمثيل واحد للمضلّع المستهدَف. يضمن اختيار منهجية الترجيح المناسبة أن يعكس التضمين المجمّع أهداف نمذجة البيانات النهائية بدقة.
1. المتوسط المرجّح حسب عدد السكان (الإعداد التلقائي المقترَح لمؤشر كثافة السكان)
استخدِم التجميع المرجّح حسب عدد السكان لحالات الاستخدام التي تركّز على الإنسان، مثل أداء متاجر البيع بالتجزئة أو وضع نماذج لسلوك المستهلكين.
يمكن أن يؤدي استخدام تجميع مكاني مرجّح حسب المساحة للبيانات الديمغرافية إلى تشويه ميزات تعلُّم الآلة. يحدث ذلك عندما تؤدي المناطق غير المأهولة، مثل المتنزّهات أو المناطق الصناعية أو المسطحات المائية، إلى تشويه ملف السكان الفعليين.
لحلّ هذه المشكلة، يمكنك إجراء عملية حسابية للمتوسط المرجّح حسب عدد السكان في BigQuery. يستخدم هذا المنهج مجموعات بيانات ديمغرافية عالية الدقة، مثل WorldPop في "كتالوج بيانات Earth Engine"، لحساب الكثافة الدقيقة لكل جزء من خلية S2 متقاطعة.
للاطّلاع على مثال كامل على عملية تنفيذ سير عمل مرجّح حسب عدد السكان، شغِّل دفتر الملاحظات التفاعلي.
2. المتوسط الموزون حسب المساحة
بالنسبة إلى حالات الاستخدام البيئية أو المادية، استخدِم التجميع المرجّح حسب المساحة بدلاً من ذلك. هذه البيانات مفيدة في تحليل استخدام الأراضي أو دراسات البيئة المبنية أو تخطيط البنية التحتية حيث يجب تقييم المناطق بغض النظر عن توزيع السكان.
في هذه السيناريوهات، تكون مساحة الأرض المادية أكثر صلة من الكثافة السكانية. يضمن ذلك أنّ كل كيلومتر مربّع ضمن حدود المضلّع يساهم بشكل متساوٍ في المتّجه المجمّع.
بموجب هذه الطريقة، يتم ترجيح كل متّجه تضمين لخلية S2 مكوّنة حسب مساحة السطح الجغرافي التي تغطيها داخل المضلّع المستهدَف.
أمثلة على طلبات البحث
استبدِل 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 مستهدَفة. يدعم هذا الأسلوب سيناريوهات تخطيط التوسّع، مثل تحديد مكان فتح متجر جديد استنادًا إلى الملف الشخصي لموقع جغرافي حالي ناجح.
لتصوّر خلايا S2 على خريطة، عليك تحويل رقم تعريف خلية S2 أو دمجه مع شكل المضلّع الهندسي المقابل، لأنّ مجموعة البيانات هذه تستخدم رموز خلايا 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
Python: تحميل البيانات لتعلُّم الآلة
يتم تخزين التضمينات كمصفوفات 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)
التشغيل في Google Colab
عرض المصدر على GitHub