Daten zur Bevölkerungsdynamik – US-Postleitzahlen

Entwicklerdokumentation

Produktbeschreibung

Population Dynamics Insights (PDI) ist ein Dataset mit Einbettungen, in dem Daten zum menschlichen Verhalten und unserer Interaktion mit der Umwelt in prägnante, analysereife Einbettungen (oder „digitale Fingerabdrücke“) für bestimmte Standorte zusammengefasst werden.

Diese Einbettungen erfassen Muster in aggregierten Daten wie Suchtrends, Trends zur Besucherfrequenz und Umweltbedingungen (Karten, Luftqualität, Wetter). So entsteht ein umfassendes, standortspezifisches Bild davon, wie Menschen mit ihrer Umgebung interagieren. Durch die Aggregation über Raum und Zeit hinweg wird der Datenschutz gewährleistet. Gleichzeitig ermöglichen diese Einbettungen eine differenzierte räumliche Analyse und Vorhersage für Anwendungen, die von der öffentlichen Gesundheit bis zur sozioökonomischen Modellierung reichen.

Produktübersicht

Einbettungen zur Bevölkerungsdynamik werden mit einem speziell entwickelten Modell für maschinelles Lernen generiert, das mit einer Vielzahl von Features trainiert und in eine komprimierte Vektordarstellung umgewandelt wird. Diese Einbettungen werden aus folgenden Daten trainiert und generiert:

  • Aggregierte Suchtrends: Regionale Interessen und Anliegen, die sich in Suchdaten widerspiegeln.
  • Aggregierte Maps-Daten (einschließlich Auslastung): Ausstattung, Dienste und Unternehmen in den Regionen sowie lokale Besuchstrends.
  • Aggregierte Daten zu Wetter und Luftqualität: Klimabezogene Messwerte, einschließlich Temperatur und Luftqualität.

Diese Features werden auf Postleitzahlebene aggregiert, um lokalisierte, kontextbezogene Einbettungen zu generieren, die den Datenschutz wahren. PDI ist ein fortlaufendes Zeitreihendataset, bei dem monatlich neue Datenslices verarbeitet und partitioniert werden. Die Daten werden bis zum letzten Tag des folgenden Kalendermonats aktualisiert und der Datentabelle hinzugefügt (z. B. werden Daten vom Februar spätestens am 31. März veröffentlicht).

Vorbereitung

Sie benötigen Zugriff, um auf Einbettungen zur Bevölkerungsdynamik zuzugreifen. Wenn Sie keinen Zugriff haben, wenden Sie sich an Ihren Vertriebsmitarbeiter oder Customer Engineer.

  • Aktivieren Sie die Analytics Hub API in der Cloud Console.
  • Aktivieren Sie die BigQuery API in der Cloud Console.
  • Sie benötigen Grundkenntnisse von BigQuery.
  • Ihr Konto muss die Rolle „Analytics Hub Subscription Owner“ (roles/analyticshub.subscriptionOwner) haben, um Abonnentenaufgaben auszuführen.
  • Ihr Konto muss die Rolle „BigQuery User“ (roles/bigquery.user) haben, um Datasets zu erstellen.

Wenn Sie noch keine Erfahrung mit Einbettungen oder BigQuery Machine Learning haben, empfehlen wir Ihnen dringend, die folgenden Schulungsmaterialien durchzuarbeiten, bevor Sie mit der Analyse beginnen:

  • Crashkurs „Maschinelles Lernen“: Embeddings: Eine grundlegende, schnelle Übersicht darüber, wie Modelle für maschinelles Lernen Einbettungen verwenden, um hochdimensionale Daten in einen niedrigerdimensionalen Raum zu übertragen und dabei semantische Beziehungen beizubehalten.
  • Getting Started with Vector Search and Embeddings: Ein praktisches Google Cloud Skills Boost-Lab, in dem Vektoreinbettungen, semantische Ähnlichkeit und die Verwendung von Einbettungen im breiteren Google Cloud-Ökosystem vorgestellt werden.
  • BigQuery Machine Learning (BQML) Tutorials: Da das PDI-Dataset in BigQuery gehostet wird, können Sie damit Modelle für maschinelles Lernen direkt auf den Einbettungen trainieren und ausführen. Dazu verwenden Sie Standard-SQL und müssen die Daten nicht exportieren.

