Préparer les données de vérité terrain
Pour utiliser les représentations vectorielles continues de la dynamique des populations, vos données de vérité terrain doivent être agrégées selon une limite géographique compatible. Comme les types de limites administratives varient à l'échelle mondiale, vous pouvez aligner vos données à l'aide de systèmes de grille mathématiques universels (comme les cellules S2) ou de régions administratives locales (comme les comtés ou les districts, selon l'ensemble de données spécifique au pays).
Option 1 : Intégrer des représentations vectorielles continues dans un modèle existant
- Préparer les données de vérité terrain existantes basées sur un modèle : utilisez les représentations vectorielles continues comme covariables géospatiales pour améliorer un modèle existant.
- Entraîner un modèle de correction des erreurs : améliorez un modèle existant en intégrant les représentations vectorielles continues dans un modèle qui prend en compte la sortie du modèle d'origine, la valeur attendue ou la vérité terrain, et les représentations vectorielles continues pour apprendre un nouveau modèle de correction des erreurs.
Option 2 : Ajuster pour des cas d'utilisation spécifiques
- Choisir un modèle de prédiction : n'importe quel modèle, tel que GBDT, MLP ou linéaire, peut être utilisé pour les prédictions.
- Utiliser des représentations vectorielles continues pour la prédiction : utilisez les représentations vectorielles continues de la dynamique des populations comme caractéristiques d'entrée, ainsi que d'autres données contextuelles, pour améliorer la précision des prédictions.
Exemples de requêtes
Remplacez your-project.your_dataset.embeddings_table par le nom de votre projet, de votre ensemble de données et de votre table cible.
SQL : Récupérer des représentations vectorielles continues
Cette requête récupère le vecteur de représentation vectorielle continue et les métadonnées administratives pour les cellules S2 de votre ensemble de données provisionné.
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 : Trouver des lieux similaires
Cette requête identifie des lieux similaires en termes de comportement sans nécessiter de données externes.
Elle utilise la fonction ML.DISTANCE pour calculer la similarité cosinus, en renvoyant les meilleurs résultats pour une cellule S2 cible. Cette approche est compatible avec les scénarios de planification de l'expansion, par exemple pour déterminer où ouvrir un nouveau magasin en fonction du profil d'un lieu existant qui fonctionne bien.
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 : Joindre des données client
Cet exemple montre comment enrichir vos propres données internes (par exemple, une table de performances de magasin) avec des représentations vectorielles continues comportementales. Assurez-vous que vos données internes incluent des jetons de cellule S2 correspondants (chaînes hexadécimales).
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 : Charger des données pour le machine learning
Les représentations vectorielles continues sont stockées sous forme de tableaux BigQuery. Pour les utiliser dans des bibliothèques de ML, vous devez convertir la colonne en matrice 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)