Usa las incorporaciones de las Estadísticas de dinámica de población

Prepara los datos de verdad fundamental

Para usar las incorporaciones de Population Dynamics, tus datos de verdad fundamental deben agregarse a un límite geográfico compatible. Debido a que los tipos de límites administrativos varían a nivel global, puedes alinear tus datos con sistemas de cuadrícula matemática universales (como las celdas S2) o regiones administrativas locales (como condados o distritos, según el conjunto de datos específico del país).

Opción 1: Incorpora incorporaciones en un modelo existente

  • Prepara la verdad fundamental basada en el modelo existente: Usa las incorporaciones como covariables geoespaciales para mejorar un modelo existente.
  • Entrena un modelo de corrección de errores: Mejora un modelo existente integrando las incorporaciones en un modelo que toma el resultado del modelo original, el valor esperado o la verdad fundamental, y las incorporaciones para aprender un nuevo modelo de corrección de errores.

Opción 2: Ajusta para casos de uso específicos

  • Elige un modelo de predicción: Se puede usar cualquier modelo, como GBDT, MLP o lineal, para las predicciones.
  • Usa embeddings para la predicción: Usa los embeddings de Population Dynamics como atributos de entrada, junto con otros datos contextuales, para mejorar la precisión de la predicción.

Ejemplos de consultas

Reemplaza your-project.your_dataset.embeddings_table por el proyecto, el conjunto de datos y el nombre de la tabla de destino reales.

SQL: Recupera incorporaciones

Esta consulta recupera el vector de incorporación y los metadatos administrativos de las celdas S2 en tu conjunto de datos aprovisionado.

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: Busca ubicaciones similares

Esta consulta identifica ubicaciones similares en función del comportamiento sin requerir datos externos.

Usa la función ML.DISTANCE para calcular la similitud del coseno y muestra las coincidencias principales para una celda S2 de destino. Este enfoque admite situaciones de planificación de expansión, como determinar dónde abrir una tienda nueva en función del perfil de una ubicación existente exitosa.

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: Une los datos del cliente

En este ejemplo, se muestra cómo enriquecer tus propios datos internos (por ejemplo, una tabla de rendimiento de la tienda) con embeddings de comportamiento. Asegúrate de que tus datos internos incluyan tokens de celdas S2 coincidentes (cadenas hexadecimales).

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: Carga datos para el aprendizaje automático

Las incorporaciones se almacenan como arrays de BigQuery. Para usarlas en bibliotecas de AA, debes convertir la columna en una matriz de 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)