Einbettungen verwenden

Daten verstehen

Sehen Sie sich vor Beginn der Analyse die Schemastruktur an.

Dataset-Organisation

Die Einbettungen sind in separaten BigQuery-Tabellen für jedes Land oder jede Testregion organisiert.

Aufbau des Einbettungsvektors

Die Spalte features ist ein 330-dimensionaler Vektor, der in BigQuery als REPEATED FLOAT-Array gespeichert ist. Jeder Abschnitt des Arrays entspricht einem bestimmten Datensignal, das vom Modell für Bevölkerungsdynamik extrahiert wurde.

Wenn Sie diese Struktur verstehen, können Sie Feature-Ablation durchführen (z. B. ermitteln, inwieweit das Suchverhalten im Vergleich zum Wetter Verkäufe vorhersagt).

Vektorindexe Datenquelle Beschreibung
0 – 127 Aggregierte Suchtrends Erfasst regionale Interessen und Anliegen (z. B. Suchanfragen nach „Fitnessstudio“, „Grippesymptome“, „Luxusgüter“).
128 – 255 Maps und Besucherfrequenz Erfasst die bebaute Umgebung (POIs wie Krankenhäuser, Parks, Schulen) und die Besucherfrequenz, um Orte von Interesse zu zeigen.
256 – 329 Wetter und Luftqualität Erfasst den Umweltkontext (Temperatur, Niederschlag, Luftqualität).

Wichtige Spalten und Metadaten

Die Einbettungstabelle enthält räumliche und zeitliche Metadaten, die räumliche Analysen, Filterung und Interoperabilität mit anderen Diensten ermöglichen.

Da eine einzelne Postleitzahl gelegentlich administrative Grenzen (z. B. Kreisgrenzen) überschreiten kann, werden die Felder für Verwaltungsgebiete als Arrays bereitgestellt.

  • geo_id: Die eindeutige Orts-ID, die mit dieser Postleitzahl verknüpft ist.
  • geo_name: Der Postleitzahlstring für die Region (z. B. '90210').
  • administrative_area_level_1_names: Eine Liste (ARRAY<STRING>) mit für Menschen lesbaren Namen für die Grenzen der obersten Ebene (z. B. ['California']).
  • administrative_area_level_1_ids: Eine Liste (ARRAY<STRING>) mit eindeutigen Orts IDs für die administrativen Grenzen der obersten Ebene, die diese Postleitzahl überschneidet (z. B. Bundesstaat oder Provinz).
  • administrative_area_level_2_names: Eine Liste (ARRAY<STRING>) mit für Menschen lesbaren Namen für die Grenzen der zweiten Ebene (z. B. ['Los Angeles County']).
  • administrative_area_level_2_ids: Eine Liste (ARRAY<STRING>) mit eindeutigen Orts IDs für die administrativen Grenzen der zweiten Ebene, die diese Postleitzahl überschneidet (z. B. Kreis oder Bezirk).
  • features: Der 330-dimensionale Einbettungsvektor, der nativ als ARRAY<FLOAT64> gespeichert ist. Wenn Sie ihn mit Python in Pandas laden möchten, müssen Sie ihn reduzieren oder in eine NumPy-Matrix umwandeln.
  • snapshot_date: Ein DATE formatiert als YYYY-MM-DD, der standardmäßig auf den ersten Tag des Monats festgelegt ist. Stellt den spezifischen monatlichen Zeitraum dar, aus dem die Eingabe-Features aggregiert wurden, um die Einbettungsdaten zu generieren. Daten vom April 2026 werden beispielsweise als 2026-04-01 formatiert.

Ground Truth-Daten vorbereiten

Wenn Sie Einbettungen zur Bevölkerungsdynamik verwenden möchten, müssen Ihre Ground Truth-Daten auf eine unterstützte geografische Grenze (Postleitzahlen) aggregiert werden.

