정답 데이터 준비
인구 역학 임베딩을 사용하려면 정답 데이터를 지원되는 지리적 경계로 집계해야 합니다. 전 세계적으로 행정 경계 유형이 다르므로 범용 수학적 그리드 시스템 (예: S2 셀) 또는 현지 행정 구역 (예: 특정 국가 데이터 세트에 따라 카운티 또는 구)을 사용하여 데이터를 정렬할 수 있습니다.
옵션 1: 기존 모델에 임베딩 통합
- 기존 모델 기반 정답 준비: 임베딩을 지리공간 공변량으로 사용하여 기존 모델을 개선합니다.
- 오류 수정 모델 학습: 원래 모델 출력, 예상 값 또는 정답, 임베딩을 가져와 새로운 오류 수정 모델을 학습하는 모델에 임베딩을 통합하여 기존 모델을 개선합니다.
옵션 2: 특정 사용 사례에 맞게 조정
- 예측 모델 선택: GBDT, MLP 또는 선형과 같은 모든 모델을 예측에 사용할 수 있습니다.
- 예측에 임베딩 사용: 인구 역학 임베딩을 다른 컨텍스트 데이터와 함께 입력 특성으로 사용하여 예측 정확도를 개선합니다.
쿼리 예시
your-project.your_dataset.embeddings_table을 실제 프로젝트, 데이터 세트, 대상 테이블 이름으로 바꿉니다.
SQL: 임베딩 가져오기
이 쿼리는 프로비저닝된 데이터 세트에서 S2 셀의 임베딩 벡터와 관리 메타데이터를 가져옵니다.
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: 유사한 위치 찾기
이 쿼리는 외부 데이터 없이 행동이 유사한 위치를 식별합니다.
ML.DISTANCE 함수를 사용하여 코사인 유사성을 계산하고 대상 S2 셀의 상위 일치 항목을 반환합니다. 이 접근 방식은 성공적인 기존 위치의 프로필을 기반으로 새 매장을 열 위치를 결정하는 것과 같은 확장 계획 시나리오를 지원합니다.
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: 고객 데이터 조인
이 예에서는 행동 임베딩으로 자체 내부 데이터 (예: 매장 실적 테이블)를 보강하는 방법을 보여줍니다. 내부 데이터에 일치하는 S2 셀 토큰 (16진수 문자열)이 포함되어 있는지 확인합니다.
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: 머신러닝을 위한 데이터 로드
임베딩은 BigQuery 배열로 저장됩니다. ML 라이브러리에서 임베딩을 사용하려면 열을 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)