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.
1. Rata-rata tertimbang populasi (default yang direkomendasikan untuk PDI)
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)
Jalankan di Google Colab
Lihat sumber di GitHub