Option 1: Einbettungen in ein vorhandenes Modell einbinden

  1. Vorhandene modellbasierte Ground Truth-Daten vorbereiten: Verwenden Sie die Einbettungen als geografische Kovariaten, um ein vorhandenes Modell zu verbessern.
  2. Modell zur Fehlerkorrektur trainieren: Verbessern Sie ein vorhandenes Modell, indem Sie die Einbettungen in ein Modell einbinden, das die ursprüngliche Modellausgabe, den erwarteten Wert oder die Ground Truth-Daten und die Einbettungen verwendet, um ein neues Modell zur Fehlerkorrektur zu trainieren.

Option 2: Für bestimmte Anwendungsfälle optimieren

  1. Vorhersagemodelltyp auswählen: Für Vorhersagen kann jedes Modell verwendet werden, z. B. GBDT, MLP oder linear,
  2. Einbettungen für Vorhersagen verwenden: Verwenden Sie Einbettungen zur Bevölkerungsdynamik als Eingabe-Features zusammen mit anderen Kontextdaten, um die Vorhersage genauigkeit zu verbessern.

Code-Snippets für den Schnellstart

Mit diesen Snippets können Sie Ihren Zugriff überprüfen und das Datenformat kennenlernen.

1. SQL: Einbettungen für einen bestimmten Monat abrufen

Da PDI ein Zeitreihendataset ist, sollten Sie normalerweise nach snapshot_date filtern, damit nicht mehrere Postleitzahlen für mehrere Monate zurückgegeben werden. Der Tag muss immer auf -01 festgelegt sein.

SELECT
  snapshot_date,
  geo_name AS postal_code,
  geo_id AS place_id,
  features -- The 330-dim vector
FROM
  `your-project.population_dynamics___us___domestic.v1_postal_code.embeddings_table`
WHERE
  snapshot_date = '2025-10-01' -- You must use the first of the month ('-01')
LIMIT 10;

2. SQL: Nach Verwaltungsgebiet filtern (Arrays reduzieren)

Da Postleitzahlen mehrere administrative Grenzen umfassen können, werden die Felder administrative_area_* als Arrays gespeichert. Wenn Sie nach allen Postleitzahlen in einem bestimmten Bundesstaat (z. B. „California“) filtern möchten, müssen Sie die Funktion UNNEST() von BigQuery verwenden.

SELECT
  snapshot_date,
  geo_name AS postal_code,
  admin1_name
FROM
  your-project.population_dynamics___us___domestic.v1_postal_code.embeddings_table,
  UNNEST(administrative_area_level_1_names) AS admin1_name
WHERE
  -- On or after October 2025
  snapshot_date >= '2025-10-01' -- You must use the first of the month ('-01')
  AND admin1_name = 'California'
LIMIT 10;

3. SQL: Ähnliche Standorte finden

Mit dieser Abfrage werden Standorte mit ähnlichem Verhalten ermittelt, ohne dass externe Daten erforderlich sind. Dazu wird die Funktion ML.DISTANCE verwendet, um die Kosinusähnlichkeit zu berechnen und die besten Übereinstimmungen für eine Zielpostleitzahl zurückzugeben.

