Menyiapkan Data Kebenaran Nyata
Untuk menggunakan sematan Dinamika Populasi, data kebenaran dasar Anda harus diagregasi ke batas geografis yang didukung. Karena jenis batas administratif bervariasi secara global, Anda dapat menyelaraskan data menggunakan sistem petak 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
- Siapkan kebenaran dasar berbasis model yang ada: Gunakan embedding sebagai kovariat geospasial untuk meningkatkan kualitas model yang ada.
- Melatih model koreksi kesalahan: Tingkatkan kualitas model yang ada dengan mengintegrasikan sematan ke dalam model yang menggunakan output model asli, nilai yang diharapkan atau kebenaran dasar, dan sematan untuk mempelajari model koreksi kesalahan baru.
Opsi 2: Penyesuaian untuk Kasus Penggunaan Tertentu
- Pilih model prediksi: Model apa pun, seperti GBDT, MLP, atau linear, dapat digunakan untuk prediksi.
- Menggunakan penyematan untuk prediksi: Gunakan penyematan Dinamika Populasi sebagai fitur input, bersama dengan data kontekstual lainnya, untuk meningkatkan akurasi prediksi.
Contoh kueri
Ganti your-project.your_dataset.embeddings_table dengan project, set data, dan nama tabel target Anda yang sebenarnya.
SQL: Mengambil Embedding
Kueri ini mengambil vektor embedding dan metadata administratif untuk sel S2 dalam set data yang disediakan.
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: Temukan Lokasi Serupa
Kueri ini mengidentifikasi lokasi yang serupa secara perilaku tanpa memerlukan data eksternal.
Fungsi ini menggunakan fungsi ML.DISTANCE untuk menghitung kemiripan kosinus, yang menampilkan kecocokan teratas untuk sel S2 target. Pendekatan ini mendukung skenario perencanaan ekspansi, seperti menentukan lokasi untuk membuka toko baru berdasarkan profil lokasi yang sudah ada dan berhasil.
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: Gabungkan Data Pelanggan
Contoh ini menunjukkan cara memperkaya data internal Anda sendiri (misalnya, tabel performa toko) dengan sematan perilaku. Pastikan data internal Anda menyertakan token sel S2 yang cocok (string hex).
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)