Data Blending
데이터 블렌딩은 매칭 전에 별도 데이터 소스의 데이터를 공통 필드에 맞춰 집계하여 결합하는 방식으로, BI 도구와 혼합 ML 학습 세트에서 사용됩니다.
데이터 블렌딩은 둘 이상의 개별 소스에서 데이터를 결합해 하나의 뷰나 데이터셋을 만드는 방식입니다. 일반적으로 매칭 전에 날짜, 매장, 지역과 같은 공통 연결 필드를 기준으로 각 소스를 집계합니다. 이 용어는 비즈니스 인텔리전스 도구에서 비롯되었습니다. 데이터 블렌딩을 사용하면 한 시스템의 월별 마케팅 예산을 두 소스를 먼저 단일 데이터베이스에 적재하지 않고도 다른 시스템의 일별 매출과 나란히 표시할 수 있습니다. 머신러닝에서는 여러 데이터셋을 하나의 학습 세트로 섞는 작업도 데이터 블렌딩이라고 합니다. 예를 들어 실제 이미지와 합성 데이터를 섞거나, 공개 벤치마크 데이터셋에 기업 자체 카메라의 이미지를 더할 수 있습니다.
데이터 블렌딩의 작동 방식#
Tableau 구현 방식에서는 뷰에 처음 사용된 소스를 기본 소스로 지정해 뷰를 정의하고, 각 보조 소스를 별도로 쿼리한 뒤 연결 필드 수준으로 집계하여 일치하는 행에 결합합니다. 결과는 왼쪽 조인과 비슷하게 작동하지만 처리 순서가 다릅니다. 조인은 행을 결합한 다음 집계하지만, 블렌딩은 각 소스를 먼저 집계한 다음 결합합니다. 소스별 데이터의 세부 수준이 다르면 이 순서가 중요합니다. 일별 매출과 월별 광고비를 사용하는 다음 pandas 예시에서 이를 확인할 수 있습니다.
import numpy as np
import pandas as pd
# Source 1: daily revenue from a store database
rng = np.random.default_rng(0)
orders = pd.DataFrame({"date": pd.date_range("2026-01-01", "2026-03-31")})
orders["revenue"] = rng.integers(200, 400, len(orders))
orders["month"] = orders["date"].dt.strftime("%Y-%m")
# Source 2: monthly ad spend from a marketing tool
ads = pd.DataFrame({"month": ["2026-01", "2026-02", "2026-03"], "ad_spend": [3000, 2000, 4000]})
# A row-level join copies each month's spend onto every daily row
joined = orders.merge(ads, on="month")
print(f"ad spend after a row-level join: {joined['ad_spend'].sum():,}")
# A blend aggregates to the linking field (month) first, then combines the sources
blended = orders.groupby("month", as_index=False)["revenue"].sum().merge(ads, on="month", how="left")
blended["revenue_per_ad_dollar"] = (blended["revenue"] / blended["ad_spend"]).round(2)
print(blended)행 수준으로 조인하면 매월 예산이 해당 월의 일별 행 28~31개마다 반복되므로, 실제 광고비 9,000이 아니라 273,000으로 집계됩니다. 블렌딩은 월별로 한 행씩 유지하여 1월에는 광고비 1달러당 매출 3.17, 2월에는 4.06, 3월에는 2.41을 반환합니다.
블렌딩은 여러 소스가 서로 다른 시스템에 있고 하나의 질문에 답하기 위해 데이터를 결합해야 하는 탐색적 데이터 분석과 데이터 시각화 대시보드에 적합합니다. 연결 필드의 값이 정확히 일치해야 하므로, 이름을 정리하거나 별칭을 지정하기 전에는 한 소스의 "Lt. Blue"가 다른 소스의 "Light Blue"와 연결되지 않습니다.
학습 데이터셋 블렌딩#
머신러닝 팀은 단일 소스가 제공하는 범위를 넘어 더 다양한 조건을 포함하도록 데이터셋을 블렌딩합니다. 대규모 언어 모델도 이러한 혼합 데이터로 학습합니다. EleutherAI가 2020년에 공개한 The Pile은 학술 논문부터 코드까지 22개 소스를 블렌딩해 825 GiB 규모의 영어 텍스트 코퍼스를 구성하며, 소스별로 자체 샘플링 가중치를 사용합니다. 컴퓨터 비전에서는 여러 카메라, 지역, 계절에서 수집한 데이터셋을 블렌딩하면 단일 환경에 대한 과적합을 줄이고 데이터셋 편향을 완화할 수 있습니다.
학습 데이터 블렌딩에도 BI 블렌딩과 같은 조정 작업이 필요합니다. 클래스 이름을 하나의 분류 체계에 맞춰야 하므로 "car", "automobile", "vehicle"을 하나의 클래스로 통합하거나 의도적으로 별개의 클래스로 유지해야 합니다. 소스에 따라 가려진 사람의 바운딩 박스를 보이는 부분에만 그리거나 전체 윤곽에 그릴 수 있으므로 데이터 어노테이션 형식과 관례도 일치시켜야 합니다. 데이터 정제를 통해 여러 소스에 중복으로 포함된 이미지를 제거합니다. 팀은 테스트 데이터를 배포 도메인에서 추출하여, 혼합 데이터 중 가장 쉬운 소스가 아니라 실제 목표 환경을 반영하는 지표를 산출합니다.
Ultralytics YOLO는 학습 시 데이터셋 YAML을 통해 여러 소스를 블렌딩합니다. YAML의 train 필드에는 이미지 디렉터리 목록 또는 이미지 경로가 포함된 .txt 파일을 지정할 수 있으므로, 단일 학습 실행에서 실제 데이터셋과 합성 데이터셋을 함께 사용할 수 있으며 val에는 실제 이미지만 나열됩니다.
데이터 블렌딩과 관련 용어 비교#
- 데이터 조인: 집계 전에 단일 쿼리에서 일치하는 키를 기준으로 레코드를 행별로 결합합니다. 소스별 데이터 세부 수준이 다르면 값이 중복됩니다.
- 데이터 통합: 보통 추출, 변환, 적재(ETL) 파이프라인을 사용해 소스를 공통 스키마를 가진 데이터 웨어하우스나 데이터 레이크에 영구적으로 통합합니다.
- 앙상블 학습에서의 블렌딩: 홀드아웃 세트로 학습한 메타 모델을 사용해 여러 모델의 예측을 결합합니다. 넷플릭스 프라이즈의 우승작들이 채택한 방식이며, 데이터 소스를 결합하는 것과는 관련이 없습니다.










