הכנת נתוני אמת בסיסית
כדי להשתמש בהטמעות של נתונים דינמיים על אוכלוסייה, נתוני האמת הבסיסית צריכים להיות מצטברים לגבול גיאוגרפי נתמך. מכיוון שסוגי הגבולות האדמיניסטרטיביים משתנים ברחבי העולם, אפשר ליישר את הנתונים באמצעות מערכות רשת מתמטיות אוניברסליות (כמו תאי S2) או אזורים אדמיניסטרטיביים מקומיים (כמו מחוזות או נפות, בהתאם למערך הנתונים הספציפי של המדינה).
אפשרות 1: שילוב הטמעות במודל קיים
- הכנת נתוני אמת קרקע (ground truth) קיימים שמבוססים על מודל: משתמשים בהטמעות כמשתני עזר גיאוגרפיים כדי לשפר מודל קיים.
- אימון מודל לתיקון שגיאות: שיפור מודל קיים על ידי שילוב ההטבעות במודל שמקבל את פלט המודל המקורי, את הערך הצפוי או את האמת הבסיסית, ואת ההטבעות כדי לאמן מודל חדש לתיקון שגיאות.
אפשרות 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
Python: טעינת נתונים ללמידת מכונה
ההטמעות מאוחסנות כמערכים ב-BigQuery. כדי להשתמש בהם בספריות ML, צריך להמיר את העמודה למטריצת 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)