BigQuery에서 기계 학습을 실행할 때의 과제
BigQuery 데이터를 사용하여 기계 학습(ML) 모델을 구축하려고 할 때, 다음과 같은 벽에 부딪히기 쉽습니다.
- 특징량 엔지니어링(Feature Engineering)에 필요한 SQL이 복잡해져서 어디에서 무엇을 변환하고 있는지 파악하기 어렵다.
- BigQuery ML 구문을 그때그때 조사하며 작성해야 하므로, 시행착오에 시간이 오래 걸린다.
- 모델의 평가 지표를 어떻게 해석해야 할지, 다음 개선 방안이 잘 보이지 않는다.
- Python(scikit-learn 등)과의 역할 분담에 혼란을 느껴서 BigQuery에서 어디까지 처리해야 할지 판단하기 어렵다.
BigQuery의 Data Science Agent를 사용하면 이러한 작업을 자연어(Natural Language)로 지시하면서 진행할 수 있습니다. 특징량 생성부터 모델 학습 및 평가까지, 에이전트가 제안과 실행을 담당해 줍니다.
본 기사에서는 Data Science Agent를 사용하여 특징량 엔지니어링부터 모델 평가까지 전 과정을 수행하는 절차를 설명합니다.
Data Science Agent란?
Data Science Agent는 BigQuery Studio에 내장된 AI 에이전트 기능 중 하나입니다. 자연어로 데이터 분석이나 기계 학습 지시를 내리면, SQL이나 ML 함수, AI* 함수를 조합한 쿼리를 자동으로 생성하고 실행 및 평가까지 수행합니다.
다른 에이전트와의 역할 분담은 다음과 같습니다.
| 에이전트 | 주요 용도 |
|---|
| Data Engineering Agent | 파이프라인 구축/개수/마이그레이션 |
| ... | |
사전 준비
필요한 권한
Data Science Agent를 이용하려면 다음 IAM 역할이 필요합니다.
roles/bigquery.dataEditor (데이터셋에 대한 쓰기 권한)
roles/bigquery.jobUser (쿼리 실행 권한)
roles/bigquery.connectionUser (Vertex AI 연결 사용 권한)
roles/aiplatform.user (Vertex AI 모델 사용 권한)
Vertex AI 연결 설정은 K-02 「BigQuery에서 AI 기능을 사용하기 위한 IAM 및 Vertex AI 연결 설정」을 참조하십시오.
Agent 실행
BigQuery Studio를 열고, 화면 우측 상단의 'Agent' 아이콘을 클릭합니다. 에이전트 패널이 열리면 'Data Science'를 선택합니다.
단계 1: 데이터 개요 파악
먼저 데이터셋의 내용을 Agent가 파악하도록 합니다. 여기서는 EC 구매 데이터를 예로 진행하겠습니다.
Agent에게 지시하기
데이터셋 'analytics.ec_orders'의 개요를 알려주세요.
행 수, 컬럼 목록, 결측치 상황, 주요 통계량을 확인해 주세요.
Agent는 데이터셋을 검색하여 개요 리포트를 반환합니다.
테이블: analytics.ec_orders
행 수: 1,234,567행
기간: 2023-01-01 ~ 2026-09-30
...
이 출력을 바탕으로 다음 특징량 설계로 넘어갑니다.
단계 2: 특징량 엔지니어링
목적 변수와 특징량의 설계 방침을 Agent에게 전달합니다. 여기서는 '다음 구매가 있을지 여부'를 예측하는 모델을 구축할 것입니다.
목적 변수 정의
목적 변수로 '첫 구매 후 90일 이내에 두 번째 구매를 하는지 여부(is_repeat_90d)'를
정의하는 SQL을 작성해 주세요.
사용자 단위로 집계하고, 모델 학습용 테이블 'analytics.ml_features'에 저장해 주세요.
Agent가 생성한 SQL 예시:
CREATE OR REPLACE TABLE `analytics.ml_features` AS
WITH first_purchase AS (
SELECT
...
설명 변수 작성
다음 특징량을 추가해 주세요.
- 첫 구매 금액
- 첫 구매 카테고리 (원-핫 인코딩 불필요, 카테고리 컬럼 그대로)
...
Agent는 특징량 계산 SQL을 생성하고 기존 테이블에 결합하는 쿼리를 출력합니다.
CREATE OR REPLACE TABLE `analytics.ml_features` AS
WITH first_order_detail AS (
SELECT
...
단계 3: 모델 학습
특징량 테이블이 완성되면, 모델 학습을 Agent에게 지시합니다.
Agent에게 지시하기
「analytics.ml_features」 테이블을 사용하여,
is_repeat_90d를 목적 변수로 하는 이진 분류 모델을 학습시키세요.
모델 종류는 ROGISTIC_REG를 사용하고,
...
Agent가 생성하는 SQL:
CREATE OR REPLACE MODEL `analytics.models.repeat_predictor_v1`
OPTIONS (model_type = 'LOGISTIC_REG',
...
학습이 완료되면 Agent가 완료 통지를 반환합니다.
단계 4: 모델 평가
학습을 마치면, 모델의 정확도를 Agent에게 평가하게 합니다.
Agent에게 지시하기
「analytics.models.repeat_predictor_v1」의 평가 지표를 확인해 주세요.
정확도(Precision), 재현율(Recall), AUC를 확인하고, 실무에서 사용할 수 있는 수준인지 판단해 주세요.
Agent의 출력 예시:
평가 결과 (테스트 데이터: 2026-01-01 이후)
정확도 (Precision): 0.71
재현율 (Recall): 0.68
...
특징량 중요도 확인
각 특징량이 모델에 얼마나 영향을 미치는지 확인해 주세요.
Agent는 ML.GLOBAL_EXPLAIN를 호출하여 특징량 중요도를 반환합니다.
SELECT
feature,
attribution
...
출력 예시:
feature | attribution
first_order_amount | 0.31
pre_order_avg_amount_90d | 0.24
...
첫 구매 금액과 구매 전 행동 이력이 리피트 예측에 가장 효과적임을 알 수 있습니다.
단계 5: 예측 실행
평가가 완료되면, 신규 사용자에게 대한 예측을 실행합니다.
Agent에게 지시하기
2026-09-01 이후에 처음 구매한 사용자에게,
「analytics.models.repeat_predictor_v1」로 90일 이내 리피트 확률을 예측하고,
결과를 「analytics.repeat_predictions_202609」에 저장해 주세요.
CREATE OR REPLACE TABLE `analytics.repeat_predictions_202609` AS
SELECT
user_id,
...
모델 개선 사이클
Agent를 사용한 모델 개선은 다음 사이클로 진행하는 것이 효율적입니다.
SQL의 상세한 작성이나 ML 함수의 구문을 그때그때 찾아볼 필요가 줄어들어, 특징량 설계나 모델 해석 판단에 집중할 수 있게 된다. 다음 K-24에서는 Data Preparation Agent를 사용한 데이터 클렌징을 설명한다.
BigQuery의 데이터 활용 및 AI 기능 도입에 대해 실무 수준의 지원을 제공하고 있습니다. 상담은 여기에서 하세요.
Discussion