Come generare un set di dati sintetico utilizzando il modello di apprendimento automatico appreso con un set di dati originale?


19

In generale, il modello di apprendimento automatico è basato su set di dati. Vorrei sapere se esiste un modo per generare un set di dati sintetico utilizzando un modello di apprendimento automatico addestrato che preservi le caratteristiche del set di dati originale?

[dati originali -> costruisci modello di apprendimento automatico -> usa il modello ml per generare dati sintetici .... !!!]

È possibile ? Per favore, indicami la risorsa correlata, se possibile.

Risposte:


27

L'approccio generale consiste nell'eseguire analisi statistiche tradizionali sul set di dati per definire un processo casuale multidimensionale che genererà dati con le stesse caratteristiche statistiche. La virtù di questo approccio è che i tuoi dati sintetici sono indipendenti dal tuo modello ML, ma statisticamente "vicini" ai tuoi dati. (vedi sotto per la discussione della tua alternativa)

In sostanza, state valutando la distribuzione di probabilità multivariata associata al processo. Una volta stimata la distribuzione, è possibile generare dati sintetici attraverso il metodo Monte Carlo o metodi di campionamento ripetuti simili. Se i tuoi dati assomigliano ad una distribuzione parametrica (es. Lognormale), questo approccio è semplice e affidabile. La parte difficile è stimare la dipendenza tra le variabili. Vedi: https://www.encyclopediaofmath.org/index.php/Multi-dimensional_statistical_analysis .

Se i tuoi dati sono irregolari, i metodi non parametrici sono più facili e probabilmente più robusti. La stima della densità kernale multivariata è un metodo accessibile e attraente per le persone con background ML. Per un'introduzione generale e collegamenti a metodi specifici, consultare: https://en.wikipedia.org/wiki/Nonparametric_statistics .

Per confermare che questo processo ha funzionato per te, ripeti il ​​processo di apprendimento automatico con i dati sintetizzati e dovresti finire con un modello abbastanza vicino al tuo originale. Allo stesso modo, se inserisci i dati sintetizzati nel tuo modello ML, dovresti ottenere output con una distribuzione simile a quelli originali.

Al contrario, stai proponendo questo:

[dati originali -> costruisci modello di apprendimento automatico -> usa il modello ml per generare dati sintetici .... !!!]

Ciò realizza qualcosa di diverso rispetto al metodo che ho appena descritto. Ciò risolverebbe il problema inverso : "quali input potrebbero generare un determinato set di output del modello". A meno che il tuo modello ML non sia adattato ai tuoi dati originali, questi dati sintetizzati no sembreranno i tuoi dati originali sotto tutti gli aspetti, o anche la maggior parte.

Considera un modello di regressione lineare. Lo stesso modello di regressione lineare può adattarsi in modo identico a dati con caratteristiche molto diverse. Una dimostrazione famosa di ciò è attraverso il quartetto di Anscombe .

Tutti e quattro gli insiemi sono identici quando esaminati usando semplici statistiche riassuntive, ma variano considerevolmente se rappresentati graficamente

Anche se non ho riferimenti, credo che questo problema possa sorgere anche nella regressione logistica, modelli lineari generalizzati, SVM e clustering dei mezzi K.

Esistono alcuni tipi di modelli ML (ad es. Albero decisionale) in cui è possibile invertirli per generare dati sintetici, anche se richiede del lavoro. Vedere: Generazione di dati sintetici per abbinare i modelli di data mining .


tempo di leggere di più su Monte-Carlo e l'analisi statistica multidimensionale ... grazie per la bella spiegazione .. !!!
hadooper,

2

Esiste un approccio molto comune per gestire set di dati non bilanciati, chiamato SMOTE, che genera campioni sintetici della classe di minoranza. Funziona perturbando i campioni di minoranza usando le differenze con i suoi vicini (moltiplicato per un numero casuale compreso tra 0 e 1)

Ecco una citazione dal loro documento originale:

I campioni sintetici vengono generati nel modo seguente: Prendi la differenza tra il vettore di funzione (campione) in esame e il suo vicino più vicino. Moltiplica questa differenza per un numero casuale compreso tra 0 e 1 e aggiungilo al vettore della funzione in esame.

Puoi trovare maggiori informazioni qui .


1

L'aumento dei dati è il processo di creazione sintetica di campioni basati su dati esistenti. I dati esistenti sono leggermente perturbati per generare nuovi dati che conservano molte delle proprietà dei dati originali. Ad esempio, se i dati sono immagini. I pixel dell'immagine possono essere scambiati. Molti esempi di tecniche di aumento dei dati sono disponibili qui .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.