Nüfus Dinamikleri Analizleri yerleştirmelerini kullanma

Kesin referans verilerini hazırlama

Nüfus Dinamikleri yerleştirmelerini kullanmak için kesin referans verileriniz desteklenen bir coğrafi sınıra göre toplanmalıdır. Yönetim sınırı türleri dünya genelinde farklılık gösterdiğinden verilerinizi evrensel matematiksel ızgara sistemlerini (ör. S2 hücreleri) veya yerel yönetim bölgelerini (ör. belirli ülke veri kümesine bağlı olarak ilçeler ya da bölgeler) kullanarak hizalayabilirsiniz.

1. seçenek: Yerleştirmeleri mevcut bir modele dahil etme

  • Mevcut modele dayalı kesin referans verileri hazırlama: Mevcut bir modeli geliştirmek için gömmeleri coğrafi uzamsal kovaryantlar olarak kullanın.
  • Hata düzeltme modeli eğitme: Yerleştirmeleri, yeni bir hata düzeltme modeli öğrenmek için orijinal model çıkışını, beklenen değeri veya kesin referansı ve yerleştirmeleri alan bir modele entegre ederek mevcut bir modeli iyileştirin.

2. seçenek: Belirli Kullanım Alanları İçin Ayarlama

  • Tahmin modeli seçin: Tahminler için GBDT, MLP veya doğrusal gibi herhangi bir model kullanılabilir.
  • Tahmin için yerleştirmeleri kullanma: Tahmin doğruluğunu artırmak için diğer bağlamsal verilerle birlikte giriş özellikleri olarak Population Dynamics yerleştirmelerini kullanın.

Sorgu örnekleri

your-project.your_dataset.embeddings_table yerine gerçek projenizi, veri kümenizi ve hedef tablo adınızı girin.

SQL: Yerleştirmeleri Getirme

Bu sorgu, sağlanan veri kümenizdeki S2 hücreleri için yerleştirme vektörünü ve yönetim meta verilerini alır.

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: Benzer Konumları Bulma

Bu sorgu, harici veri gerektirmeden davranışsal olarak benzer konumları tanımlar.

Kosinüs benzerliğini hesaplamak için ML.DISTANCE işlevini kullanır ve hedef S2 hücresi için en iyi eşleşmeleri döndürür. Bu yaklaşım, başarılı bir mevcut konumun profiline göre yeni bir mağazanın nerede açılacağını belirlemek gibi genişleme planlama senaryolarını destekler.

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: Müşteri Verilerini Birleştirme

Bu örnekte, kendi dahili verilerinizi (ör. mağaza performansı tablosu) davranış yerleştirmeleriyle nasıl zenginleştireceğiniz gösterilmektedir. Dahili verilerinizin eşleşen S2 hücre jetonları (onaltılık dizeler) içerdiğinden emin olun.

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: Makine Öğrenimi İçin Veri Yükleme

Yerleştirmeler BigQuery dizileri olarak depolanır. Bunları makine öğrenimi kitaplıklarında kullanmak için sütunu NumPy matrisine dönüştürmeniz gerekir.

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)