Data Blending
La combinazione dei dati unisce dati provenienti da fonti distinte aggregandoli prima in base a un campo comune, sia negli strumenti di BI sia nei set di dati misti per l'addestramento di ML.
La combinazione dei dati riunisce dati provenienti da due o più fonti separate in un'unica vista o dataset, in genere aggregando ciascuna fonte in base a un campo di collegamento comune, come data, negozio o regione, prima di abbinarle. Il termine proviene dagli strumenti di business intelligence, in cui la combinazione affianca un budget di marketing mensile proveniente da un sistema alle vendite giornaliere di un altro, senza prima caricare entrambi in un unico database. Nel machine learning, combinare i dati indica anche l'unione di più dataset in un unico set di addestramento, per esempio immagini reali con dati sintetici o un dataset di benchmark pubblico con immagini provenienti dalle telecamere di un'azienda.
Come funziona la combinazione dei dati#
Nell'implementazione di Tableau, la prima fonte utilizzata in una vista è quella primaria e definisce la vista; ogni fonte secondaria viene interrogata separatamente, aggregata al livello dei campi di collegamento e associata alle righe corrispondenti. Il risultato si comporta come un left join, con una differenza nell'ordine delle operazioni: un join combina le righe e poi le aggrega, mentre una combinazione aggrega prima ciascuna fonte e poi le unisce. Quest'ordine conta quando le fonti hanno granularità diverse, come mostra questo esempio con pandas che combina ricavi giornalieri e spesa pubblicitaria mensile:
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)Il join a livello di riga riporta 273.000 di spesa pubblicitaria anziché i 9.000 effettivi, perché il budget mensile viene ripetuto in tutte le 28-31 righe giornaliere del mese. La combinazione mantiene una riga per mese e restituisce ricavi per euro speso in pubblicità pari a 3,17 a gennaio, 4,06 a febbraio e 2,41 a marzo.
La combinazione è adatta all'analisi esplorativa dei dati e ai dashboard per la visualizzazione dei dati, quando le fonti si trovano in sistemi diversi e servono insieme per rispondere a una domanda. I valori del campo di collegamento devono corrispondere esattamente, quindi «Lt. Blue» in una fonte non verrà associato a «Light Blue» in un'altra finché i nomi non vengono ripuliti o associati a un alias.
Combinazione dei dataset di addestramento#
I team di machine learning combinano i dataset per coprire più condizioni di quante ne contenga una singola fonte. I modelli linguistici di grandi dimensioni vengono addestrati con miscele di questo tipo: The Pile, pubblicato da EleutherAI nel 2020, unisce 22 fonti, dagli articoli accademici al codice, in un corpus di testi in inglese da 825 GiB, assegnando a ciascuna fonte un proprio peso di campionamento. Nella visione artificiale, combinare un dataset proveniente da numerose fotocamere, regioni e stagioni riduce l'overfitting a un singolo ambiente e contrasta il bias del dataset.
La combinazione dei dati di addestramento richiede la stessa riconciliazione di quella per la BI. I nomi delle classi devono corrispondere a una tassonomia comune, quindi «car», «automobile» e «vehicle» diventano un'unica classe oppure restano distinti per scelta. I formati e le convenzioni di annotazione dei dati devono essere uniformi: una fonte può tracciare un riquadro di delimitazione attorno alla parte visibile di una persona occlusa, mentre un'altra può includere il contorno completo; la pulizia dei dati rimuove le immagini presenti in più di una fonte. I team ricavano i dati di test dal dominio di deployment, così le metriche riflettono il dominio di destinazione anziché la fonte più semplice della miscela.
Ultralytics YOLO combina le fonti al momento dell'addestramento tramite il suo file YAML del dataset, il cui campo train accetta un elenco di directory di immagini oppure un file .txt contenente percorsi alle immagini; così un'unica esecuzione di addestramento può attingere a un dataset reale e a uno sintetico, mentre val elenca solo immagini reali.
Combinazione dei dati e termini correlati#
- Unione dei dati: combina i record riga per riga in base a chiavi corrispondenti all'interno di una query, prima di qualsiasi aggregazione, duplicando i valori quando le fonti hanno granularità diverse.
- Integrazione dei dati: consolida in modo permanente le fonti in un data warehouse o data lake con uno schema comune, di solito tramite pipeline di estrazione, trasformazione e caricamento (ETL).
- Combinazione nell'apprendimento d'insieme: combina le previsioni di diversi modelli mediante un meta-modello addestrato su un insieme di dati di controllo; questo approccio è alla base delle proposte vincitrici del Netflix Prize ed è distinto dalla combinazione di fonti di dati.










