Wie kann ein synthetischer Datensatz mithilfe eines mit dem Originaldatensatz erlernten maschinellen Lernmodells generiert werden?


19

Im Allgemeinen basiert das maschinelle Lernmodell auf Datensätzen. Ich möchte wissen, ob es eine Möglichkeit gibt, einen synthetischen Datensatz mit einem derart geschulten Modell für maschinelles Lernen zu generieren, bei dem die ursprünglichen Datensatzmerkmale beibehalten werden.

[Originaldaten -> Modell für maschinelles Lernen erstellen -> ml-Modell verwenden, um synthetische Daten zu generieren .... !!!]

Ist es möglich ? Bitte weisen Sie mich auf verwandte Ressourcen hin, wenn dies möglich ist.

Antworten:


27

Der allgemeine Ansatz besteht darin, eine herkömmliche statistische Analyse Ihres Datensatzes durchzuführen, um einen mehrdimensionalen Zufallsprozess zu definieren, der Daten mit denselben statistischen Merkmalen generiert. Der Vorteil dieses Ansatzes ist, dass Ihre synthetischen Daten unabhängig von Ihrem ML-Modell sind, aber statistisch "nah" an Ihren Daten liegen. (siehe unten für die Diskussion Ihrer Alternative)

Im Wesentlichen schätzen Sie die mit dem Prozess verbundene multivariate Wahrscheinlichkeitsverteilung. Sobald Sie die Verteilung geschätzt haben, können Sie synthetische Daten mit der Monte-Carlo-Methode oder ähnlichen Methoden für wiederholte Stichproben erstellen. Wenn Ihre Daten einer parametrischen Verteilung ähneln (z. B. lognormal), ist dieser Ansatz einfach und zuverlässig. Der schwierige Teil besteht darin, die Abhängigkeit zwischen Variablen abzuschätzen. Siehe: https://www.encyclopediaofmath.org/index.php/Multi-dimensional_statistical_analysis .

Wenn Ihre Daten unregelmäßig sind, sind nicht parametrische Methoden einfacher und wahrscheinlich robuster. Die multivariate Kerndichteschätzung ist eine Methode, die für Menschen mit ML-Hintergrund zugänglich und attraktiv ist. Eine allgemeine Einführung und Links zu bestimmten Methoden finden Sie unter: https://en.wikipedia.org/wiki/Nonparametric_statistics .

Um zu bestätigen, dass dieser Prozess für Sie funktioniert hat, führen Sie den maschinellen Lernprozess mit den synthetisierten Daten erneut durch, und Sie sollten ein Modell erhalten, das Ihrem Original ziemlich nahe kommt. Wenn Sie die synthetisierten Daten in Ihr ML-Modell einfügen, sollten Sie ebenfalls Ausgaben erhalten, die eine ähnliche Verteilung aufweisen wie Ihre ursprünglichen Ausgaben.

Im Gegensatz dazu schlagen Sie Folgendes vor:

[Originaldaten -> Modell für maschinelles Lernen erstellen -> ml-Modell verwenden, um synthetische Daten zu generieren .... !!!]

Dies bewirkt etwas anderes als die soeben beschriebene Methode. Dies würde das umgekehrte Problem lösen : "Welche Eingaben könnten eine bestimmte Menge von Modellausgaben erzeugen". Sofern Ihr ML-Modell nicht zu stark an Ihre Originaldaten angepasst ist, sehen diese synthetisierten Daten nicht in jeder Hinsicht oder sogar in den meisten Fällen wie Ihre Originaldaten aus.

Betrachten Sie ein lineares Regressionsmodell. Dasselbe lineare Regressionsmodell kann identische Anpassungen an Daten mit sehr unterschiedlichen Merkmalen aufweisen. Eine berühmte Demonstration davon ist durch das Quartett von Anscombe .

Alle vier Sätze sind identisch, wenn sie mit einfachen zusammenfassenden Statistiken untersucht werden, unterscheiden sich jedoch erheblich, wenn sie grafisch dargestellt werden

Obwohl ich keine Referenzen habe, glaube ich, dass dieses Problem auch bei logistischen Regressionen, verallgemeinerten linearen Modellen, SVM und K-Mittel-Clustering auftreten kann.

Es gibt einige ML-Modelltypen (z. B. Entscheidungsbaum), bei denen es möglich ist, sie zu invertieren, um synthetische Daten zu generieren, obwohl dies einige Arbeit erfordert. Siehe: Synthetische Daten generieren, um mit Data Mining-Mustern übereinzustimmen .


Zeit, mehr über Monte-Carlo und mehrdimensionale statistische Analysen zu lesen ... danke für die nette Erklärung .. !!!
Hadooper

2

Es gibt einen sehr verbreiteten Ansatz für den Umgang mit unausgeglichenen Datensätzen namens SMOTE, bei dem synthetische Stichproben aus der Minderheitenklasse generiert werden. Es funktioniert, indem es Minderheitenstichproben stört, indem es die Unterschiede zu seinen Nachbarn verwendet (multipliziert mit einer Zufallszahl zwischen 0 und 1).

Hier ist ein Zitat aus dem Original:

Synthetische Samples werden folgendermaßen generiert: Nehmen Sie die Differenz zwischen dem betrachteten Merkmalsvektor (Sample) und seinem nächsten Nachbarn. Multiplizieren Sie diese Differenz mit einer Zufallszahl zwischen 0 und 1 und addieren Sie sie zum betrachteten Merkmalsvektor.

Weitere Informationen finden Sie hier .


1

Datenerweiterung ist der Prozess der synthetischen Erstellung von Stichproben auf der Grundlage vorhandener Daten. Bestehende Daten werden leicht gestört, um neuartige Daten zu generieren, die viele der ursprünglichen Dateneigenschaften beibehalten. Zum Beispiel, wenn es sich bei den Daten um Bilder handelt. Bildpixel können ausgetauscht werden. Viele Beispiele für Datenerweiterungstechniken finden Sie hier .

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.