Data Blending
Trộn dữ liệu kết hợp dữ liệu từ các nguồn riêng biệt bằng cách tổng hợp từng nguồn theo một trường chung trước khi đối chiếu, áp dụng trong công cụ BI và tập dữ liệu huấn luyện ML kết hợp.
Kết hợp dữ liệu là quá trình hợp nhất dữ liệu từ hai hoặc nhiều nguồn riêng biệt thành một chế độ xem hoặc bộ dữ liệu, thường bằng cách tổng hợp từng nguồn theo một trường liên kết chung, chẳng hạn như ngày, cửa hàng hoặc khu vực, trước khi ghép dữ liệu. Thuật ngữ này xuất phát từ các công cụ phân tích kinh doanh, nơi việc kết hợp cho phép ngân sách tiếp thị theo tháng từ một hệ thống nằm cạnh doanh số hằng ngày từ hệ thống khác mà không cần tải cả hai vào cùng một cơ sở dữ liệu trước. Trong machine learning, kết hợp dữ liệu còn chỉ việc trộn nhiều bộ dữ liệu thành một tập huấn luyện, chẳng hạn ảnh thực tế với dữ liệu tổng hợp hoặc bộ dữ liệu benchmark công khai với ảnh từ camera của chính công ty.
Cách kết hợp dữ liệu hoạt động#
Trong cách triển khai của Tableau, nguồn đầu tiên được dùng trong chế độ xem là nguồn chính và xác định chế độ xem; mỗi nguồn phụ được truy vấn riêng, tổng hợp đến cấp độ của các trường liên kết rồi gắn vào những hàng tương ứng. Kết quả hoạt động như phép nối trái, nhưng khác về thứ tự xử lý: phép nối kết hợp các hàng rồi mới tổng hợp, còn kết hợp dữ liệu tổng hợp từng nguồn trước rồi mới kết hợp. Thứ tự này quan trọng khi các nguồn có độ chi tiết khác nhau, như ví dụ pandas sau đây với doanh thu hằng ngày và chi tiêu quảng cáo hằng tháng:
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)Phép nối ở cấp hàng báo cáo chi tiêu quảng cáo là 273.000 thay vì con số thực 9.000, vì ngân sách mỗi tháng lặp lại trên tất cả 28 đến 31 hàng theo ngày. Phép kết hợp giữ lại một hàng mỗi tháng và cho kết quả doanh thu trên mỗi đô la quảng cáo lần lượt là 3,17 vào tháng Một, 4,06 vào tháng Hai và 2,41 vào tháng Ba.
Kết hợp dữ liệu phù hợp với phân tích dữ liệu khám phá và dashboard phục vụ trực quan hóa dữ liệu, khi các nguồn nằm trong những hệ thống khác nhau và cần kết hợp để trả lời một câu hỏi. Giá trị trong trường liên kết phải khớp chính xác, vì vậy “Lt. Blue” ở một nguồn sẽ không liên kết với “Light Blue” ở nguồn khác cho đến khi tên được làm sạch hoặc đặt bí danh.
Kết hợp tập dữ liệu huấn luyện#
Các nhóm machine learning kết hợp bộ dữ liệu để bao quát nhiều điều kiện hơn khả năng của bất kỳ nguồn riêng lẻ nào. Mô hình ngôn ngữ lớn được huấn luyện trên các tập hợp dữ liệu như vậy: The Pile, do EleutherAI phát hành năm 2020, kết hợp 22 nguồn từ bài báo học thuật đến mã nguồn thành một kho văn bản tiếng Anh 825 GiB, với trọng số lấy mẫu riêng cho từng nguồn. Trong thị giác máy tính, kết hợp một bộ dữ liệu gồm ảnh từ nhiều camera, khu vực và mùa khác nhau giúp giảm overfitting với một môi trường riêng lẻ và hạn chế thiên lệch bộ dữ liệu.
Tập hợp dữ liệu huấn luyện cần được đối soát giống như tập hợp dữ liệu BI. Tên lớp phải được ánh xạ vào cùng một hệ phân loại, để “car”, “automobile” và “vehicle” trở thành một lớp duy nhất hoặc được giữ riêng một cách có chủ đích. Định dạng và quy ước gán nhãn dữ liệu phải thống nhất, vì một nguồn có thể vẽ bounding box quanh phần nhìn thấy của người bị che khuất, trong khi nguồn khác bao lấy toàn bộ hình dạng; làm sạch dữ liệu loại bỏ ảnh xuất hiện trong nhiều nguồn. Các nhóm lấy dữ liệu kiểm tra từ miền triển khai, để các metric phản ánh mục tiêu thay vì nguồn dễ nhất trong tập hợp.
Ultralytics YOLO kết hợp các nguồn tại thời điểm huấn luyện thông qua dataset YAML, trong đó trường train nhận danh sách thư mục ảnh hoặc tệp .txt chứa đường dẫn ảnh; nhờ vậy, một lượt huấn luyện có thể lấy dữ liệu từ tập dữ liệu thực tế và tập dữ liệu tổng hợp, trong khi val chỉ liệt kê ảnh thực tế.
Kết hợp dữ liệu và các thuật ngữ liên quan#
- Nối dữ liệu: Kết hợp các bản ghi theo từng hàng dựa trên khóa khớp trong một truy vấn, trước khi tổng hợp; cách này làm trùng lặp giá trị khi các nguồn có độ chi tiết khác nhau.
- Tích hợp dữ liệu: Hợp nhất nguồn dữ liệu lâu dài vào kho dữ liệu hoặc hồ dữ liệu với một schema chung, thường thông qua pipeline trích xuất, chuyển đổi và tải (ETL).
- Kết hợp trong học tập tổ hợp: Kết hợp dự đoán của nhiều model thông qua một meta-model được huấn luyện trên tập dữ liệu giữ lại; đây là phương pháp đứng sau các bài dự thi đoạt giải Netflix Prize và không liên quan đến việc kết hợp nguồn dữ liệu.