WITH TargetLocation AS (
  SELECT features AS target_vector
  FROM `your-project.population_dynamics___us___domestic.v1_postal_code.embeddings_table`
  WHERE snapshot_date = '2025-10-01' -- You must use the first of the month ('-01')
    AND geo_name = '90210' -- Replace with your target postal code
  LIMIT 1
)
SELECT
  t.geo_name AS postal_code,
  -- 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.population_dynamics___us___domestic.v1_postal_code.embeddings_table` t,
  TargetLocation p
WHERE
  t.snapshot_date = '2025-10-01' -- You must use the first of the month ('-01')
  AND t.geo_name != '90210' -- Exclude the target itself
ORDER BY
  similarity_score DESC
LIMIT 20;

4. SQL: Kundendaten zusammenführen

In diesem Beispiel wird gezeigt, wie Sie Ihre eigenen internen Daten (z. B. eine Tabelle zur Geschäftsleistung) mit Verhaltensdaten anreichern, indem Sie sie anhand der Postleitzahl zusammenführen.

SELECT
  store.store_id,
  store.postal_code,
  store.total_revenue,
  embeddings.features AS pdi_vector
FROM
  `your-project.internal_data.store_performance` AS store
JOIN
  `your-project.population_dynamics___us___domestic.v1_postal_code.embeddings_table` AS embeddings
ON
  store.postal_code = embeddings.geo_name
WHERE
  embeddings.snapshot_date = '2025-10-01' -- You must use the first of the month ('-01')

5. Python: Daten für maschinelles Lernen laden

Die Einbettungen werden als BigQuery-Arrays gespeichert. Wenn Sie sie in ML-Bibliotheken verwenden möchten, müssen Sie die Spalte in eine NumPy-Matrix umwandeln.

from google.cloud import bigquery
import numpy as np
import pandas as pd

client = bigquery.Client()

query = """
SELECT
  geo_name,
  features -- Returns as a list of floats
FROM
  `your-project.population_dynamics___us___domestic.v1_postal_code.embeddings_table`
WHERE
  snapshot_date = '2025-10-01' -- You must use the first of the month ('-01')
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)

Häufig gestellte Fragen (FAQs)

Kann ich auf die Rohdaten zugreifen (z. B. bestimmte Suchanfragen oder Mobilitätsdaten)?

Nein. Die Einbettungen zur Bevölkerungsdynamik werden aus aggregierten, datenschutzfreundlichen Signalen generiert. Zum Schutz der Nutzerdaten stellen wir keine spezifischen Nutzerdaten, individuellen Suchverläufe oder Rohdaten zu Bewegungsmustern zur Verfügung. Die Einbettungen bieten eine latente Darstellung dieser Verhaltensweisen, die für die Modellierung und Vorhersage optimiert ist, nicht für die Rohdatenanalyse.

Wie werden die Suchbegriffe ausgewählt, die zum Generieren der Einbettungen verwendet werden?

Wir verwenden Knowledge Graph-Objekte (KG) anstelle von Rohdaten aus Suchanfragen. Beispielsweise werden Suchanfragen wie „Freund von Taylor Swift“ und „KC Tight End“ beide demselben zugrunde liegenden KG-Objekt („Travis Kelce“) zugeordnet. Dieser Ansatz ist sprachunabhängig, erfasst breitere semantische Kategorien und verbessert den Datenschutz erheblich.

Sind die Vektordimensionen interpretierbar (z. B. ist Dimension 5 „Kaffee“)?

Nein, die Vektoren sind latente Darstellungen. Da die Features vom Modell für maschinelles Lernen gelernt werden, gibt es keine einfache semantische Zuordnung oder 1:1-Übersetzung von einem endgültigen Vektorindex zu einer bestimmten Quelleneingabe. Wir wissen zwar, welche Indexblöcke aus welchen Datasets stammen (z. B. stellen die Indexe 0–127 Suchtrends dar), aber ein bestimmter Index wie Index 5 ist nicht einem einzelnen Keyword zugeordnet. Stattdessen stellt er ein komplexes, abstraktes Feature dar, das vom Modell gelernt wurde.

Enthält das Dataset Polygongrenzen (Shapefiles)?

Nein. Das Dataset enthält Postleitzahlen (geo_name) und die zugehörigen Orts IDs (geo_id), aber keine Rohdaten zu Polygongeometrien (z. B. WKT).

Je nach Anwendungsfall empfehlen wir die folgenden Ansätze:

  • Für die Visualisierung in Google Maps: Mit den in geo_id angegebenen Orts-IDs können Sie die Grenzen mithilfe von datengestützten Stilen direkt auf einer Karte gestalten und rendern. Diese Grenzen eignen sich zwar ideal für die visuelle Darstellung, können aber nicht als Rohdaten in Geometriedateien exportiert werden.
  • Für räumliche Verknüpfungen und Analysen: Wenn Sie Rohdaten zu räumlichen Polygonen benötigen, empfehlen wir, dieses Dataset mit öffentlichen Datasets für Grenzen (z. B. in öffentlichen BigQuery-Datasets) anhand der Postleitzahl `geo_name` zusammenzuführen.

Welchen Zeitraum deckt das Dataset mit Einbettungen ab?

Die PDI-Einbettungen werden monatlich aktualisiert und für jeden neuen Monat werden Daten zum Dataset hinzugefügt. Die Daten werden in der Spalte snapshot_date im Format YYYY-MM-DD dargestellt. So erhalten Sie eine stabile Baseline, die den Verhaltens- und physischen Fingerabdruck eines Standorts für den jeweiligen Monat widerspiegelt.