Menggunakan sematan Insight Dinamika Populasi

Menyiapkan data kebenaran dasar

Untuk menggunakan embedding Dinamika Populasi, data kebenaran dasar Anda harus diagregasi ke batas geografis yang didukung. Karena jenis batas administratif berbeda-beda secara global, Anda dapat menyelaraskan data menggunakan sistem grid matematika universal (seperti sel S2) atau wilayah administratif lokal (seperti kabupaten atau distrik, bergantung pada set data negara tertentu).

Opsi 1: Menggabungkan embedding ke dalam model yang ada

  • Menyiapkan kebenaran dasar berbasis model yang ada: Gunakan embedding sebagai kovariat geospasial untuk meningkatkan kualitas model yang ada.
  • Melatih model koreksi error: Tingkatkan kualitas model yang ada dengan mengintegrasikan embedding ke dalam model yang menggunakan output model asli, nilai yang diharapkan atau kebenaran dasar, dan embedding untuk mempelajari model koreksi error baru.

Opsi 2: Menyesuaikan untuk kasus penggunaan tertentu

  • Memilih model prediksi: Model apa pun, seperti GBDT, MLP, atau linear, dapat digunakan untuk prediksi.
  • Menggunakan embedding untuk prediksi: Gunakan embedding Dinamika Populasi sebagai fitur input, bersama dengan data kontekstual lainnya, untuk meningkatkan akurasi prediksi.

Agregasi batas kustom

Jika data kebenaran dasar Anda menggunakan poligon kustom, seperti kode pos, isokron waktu tempuh, atau area perdagangan, Anda dapat melakukan agregasi batas. Proses ini menggabungkan beberapa vektor sel S2 menjadi satu representasi untuk poligon target. Memilih metodologi pembobotan yang tepat akan memastikan embedding yang diagregasi secara akurat mencerminkan sasaran pemodelan hilir Anda.

Gunakan agregasi tertimbang populasi untuk kasus penggunaan yang berpusat pada manusia, seperti performa toko retail atau pemodelan perilaku konsumen.

Menggunakan agregasi spasial tertimbang area untuk data demografi dapat mengubah fitur machine learning Anda. Hal ini terjadi saat area yang tidak berpenghuni, seperti taman, zona industri, atau badan air, mendistorsi profil penduduk sebenarnya.

Untuk mengatasi masalah ini, Anda dapat melakukan rata-rata tertimbang populasi di BigQuery. Pendekatan ini menggunakan set data demografi beresolusi tinggi, seperti WorldPop di Katalog Data Earth Engine, untuk menghitung kepadatan yang tepat dari setiap segmen sel S2 yang berpotongan.

Untuk melihat contoh penerapan lengkap alur kerja tertimbang populasi, jalankan notebook interaktif.

2. Rata-rata tertimbang area

Untuk kasus penggunaan lingkungan atau fisik, gunakan agregasi tertimbang area. Hal ini berguna untuk analisis penggunaan lahan, studi lingkungan buatan, atau perencanaan infrastruktur yang mengharuskan Anda menilai wilayah terlepas dari distribusi populasi.

Dalam skenario ini, luas lahan fisik lebih relevan daripada kepadatan populasi manusia. Hal ini memastikan setiap kilometer persegi dalam batas poligon berkontribusi secara setara pada vektor yang diagregasi.

Dengan metode ini, vektor embedding setiap sel S2 konstituen diberi bobot berdasarkan luas permukaan geografis yang dicakupnya dalam poligon target.

Contoh kueri

Ganti your-project.your_dataset.embeddings_table dengan nama project, set data, dan tabel target Anda yang sebenarnya.

SQL: Mengambil embedding

Kueri ini mengambil vektor embedding dan metadata administratif untuk sel S2 dalam set data yang Anda sediakan.

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: Menemukan lokasi serupa

Kueri ini mengidentifikasi lokasi yang serupa secara perilaku tanpa memerlukan data eksternal.

Kueri ini menggunakan fungsi ML.DISTANCE untuk menghitung kesamaan kosinus, yang menampilkan kecocokan teratas untuk sel S2 target. Pendekatan ini mendukung skenario perencanaan ekspansi, seperti menentukan tempat untuk membuka toko baru berdasarkan profil lokasi yang ada dan berhasil.

Untuk memvisualisasikan sel S2 di peta, Anda harus mengonversi atau menggabungkan ID sel S2 ke geometri poligon yang sesuai, karena set data ini menggunakan token sel S2, bukan titik lintang dan bujur.

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: Menggabungkan data pelanggan

Contoh ini menunjukkan cara memperkaya data internal Anda sendiri (misalnya, tabel performa toko) dengan embedding perilaku. Pastikan data internal Anda menyertakan token sel S2 yang cocok (string heksadesimal).

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: Memuat data untuk machine learning

Embedding disimpan sebagai Array BigQuery. Untuk menggunakannya di library ML, Anda harus mengonversi kolom menjadi matriks 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)