synthetischen – chatgpz.de – KI-Tools & Praxiswissen http://chatgpz.de Unabhängige Tests, Anleitungen und Hintergründe zu KI-Tools. Fri, 24 Apr 2026 09:28:40 +0000 de-DE hourly 1 https://wordpress.org/?v=6.4.2 234900186 Ihre synthetischen Daten haben jeden Take a look at bestanden und dennoch Ihr Modell kaputt gemacht http://chatgpz.de/machine-learning/ihre-synthetischen-daten-haben-jeden-take-a-look-at-bestanden-und-dennoch-ihr-modell-kaputt-gemacht/ http://chatgpz.de/machine-learning/ihre-synthetischen-daten-haben-jeden-take-a-look-at-bestanden-und-dennoch-ihr-modell-kaputt-gemacht/#respond Fri, 24 Apr 2026 09:28:40 +0000 http://chatgpz.de/machine-learning/ihre-synthetischen-daten-haben-jeden-test-bestanden-und-dennoch-ihr-modell-kaputt-gemacht/ [ad_1]

sah solide aus. Die KL-Divergenz lag deutlich innerhalb akzeptabler Bereiche. Beim Prepare on Artificial, Take a look at on Actual (TSTR)-Take a look at erreichte das Modell eine Genauigkeit von 91 %, wenn es mit den synthetischen Daten trainiert und mit den realen Daten getestet wurde, was etwas niedriger conflict als die 93 %, die bei Verwendung der tatsächlichen Daten erreicht wurden – ein Unterschied, der deutlich innerhalb der Grenzen liegt, die das Crew für die Datentoleranzen festgelegt hatte. Darüber hinaus conflict das Risiko einer Mitgliedschaftsinferenz relativ gering. Der synthetische Datensatz wurde als sicher für die Verwendung im Modelltraining für maschinelles Lernen zertifiziert; die echten Daten wurden sicher gespeichert; und das Modell wurde trainiert.

Drei Monate später konnte das Betrugserkennungsmodell jedoch die zuvor erkannten Transaktionsklassen nicht mehr fehlerfrei erkennen, was nicht nur zu Leistungseinbußen führte, sondern sogar einen völligen Ausfall zur Folge hatte. Eine ganze Gruppe von Randverhaltensweisen wurde effektiv aus der Realität des Modells entfernt.

Bei der Untersuchung des Issues konnte das Crew keine technischen Fehler bei den synthetischen Daten feststellen. Alle vom Crew ermittelten Kennzahlen haben weiterhin bestanden.

Das Downside bestand jedoch darin, dass keine dieser Kennzahlen tatsächlich misst, was wirklich wichtig ist.

Das Drei-Metrik-System und warum es Praktiker in die Irre führt

Das Dreieck aus Treue, Nutzen und Privatsphäre ist zum Standardlexikon für die Bewertung der Qualität synthetischer Daten geworden, und das aus gutem Grund. Es erfasst die drei Qualitätsaspekte, die Sie wirklich erreichen möchten: Ähneln die synthetischen Daten den realen Daten (Wiedergabetreue); Trainieren die synthetischen Daten Modelle, die sich ähnlich verhalten wie Modelle, die auf realen Daten trainiert werden (Nützlichkeit); und schützen die synthetischen Daten die Identität der Personen, von denen die Daten stammen (Privatsphäre)?

Der Rahmen selbst ist solide. Bei der Umsetzung dieses Rahmenwerks treten jedoch Probleme auf.

Bild vom Autor mit LLM

Die meisten Praktiker bewerten die drei Qualitätsmetriken nacheinander und betrachten den erfolgreichen Abschluss jeder einzelnen als ausreichend für den Einsatz. Dieser Ansatz ist aus drei miteinander verbundenen Gründen fehlerhaft, die einer detaillierten Erläuterung bedürfen:

Downside Nr. 1: Genauigkeitsmetriken bewerten Randverteilungen, nicht Interaktionen zwischen Options

Die am häufigsten verwendeten Genauigkeitsmetriken KL-Divergenz, Kolmogorov-Smirnov-Take a look at, Gesamtvariationsdistanz und Wasserstein-Distanz messen alle den Grad, in dem die individuelle Merkmalsverteilung im synthetischen Datensatz mit dem Authentic verglichen wird.
Keines dieser Maße beurteilt, wie Merkmale miteinander korrelieren.

Dies ist eine subtile, aber entscheidende Unterscheidung. Stellen Sie sich beispielsweise einen Gesundheitsdatensatz vor, bei dem die synthetische Model die Randverteilungen des Patientenalters und der Schwere der Erkrankung genau wiedergibt und die Randverteilungen praktisch nicht unterscheidbar erscheinen. Es gibt jedoch eine geringfügige Diskrepanz in der Korrelation zwischen den beiden Merkmalen in den synthetischen Daten. Wenn ein Modell darauf trainiert wird, identifiziert das Modell daher die entsprechenden Signale separat, aber die falsche Interaktion zwischen den Signalen.

Im Jahr 2025 wurden in einer Peer-Assessment-Studie zu synthetischen Patientendaten fünf generative Modelle anhand von drei klinischen Datensätzen evaluiert. Die Ergebnisse zeigten, dass die Randverteilungen zwar quick immer sehr ähnlich waren, sich die Korrelationswerte jedoch um 20 Punkte oder mehr unterschieden. Die nachgelagerten Auswirkungen waren dramatisch: Bei einem Datensatz ergaben Modelle, die mit synthetischen Daten trainiert wurden, Werte für die Fläche unter der Kurve (AUC) von etwa 0,80, während bei Verwendung der realen Daten AUC-Werte von etwa 0,88 erzielt wurden. Die Variable, die darüber entschied, ob es sich um Ersteres oder Letzteres handelte, conflict eher die Erhaltung der Korrelation als die Genauigkeit der Randverteilung.

Um dies zu beheben: Führen Sie KS- und KL-Exams als Foundation durch, um die Ähnlichkeit der Randverteilungen zu bestätigen. Schließen Sie immer einen Vergleich der Korrelationsmatrizen ein. Berechnen Sie die Frobenius-Norm der Differenz, um einen einzelnen Wert zu erhalten, der den Umfang der verlorenen Korrelationsstruktur darstellt. Legen Sie einen Schwellenwert für den Verlust der Korrelationsstruktur fest, bevor Sie die Daten synthetisieren, nicht danach.

import numpy as np
import pandas as pd
def correlation_drift_score(real_df: pd.DataFrame, synthetic_df: pd.DataFrame) -> float:
“””
Computes the Frobenius norm of the distinction between
actual and artificial correlation matrices.
Decrease is healthier. A rating above 0.5 warrants investigation.
“””
real_corr = real_df.corr().fillna(0).values
synth_corr = synthetic_df.corr().fillna(0).values
return np.linalg.norm(real_corr — synth_corr, ‘fro’)
rating = correlation_drift_score(real_df, synthetic_df)
print(f”Correlation Drift Rating: {rating:.4f}”)

Eine Nummer. Führen Sie es jedes Mal aus. Wenn es über Ihrem Schwellenwert liegt, kehren Sie zum Generator zurück, bevor Sie etwas anderes tun.

Downside 2: TSTR-Utility-Scores verbergen das Tail-Verhalten, wenn sie nur die durchschnittliche Leistung darstellen

„Prepare on Artificial Information, Take a look at on Actual Information“ ist eine der „Goldstandards“-Nutzungsmetriken und verdient den Ruf, den sie erworben hat. Ein Modell anhand synthetischer Daten zu trainieren und sicherzustellen, dass es anhand realer Daten intestine funktioniert, ist sicherlich ein aussagekräftiger Beweis für die Nützlichkeit.

Allerdings basieren die TSTR-Werte auf Durchschnittswerten. Somit verbergen sie genau das, was in der Produktion kaputt gehen wird. Im Betrugserkennungsbeispiel am Anfang dieses Artikels betrug die Gesamt-TSTR-AUC 91 %, aber als die Leistung nach Dezil des Transaktionsvolumens aufgeschlüsselt wurde, sank das Dezil mit der niedrigsten Leistung (die seltensten Transaktionen mit dem höchsten Wert) auf 67 % (die synthetischen Daten generierten häufige Transaktionen sehr genau; die seltensten oder ungewöhnlichsten Szenarien stellten die synthetischen Daten jedoch nicht so genau dar). Daher lernte das Modell, das anhand synthetischer Daten trainiert wurde, die häufigsten Verhaltensweisen mit äußerster Genauigkeit und das am wenigsten häufige Verhalten mit geringer Genauigkeit.

Dies ist das Tail-Loss-Downside. Es wird in der Modellkollaps-Literatur formal behandelt (Alemohammad et al., 2024, ICLR) und kann auf jede Artwork von synthetischem Datengenerierungsprozess angewendet werden: Generative Modelle, die für die Generierung von Bereichen der Verteilung mit hoher Wahrscheinlichkeit optimiert sind, repräsentieren seltene Ereignisse zunehmend unterrepräsentiert. Der synthetische Datengenerator versucht nicht, seltene Ereignisse zu unterrepräsentieren – er stellt lediglich die Mathematik dar, wie diese Modelle lernen.

Repair: Melden Sie den TSTR nicht auf aggregierter Foundation. Geben Sie den TSTR separat für jedes Dezil an, in das Sie Ihre Zielvariable geschichtet haben. Die Dezile, in denen die synthetisch trainierte Leistung am stärksten von der actual trainierten Leistung abweicht, zeigen Ihnen genau an, welche Dezile Ihre synthetischen Daten nicht genau wiedergeben.

from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import roc_auc_score
import pandas as pd
import numpy as np
def tstr_by_decile(
real_train: pd.DataFrame,
synthetic_train: pd.DataFrame,
real_test: pd.DataFrame,
target_col: str,
n_deciles: int = 10
) -> pd.DataFrame:
“””
Runs TSTR analysis stratified by deciles of the goal variable.
Returns a comparability dataframe for actual vs artificial coaching efficiency.
“””
outcomes = ()
real_test = real_test.copy()
real_test(‘decile’) = pd.qcut(
real_test(target_col), q=n_deciles, labels=False, duplicates=’drop’
)
feature_cols = (c for c in real_train.columns if c != target_col)
for label, train_df in ((“Actual”, real_train), (“Artificial”, synthetic_train)):
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.match(train_df(feature_cols), train_df(target_col))
for decile_id, group in real_test.groupby(‘decile’):
if len(group(target_col).distinctive()) < 2:
proceed
rating = roc_auc_score(
group(target_col),
clf.predict_proba(group(feature_cols))(:, 1)
)
outcomes.append({
‘Prepare Supply’: label,
‘Decile’: decile_id,
‘AUC-ROC’: spherical(rating, 4)
})
return pd.DataFrame(outcomes).pivot(
index=’Decile’, columns=’Prepare Supply’, values=’AUC-ROC’
)
decile_results = tstr_by_decile(real_train, synthetic_train, real_test, ‘fraud_flag’)
print(decile_results)
Bild vom Autor mit LLM

Downside 3: Datenschutzmetriken sollten alle Funktionen gleich behandeln, obwohl dies nicht der Fall sein sollte.

Das Risiko einer Mitgliedschaftsinferenz ist die häufigste Datenschutzmetrik. Das Risiko einer Mitgliedschaftsinferenz stellt eine Frage: Kann ein Angreifer feststellen, ob ein bestimmter Datensatz im Trainingsdatensatz vorhanden ist? Niedrige Werte sind wirklich gute Nachrichten.

Dies wird jedoch auf Datensatzebene gemessen und misst daher das Risiko, einen Datensatz als Ganzes zu identifizieren. Die riskantere Angriffsart ist die Attributinferenz; Kann ein Angreifer anhand öffentlich verfügbarer Informationen über die Merkmale einer Particular person ein sensibles Attribut in den synthetischen Daten identifizieren? Dies ist das Angriffsmodell, mit dem sich die Aufsichtsbehörden im Rahmen des DSGVO-Requirements zur Neuidentifizierung befassen, und es funktioniert auf der Kombinationsebene (nicht auf der Datensatzebene).

Ein Consensus Privateness Metrics Framework (Pilgram et al., 2025) definiert drei verschiedene Arten von Risiken: Herausgreifen (Identifizieren einer einzelnen Particular person), Verknüpfbarkeit (Datensätze über Datensätze hinweg verknüpfen) und Rückschluss (Ableiten sensibler Attribute aus Kombinationen von Quasi-Identifikatoren). Praktiker messen quick ausschließlich den ersten Typ (Singling Out). Die dritte Artwork von Risiko (Inferenz) ist der Bereich, in dem tatsächlich vertrauliche Daten verloren gehen und der für die standardmäßige Mitglieder-Inferenzbewertung völlig unsichtbar ist.

Repair: Priorisieren Sie Ihre Funktionen vor der Synthese basierend auf der Empfindlichkeit. Kategorisieren Sie sie in öffentlich (Merkmale, die ohne Einschränkung in die synthetischen Daten einbezogen werden können), Quasi-Identifikatoren (Kombinationen öffentlicher Merkmale, die eine Verknüpfung ermöglichen können) und sensibel (die Attribute, die Sie schützen möchten). Messen Sie das Risiko der Mitgliedschaftsinferenz nur für die sensiblen Options und beziehen Sie nicht den gesamten Datensatz mit ein. Führen Sie als Nächstes einen Attributinferenztest durch: Trainieren Sie ein externes Modell, um jedes smart Merkmal basierend auf den Quasi-Identifikatoren mithilfe synthetischer Daten vorherzusagen. Vergleichen Sie die Genauigkeit des trainierten Modells mit einem Modell, das darauf trainiert wurde, jedes smart Merkmal auf der Grundlage derselben Quasi-Identifikatoren, aber unter Verwendung zurückgehaltener Daten vorherzusagen. Wenn der Genauigkeitsunterschied gering ist, sind Ihre synthetischen Daten verloren gegangen.

from sklearn.ensemble import GradientBoostingClassifier
def attribute_inference_risk(
synthetic_df: pd.DataFrame,
real_test_df: pd.DataFrame,
quasi_identifiers: record,
sensitive_feature: str
) -> dict:
“””
Estimates attribute inference threat by checking how nicely
a mannequin educated on artificial information predicts a delicate function
utilizing solely quasi-identifiers.
Excessive accuracy on actual take a look at information = artificial information is leaking
details about the delicate attribute.
“””
clf = GradientBoostingClassifier(random_state=42)
clf.match(synthetic_df(quasi_identifiers), synthetic_df(sensitive_feature))
real_accuracy = clf.rating(
real_test_df(quasi_identifiers),
real_test_df(sensitive_feature)
)
majority_class_accuracy = (
real_test_df(sensitive_feature).value_counts(normalize=True).max()
)
elevate = real_accuracy — majority_class_accuracy
return {
“inference_accuracy_on_real”: spherical(real_accuracy, 4),
“baseline_accuracy”: spherical(majority_class_accuracy, 4),
“inference_lift”: spherical(elevate, 4),
“risk_level”: “HIGH” if elevate > 0.10 else “MODERATE” if elevate > 0.05 else “LOW”
}
threat = attribute_inference_risk(
synthetic_df, real_test_df,
quasi_identifiers=(‘age_band’, ‘area’, ‘employment_status’),
sensitive_feature=’income_bracket’
)
print(threat)

Wenn Sie für die Steigerung einen „über 0,10“ (oder eine beliebige andere Zahl) sehen, bedeutet dies, dass Ihr synthetischer Datensatz die sensiblen Attribute Ihrer Benutzer besser identifizieren kann als der Zufall. Es spielt keine Rolle, ob Ihr Membership Inference Rating (MIS) unter 0,10 oder einem anderen Schwellenwert liegt; das ist irrelevant.

Das einheitliche Bewertungsrahmenwerk

Wie bereits erwähnt, handelt es sich bei diesen drei Herausforderungen im Wesentlichen um eine Herausforderung: Sie ergeben sich jeweils aus der Verwendung von Metriken zur Bewertung der Merkmale eines Datensatzes und der anschließenden Verwendung derselben Metriken als Grundlage für die Zertifizierung eines Datensatzes für den Produktionseinsatz. Das sind zwei sehr unterschiedliche Aufgaben.

Nachfolgend finden Sie eine vollständige Checkliste der Bewertungen, die die einzelnen Bewertungslücken schließen:

Dimension, Standardmetrik, was es vermisst und erweiterte Prüfung

Treue

  • KL-Divergenz, KS-Take a look at
  • Korrelationsstruktur zwischen Options
  • Korrelationsdrift-Rating (Frobenius-Norm)

Dienstprogramm

  • TSTR durchschnittliche AUC
  • Tail-Efficiency bei seltenen Ereignissen
  • TSTR stratifiziert nach Zieldezil

Privatsphäre

  • Risiko einer Mitgliedschaftsinferenz
  • Attributinferenz über Quasi-Identifikatoren
  • Attribut-Inferenz-Carry-Take a look at
Bild vom Autor mit LLM

Der richtige Schwellenwert hängt von Ihrem Anwendungsfall ab

Der am meisten übersehene Aspekt des Runden Tisches zwischen FCA, ICO und Alan Turing Institute zur Validierung synthetischer Daten conflict dieser: „Null Risiko = Null Nutzen.“ Synthetische Daten können nicht vollständig privat und gleichzeitig ebenso nützlich sein. Die Frage lautet nicht mehr: „Gehen die Daten weiter?“ Die Frage lautet: „Erfüllen die Kompromisse die Anforderungen der Anwendungsfälle?“

Die synthetischen Daten, die für interne QS-Exams einer Anwendung verwendet werden, erfordern eine hohe Wiedergabetreue und strukturelle Genauigkeit. Da der Zugriff auf die Daten jedoch kontrolliert wird, wird der Datenschutz weniger groß geschrieben.

Andererseits müssen die Daten, die Sie an externe Benutzer, organisationsübergreifend, an Aufsichtsbehörden oder zu Forschungszwecken weitergeben, über höhere Datenschutzgarantien verfügen. In solchen Fällen können Sie eine geringere statistische Genauigkeit der synthetischen Daten akzeptieren.

Definieren Sie daher bei der Entwicklung Ihres Bewertungsrahmens den Anwendungsfall, bevor Sie Ihre synthetischen Daten auswerten. Beantworten Sie die folgenden Fragen, bevor Sie synthetische Daten generieren:

1) Wer hat unter welchen Bedingungen Zugriff auf diesen synthetischen Datensatz? Dies legt Ihren Schwellenwert für den Datenschutz fest.

2) Welche nachgelagerte Aufgabe werden diese Daten trainieren oder testen? Dies definiert die Nutzmetriken, die sich auf Tragfähigkeit und Lärm auswirken.

3) Sind für die nachgelagerte Aufgabe Funktionen erforderlich? Wenn ja, definiert dies, wo Sie die Treue wahren müssen und wo Sie Abweichungen tolerieren können.

Legen Sie diese Schwellenwerte basierend auf Ihren Antworten auf die oben genannten Fragen fest, bevor Sie die Synthese durchführen. Führen Sie Ihre Auswertungen anhand Ihrer festgelegten Schwellenwerte durch (nicht der vom Instrument standardmäßig gemeldeten Schwellenwerte).

Fazit: Die Qualitätslücke ist eine Messlücke

Das Betrugserkennungsmodell scheiterte nicht daran, dass die synthetischen Daten unzureichend waren. Das Modell scheiterte, weil das Crew die falschen Eigenschaften bewertete und aufgrund der korrekten Messungen falsche Schlussfolgerungen zog. Treue, Nützlichkeit und Privatsphäre sind die richtigen Dimensionen.

Die Standardmetriken innerhalb jeder Dimension sind gute Ausgangspunkte. Sie wurden jedoch zur Messung und Beschreibung von Daten entwickelt und nicht zur Zertifizierung von Daten für den Produktionsgebrauch. Um diese Messlücke zu schließen, sind drei zusätzliche Bewertungen erforderlich, die die Lücken in den Standardmetriken identifizieren; Korrelationsdrift, Endnutzen professional Dezil und Attributinferenzrisiko.

Für diese drei Beurteilungen sind keine speziellen Instruments erforderlich. Die drei in diesem Artikel beschriebenen Implementierungen laufen im Commonplace-Scikit-Be taught und NumPy. Die schwierige Arbeit besteht nicht darin, den Code zu schreiben, sondern darin, die richtigen Fragen zu stellen, bevor Sie Ihr Modell in Produktion bringen.

[ad_2]

]]>
http://chatgpz.de/machine-learning/ihre-synthetischen-daten-haben-jeden-take-a-look-at-bestanden-und-dennoch-ihr-modell-kaputt-gemacht/feed/ 0 18090
Die 5 besten Produkte zur synthetischen Datengenerierung, die Sie im Jahr 2026 im Auge behalten sollten http://chatgpz.de/data-science/die-5-besten-produkte-zur-synthetischen-datengenerierung-die-sie-im-jahr-2026-im-auge-behalten-sollten/ http://chatgpz.de/data-science/die-5-besten-produkte-zur-synthetischen-datengenerierung-die-sie-im-jahr-2026-im-auge-behalten-sollten/#respond Sat, 21 Feb 2026 22:15:07 +0000 http://chatgpz.de/data-science/die-5-besten-produkte-zur-synthetischen-datengenerierung-die-sie-im-jahr-2026-im-auge-behalten-sollten/ [ad_1]

Kurz vor der Tür zum Jahr 2026 hat sich die synthetische Datengenerierung (SDG) von einer Nischenfunktion zu einer zentralen Säule der KI-Perspektive von Unternehmen entwickelt. Es unterstützt jetzt das Modelltraining, unterstützt sichere Produkttests und schützt wise Daten in stark regulierten Umgebungen.

Gartner schätzt das Drei von vier Unternehmen werden bis 2026 generative KI nutzen, um synthetische Kundendaten zu generieren. Dies unterstreicht deutlich die entscheidende Rolle synthetischer Datensätze. Hinzu kommt der wachsende Compliance-Druck und die beschleunigte Einführung von KI. Unternehmen wenden sich jetzt Plattformen zu, die qualitativ hochwertige, datenschutzsichere Datensätze in großem Maßstab bereitstellen können.

Hier sind die Prime 5 der Produkte zur Generierung synthetischer Daten im Jahr 2026, gefolgt von einer starken Auswahl an Instruments, die die nächste Welle der Innovation im Bereich synthetischer Daten vorantreiben.

1. K2view – Der Maßstab für unternehmensweite SDG

Auch im Jahr 2026 soll K2view unangefochtener Spitzenreiter in dieser Liga bleiben.

Die eigenständige Lösung hat den Lebenszyklus synthetischer Daten über die Erstellung, Verwaltung und Nutzung hinweg neu definiert. Als ganzheitliche Lösung verwaltet K2view alles von der Quellenextraktion und Teilmenge bis hin zur PII-Erkennung, Maskierung und KI-gestützten regelbasierten Generierung. Bekanntheit erlangte K2view durch seinen entitätsbasierten Mikrodatenbank-Ansatz, der sich als äußerst erfolgreich erwies. Es gewährleistet Vertrauenswürdigkeit, Analysebereitschaft und referenzielle Integrität für strukturierte und unstrukturierte Datensätze.

Ihre Software zur Generierung synthetischer Daten bietet eine intuitive Schnittstelle ohne Code, die es Testern ermöglicht, schnell Daten für Echtzeitszenarien zu generieren. Somit unterstützt es Datenteilmengen, LLM-Datenvorbereitung, Klonen und Leistungstests von Datensätzen.

Im Gegensatz zu herkömmlichen Instruments lässt sich K2view nahtlos in Unternehmensökosysteme integrieren und automatisiert CI/CD-Pipelines, wodurch eine schnelle Bereitstellung synthetischer Daten in jedem Zielsystem ermöglicht wird. Im Knowledge Integration MQ von Gartner durchweg als Visionär bewertet, K2view ist die erste Wahl für Unternehmen, die Genauigkeit, Skalierbarkeit und Compliance fordern.

2. Hauptsächlich KI

Meistens bietet KI synthetische Zwillinge mit hoher Wiedergabetreue für KI-Coaching. Aufgrund seiner Fähigkeit, reale Verteilungen nachzubilden und gleichzeitig einen integrierten Datenschutz zu bieten, ist es nach wie vor eines der am häufigsten verwendeten SDG-Instruments. Es bietet Genauigkeitsbewertung, Unterstützung für multirelationale Datensätze und eine intuitive Benutzeroberfläche, die auch für technisch nicht versierte Benutzer zugänglich ist.

Am besten für: Unternehmen legen Wert auf die schnelle Erstellung von Datensätzen für KI und Analysen.

3. YData-Cloth

YData bietet einheitliches Datenprofiling und SDG für KI-Systeme. Seine Struktur stärkt KI-Entwicklungsabläufe durch die Kombination von Datenprofilierung, Qualitätsbewertung und Generierung synthetischer Daten mehrerer Typen. Es eignet sich intestine für Unternehmen, die ML-Modelle für strukturierte, relationale und Zeitreihen-Datenquellen erstellen. Die No-Code- und SDK-Optionen bieten Flexibilität sowohl für Geschäftsanwender als auch für Datenwissenschaftler

Am besten geeignet für: ML-gesteuerte Organisationen.

4. Gretel-Workflows

Ingenieurteams bevorzugen Gretel aufgrund seiner starken Automatisierungsfähigkeiten, die es ermöglichen, synthetische Daten direkt in CI/CD-Prozesse und ML-Pipelines einzubinden. Es funktioniert sowohl mit strukturierten als auch mit unstrukturierten Daten intestine und eignet sich aufgrund seiner No-Code- und Low-Code-Orchestrierungsoptionen superb für entwicklergesteuerte Umgebungen.

Am besten für: DevOps-Groups integrieren SDG in automatisierte Arbeitsabläufe.

5. Hazy (SAS Knowledge Maker)

Hazy konzentriert sich auf die Generierung datenschutzsicherer synthetischer Daten mithilfe differenzieller Privatsphäre und eignet sich daher hervorragend für Branchen wie Banken, Versicherungen und Fintech. Es bietet Integrationsfunktionen auf Unternehmensebene und sichere Bereitstellungsoptionen, einschließlich lokaler Umgebungen. Organisationen entscheiden sich oft für Hazy, wenn Compliance und Governance absolute Anforderungen sind.

Am besten für: stark regulierte Sektoren.

[ad_2]

]]> http://chatgpz.de/data-science/die-5-besten-produkte-zur-synthetischen-datengenerierung-die-sie-im-jahr-2026-im-auge-behalten-sollten/feed/ 0 16502 Wie bewerten Sie Ihre RAG-Pipeline mit synthetischen Daten? http://chatgpz.de/artificial-intelligence/wie-bewerten-sie-ihre-rag-pipeline-mit-synthetischen-daten/ http://chatgpz.de/artificial-intelligence/wie-bewerten-sie-ihre-rag-pipeline-mit-synthetischen-daten/#respond Mon, 13 Oct 2025 22:42:33 +0000 http://chatgpz.de/artificial-intelligence/wie-bewerten-sie-ihre-rag-pipeline-mit-synthetischen-daten/ [ad_1]

Die Evaluierung von LLM-Anwendungen, insbesondere solchen, die RAG (Retrieval-Augmented Era) verwenden, ist wichtig, wird aber oft vernachlässigt. Ohne eine ordnungsgemäße Bewertung ist es quick unmöglich zu bestätigen, ob der Retriever Ihres Methods effektiv ist, ob die Antworten des LLM in den Quellen verankert sind (oder halluzinieren) und ob die Kontextgröße optimum ist.

Da bei ersten Checks die notwendigen realen Benutzerdaten für eine Basislinie fehlen, sind synthetische Bewertungsdatensätze eine praktische Lösung. In diesem Artikel erfahren Sie, wie Sie diese realistischen Testfälle mit DeepEval generieren, einem Open-Supply-Framework, das die LLM-Bewertung vereinfacht und es Ihnen ermöglicht, Ihre RAG-Pipeline zu vergleichen, bevor sie reside geht. Schauen Sie sich das an VOLLSTÄNDIGE CODES hier.

Installieren der Abhängigkeiten

!pip set up deepeval chromadb tiktoken pandas

OpenAI-API-Schlüssel

Da DeepEval externe Sprachmodelle nutzt, um seine detaillierten Bewertungsmetriken durchzuführen, ist für die Ausführung dieses Tutorials ein OpenAI-API-Schlüssel erforderlich.

  • Wenn Sie neu auf der OpenAI-Plattform sind, müssen Sie möglicherweise Rechnungsdetails hinzufügen und eine kleine Mindestzahlung (normalerweise 5 $) leisten, um Ihren API-Zugriff vollständig zu aktivieren.

Den Textual content definieren

In diesem Schritt erstellen wir manuell eine Textvariable, die als Quelldokument für die Generierung synthetischer Bewertungsdaten dient.

Dieser Textual content kombiniert vielfältige Sachinhalte aus mehreren Bereichen – darunter Biologie, Physik, Geschichte, Weltraumforschung, Umweltwissenschaften, Medizin, Informatik und antike Zivilisationen – um sicherzustellen, dass das LLM über reichhaltiges und abwechslungsreiches Materials verfügt, mit dem es arbeiten kann.

Der Synthesizer von DeepEval wird später:

  • Teilen Sie diesen Textual content in semantisch zusammenhängende Abschnitte auf.
  • Wählen Sie aussagekräftige Kontexte aus, die zur Generierung von Fragen geeignet sind, und
  • Erstellen Sie synthetische „goldene“ Paare – (Eingabe, erwartete_Ausgabe) – die echte Benutzeranfragen und ideale LLM-Antworten simulieren.

Nachdem wir die Textvariable definiert haben, speichern wir sie als .txt-Datei, damit DeepEval sie später lesen und verarbeiten kann. Sie können jedes andere Textdokument Ihrer Wahl verwenden – etwa einen Wikipedia-Artikel, eine Forschungszusammenfassung oder einen technischen Weblog-Beitrag – solange es informative und intestine strukturierte Inhalte enthält. Schauen Sie sich das an VOLLSTÄNDIGE CODES hier.

textual content = """
Crows are among the many smartest birds, able to utilizing instruments and recognizing human faces even after years.
In distinction, the archerfish shows exceptional precision, capturing jets of water to knock bugs off branches.
In the meantime, on the earth of physics, superconductors can carry electrical present with zero resistance -- a phenomenon
found over a century in the past however nonetheless unlocking new applied sciences like quantum computer systems in the present day.

Shifting to historical past, the Library of Alexandria was as soon as the most important middle of studying, however a lot of its assortment was
misplaced in fires and wars, turning into a logo of human curiosity and fragility. In area exploration, the Voyager 1 probe,
launched in 1977, has now left the photo voltaic system, carrying a golden report that captures sounds and pictures of Earth.

Nearer to residence, the Amazon rainforest produces roughly 20% of the world's oxygen, whereas coral reefs -- typically referred to as the
"rainforests of the ocean" -- assist practically 25% of all marine life regardless of protecting lower than 1% of the ocean ground.

In drugs, MRI scanners use robust magnetic fields and radio waves
to generate detailed photos of organs with out dangerous radiation.

In computing, Moore's Legislation noticed that the variety of transistors
on microchips doubles roughly each two years, although current advances
in AI chips have shifted that development.

The Mariana Trench is the deepest a part of Earth's oceans,
reaching practically 11,000 meters beneath sea degree, deeper than Mount Everest is tall.

Historic civilizations just like the Sumerians and Egyptians invented
mathematical programs 1000's of years earlier than trendy algebra emerged.
"""
with open("instance.txt", "w") as f:
    f.write(textual content)

Generierung synthetischer Bewertungsdaten

In diesem Code verwenden wir die Synthesizer-Klasse aus der DeepEval-Bibliothek, um automatisch synthetische Bewertungsdaten – auch Goldens genannt – aus einem vorhandenen Dokument zu generieren. Das Modell „gpt-4.1-nano“ wurde aufgrund seines geringen Gewichts ausgewählt. Wir stellen den Pfad zu unserem Dokument (instance.txt) bereit, das sachliche und beschreibende Inhalte zu verschiedenen Themen wie Physik, Ökologie und Informatik enthält. Der Synthesizer verarbeitet diesen Textual content, um aussagekräftige Frage-Antwort-Paare (Goldens) zu erstellen, die später zum Testen und Benchmarken der LLM-Leistung bei Verständnis- oder Abrufaufgaben verwendet werden können.

Das Skript generiert erfolgreich bis zu sechs synthetische Goldens. Die generierten Beispiele sind recht umfangreich – in einer Eingabe wird beispielsweise nach „EBewerten Sie die kognitiven Fähigkeiten von Rabenvögeln bei Gesichtserkennungsaufgaben“, während ein anderer erforscht „Der Sauerstoffbeitrag des Amazonas und seine Rolle in Ökosystemen.“ Jede Ausgabe enthält eine kohärente erwartete Antwort und direkt aus dem Dokument abgeleitete Kontextausschnitte, die zeigen, wie DeepEval automatisch hochwertige synthetische Datensätze für die LLM-Bewertung erstellen kann. Schauen Sie sich das an VOLLSTÄNDIGE CODES hier.

from deepeval.synthesizer import Synthesizer

synthesizer = Synthesizer(mannequin="gpt-4.1-nano")

# Generate artificial goldens out of your doc
synthesizer.generate_goldens_from_docs(
    document_paths=("instance.txt"),
    include_expected_output=True
)

# Print generated outcomes
for golden in synthesizer.synthetic_goldens(:3):  
    print(golden, "n")

Verwendung von EvolutionConfig zur Kontrolle der Eingabekomplexität

In diesem Schritt konfigurieren wir die EvolutionConfig, um zu beeinflussen, wie der DeepEval-Synthesizer komplexere und vielfältigere Eingaben generiert. Durch die Zuweisung von Gewichtungen zu verschiedenen Evolutionstypen – wie z ARGUMENTATION, MULTIKONTEXT, VERGLEICH, HYPOTHETISCHUnd IN_BREADTH – Wir leiten das Modell an, um Fragen zu erstellen, die sich in Argumentationsstil, Kontextverwendung und Tiefe unterscheiden.

Der num_evolutions Der Parameter gibt an, wie viele Entwicklungsstrategien auf jeden Textblock angewendet werden, sodass mehrere Perspektiven aus demselben Quellmaterial synthetisiert werden können. Dieser Ansatz trägt dazu bei, umfassendere Bewertungsdatensätze zu generieren, die die Fähigkeit eines LLM testen, differenzierte und vielschichtige Abfragen zu verarbeiten.

Die Ausgabe zeigt, wie sich diese Konfiguration auf die generierten Goldens auswirkt. In einer Eingabe wird beispielsweise nach dem Werkzeuggebrauch und der Gesichtserkennung von Krähen gefragt, was den LLM dazu veranlasst, eine detaillierte Antwort zu Problemlösung und adaptivem Verhalten zu erstellen. Ein weiterer Beitrag vergleicht die goldene Schallplatte von Voyager 1 mit der Bibliothek von Alexandria, was eine Argumentation über mehrere Kontexte und historische Bedeutung hinweg erfordert.

Jeder Golden umfasst den Originalkontext, angewandte Evolutionstypen (z. B. Hypothetisch, In-Breadth, Reasoning) und eine synthetische Qualitätsbewertung. Selbst mit einem einzigen Dokument erstellt dieser evolutionsbasierte Ansatz vielfältige, hochwertige synthetische Bewertungsbeispiele zum Testen der LLM-Leistung. Schauen Sie sich das an VOLLSTÄNDIGE CODES hier.

from deepeval.synthesizer.config import EvolutionConfig, Evolution

evolution_config = EvolutionConfig(
    evolutions={
        Evolution.REASONING: 1/5,
        Evolution.MULTICONTEXT: 1/5,
        Evolution.COMPARATIVE: 1/5,
        Evolution.HYPOTHETICAL: 1/5,
        Evolution.IN_BREADTH: 1/5,
    },
    num_evolutions=3
)

synthesizer = Synthesizer(evolution_config=evolution_config)
synthesizer.generate_goldens_from_docs(("instance.txt"))

Durch diese Fähigkeit, hochwertige, komplexe synthetische Daten zu generieren, umgehen wir die anfängliche Hürde fehlender echter Benutzerinteraktionen. Durch die Nutzung des Synthesizers von DeepEval – insbesondere unter Anleitung von EvolutionConfig – gehen wir weit über einfache Frage-Antwort-Paare hinaus.

Das Framework ermöglicht es uns, strenge Testfälle zu erstellen, die die Grenzen des RAG-Methods ausloten und alles von Multikontextvergleichen und hypothetischen Szenarien bis hin zu komplexen Überlegungen abdecken.

Dieser umfangreiche, individuell erstellte Datensatz bietet eine konsistente und vielfältige Foundation für das Benchmarking und ermöglicht es Ihnen, Ihre Abruf- und Generierungskomponenten kontinuierlich zu iterieren, Vertrauen in die Erdungsfunktionen Ihrer RAG-Pipeline aufzubauen und sicherzustellen, dass sie zuverlässige Leistung liefert, lange bevor sie überhaupt ihre erste Dwell-Abfrage verarbeitet. Schauen Sie sich das an VOLLSTÄNDIGE CODES hier.

Die obige iterative RAG-Verbesserungsschleife nutzt die synthetischen Daten von DeepEval, um einen kontinuierlichen, strengen Testzyklus für Ihre Pipeline einzurichten. Durch die Berechnung wesentlicher Metriken wie Erdung und Kontext erhalten Sie das notwendige Suggestions, um Ihre Retriever- und Modellkomponenten iterativ zu verfeinern. Dieser systematische Prozess stellt sicher, dass Sie ein verifiziertes, hochzuverlässiges RAG-System erhalten, das die Zuverlässigkeit vor der Bereitstellung aufrechterhält.


Schauen Sie sich das an VOLLSTÄNDIGE CODES hier. Schauen Sie sich gerne bei uns um GitHub-Seite für Tutorials, Codes und Notebooks. Sie können uns auch gerne weiter folgen Twitter und vergessen Sie nicht, bei uns mitzumachen 100.000+ ML SubReddit und Abonnieren Unser Publication. Warten! Bist du im Telegram? Jetzt können Sie uns auch per Telegram kontaktieren.


Ich habe einen Abschluss im Bauingenieurwesen (2022) von Jamia Millia Islamia, Neu-Delhi, und interessiere mich sehr für Datenwissenschaft, insbesondere für neuronale Netze und deren Anwendung in verschiedenen Bereichen.

[ad_2]

]]>
http://chatgpz.de/artificial-intelligence/wie-bewerten-sie-ihre-rag-pipeline-mit-synthetischen-daten/feed/ 0 13145
Validierung der kausalen Auswirkungen der synthetischen Kontrollmethode | von Ryan O’Sullivan | Juni 2024 http://chatgpz.de/machine-learning/validierung-der-kausalen-auswirkungen-der-synthetischen-kontrollmethode-von-ryan-osullivan-juni-2024/ http://chatgpz.de/machine-learning/validierung-der-kausalen-auswirkungen-der-synthetischen-kontrollmethode-von-ryan-osullivan-juni-2024/#respond Sun, 09 Jun 2024 04:26:01 +0000 http://chatgpz.de/machine-learning/validierung-der-kausalen-auswirkungen-der-synthetischen-kontrollmethode-von-ryan-osullivan-juni-2024/ [ad_1]

Kausale KI: Erforschung der Integration kausalen Denkens in maschinelles Lernen

Foto von Irina Inga An Unsplash

Willkommen zu meiner Serie über kausale KI, in der wir die Integration kausalen Denkens in Modelle des maschinellen Lernens untersuchen. Freuen Sie sich auf eine Reihe praktischer Anwendungen in unterschiedlichen Geschäftskontexten.

Im letzten Artikel behandelten wir Messung des intrinsischen kausalen Einflusses Ihrer Marketingkampagnen. In diesem Artikel werden wir uns mit Validierung der kausalen Wirkung der synthetischen Kontrollen.

Wenn Sie den letzten Artikel zum Thema intrinsischer kausaler Einfluss verpasst haben, können Sie ihn hier nachlesen:

In diesem Artikel konzentrieren wir uns auf das Verständnis der synthetischen Kontrollmethode und untersuchen, wie wir die geschätzten kausalen Auswirkungen validieren können.

Folgende Aspekte werden behandelt:

  • Was ist die synthetische Kontrollmethode?
  • Welche Herausforderung versucht es zu bewältigen?
  • Wie können wir die geschätzten kausalen Auswirkungen validieren?
  • Eine Python-Fallstudie mit realistischen Google-Trenddaten, die zeigt, wie wir die geschätzte kausale Auswirkung der synthetischen Kontrollen validieren können.

Das vollständige Notizbuch finden Sie hier:

Was ist es?

Die synthetische Kontrollmethode ist eine kausale Technik, die verwendet werden kann, um die kausale Wirkung einer Intervention oder Behandlung zu beurteilen, wenn eine randomisierte kontrollierte Studie (RCT) oder ein A/B-Check nicht möglich struggle. Sie wurde ursprünglich 2003 von Abadie und Gardezabal vorgeschlagen. Das folgende Dokument enthält eine großartige Fallstudie, die Ihnen dabei hilft, die vorgeschlagene Methode zu verstehen:

https://net.stanford.edu/~jhain/Paper/JASA2010.pdf

Vom Benutzer erstelltes Bild

Lassen Sie uns einige der Grundlagen selbst durchgehen … Die synthetische Kontrollmethode erstellt eine kontrafaktische Model der Behandlungseinheit, indem sie eine gewichtete Kombination von Kontrolleinheiten erstellt, die weder die Intervention noch die Behandlung erhalten haben.

  • Behandelte Einheit: Die Einheit, die die Intervention erhält.
  • Steuergeräte: Eine Reihe ähnlicher Einheiten, bei denen die Intervention nicht durchgeführt wurde.
  • Kontrafaktisch: Erstellt als gewichtete Kombination der Kontrolleinheiten. Ziel ist es, für jede Kontrolleinheit Gewichte zu finden, die zu einem kontrafaktischen Ergebnis führen, das der behandelten Einheit in der Zeit vor der Intervention möglichst nahe kommt.
  • Kausale Auswirkungen: Der Unterschied zwischen der Behandlungseinheit nach der Intervention und der kontrafaktischen Scenario.

Wenn wir die Dinge wirklich vereinfachen wollten, könnten wir es als lineare Regression betrachten, bei der jede Kontrolleinheit ein Merkmal und die Behandlungseinheit das Ziel ist. Der Zeitraum vor der Intervention ist unser Trainingssatz und wir verwenden das Modell, um unseren Zeitraum nach der Intervention zu bewerten. Der Unterschied zwischen dem tatsächlichen und dem vorhergesagten Wert ist die kausale Auswirkung.

Nachfolgend finden Sie einige Beispiele, die verdeutlichen, wann wir einen Einsatz in Betracht ziehen könnten:

  • Bei einer TV-Marketingkampagne können wir das Publikum nicht nach dem Zufallsprinzip in diejenigen einteilen, die die Kampagne sehen können und diejenigen, die sie nicht sehen können. Wir könnten jedoch sorgfältig eine Area auswählen, um die Kampagne zu testen, und die übrigen Regionen als Kontrolleinheiten verwenden. Sobald wir die Wirkung gemessen haben, könnte die Kampagne in anderen Regionen eingeführt werden. Dies wird oft als Geo-Carry-Check bezeichnet.
  • Politische Veränderungen, die in einigen Regionen eingeführt werden, in anderen jedoch nicht – Beispielsweise kann ein Gemeinderat eine politische Veränderung in Kraft setzen, um die Arbeitslosigkeit zu senken. Andere Regionen, in denen die Politik nicht umgesetzt wurde, könnten als Kontrolleinheiten dienen.

Welche Herausforderung versucht es zu bewältigen?

Wenn wir eine hohe Dimensionalität (viele Merkmale) mit begrenzten Beobachtungen kombinieren, kann ein überangepasstes Modell entstehen.

Nehmen wir zur Veranschaulichung das Beispiel des Geo-Lifts. Wenn wir wöchentliche Daten aus dem letzten Jahr als Zeitraum vor der Intervention verwenden, erhalten wir 52 Beobachtungen. Wenn wir uns dann entscheiden, unsere Intervention in mehreren Ländern Europas zu testen, erhalten wir ein Verhältnis von Beobachtung zu Merkmal von 1:1!

Wir haben bereits darüber gesprochen, wie die synthetische Kontrollmethode mithilfe einer linearen Regression implementiert werden könnte. Das Verhältnis von Beobachtung zu Merkmal bedeutet jedoch, dass es sehr wahrscheinlich ist, dass die lineare Regression überanpasst, was zu einer schlechten Schätzung der kausalen Auswirkungen in der Zeit nach der Intervention führt.

Bei der linearen Regression können die Gewichte (Koeffizienten) für jedes Merkmal (Kontrolleinheit) negativ oder positiv sein und ihre Summe kann eine Zahl größer als 1 ergeben. Die synthetische Kontrollmethode lernt die Gewichte jedoch unter Anwendung der folgenden Einschränkungen:

  • Beschränkung der Gewichte auf die Summe von 1
  • Gewichte müssen ≥ 0 sein
Vom Benutzer generiertes Bild

Diese Einschränkungen helfen bei der Regularisierung und vermeiden eine Extrapolation über den Bereich der beobachteten Daten hinaus.

Es ist erwähnenswert, dass Ridge- und Lasso-Regression dies in Bezug auf die Regularisierung erreichen können und in einigen Fällen sinnvolle Alternativen sind. Aber wir werden dies in der Fallstudie testen!

Wie können wir die geschätzten kausalen Auswirkungen validieren?

Eine wohl noch größere Herausforderung besteht in der Tatsache, dass wir die geschätzten kausalen Auswirkungen in der Zeit nach der Intervention nicht validieren können.

Wie lang sollte meine Vorinterventionsphase sein? Sind wir sicher, dass wir unsere Vorinterventionsphase nicht überangepasst haben? Wie können wir wissen, ob unser Modell in der Nachinterventionsphase intestine verallgemeinert werden kann? Was ist, wenn ich verschiedene Implementierungen der synthetischen Kontrollmethode ausprobieren möchte?

Wir könnten nach dem Zufallsprinzip einige Beobachtungen aus der Zeit vor der Intervention auswählen und sie zur Validierung zurückhalten. Doch wir haben bereits die Herausforderungen hervorgehoben, die sich aus der begrenzten Anzahl an Beobachtungen ergeben, sodass wir die Dinge möglicherweise sogar noch schlimmer machen!

Was wäre, wenn wir vor der Intervention eine Artwork Simulation durchführen könnten? Könnte uns das helfen, einige der oben hervorgehobenen Fragen zu beantworten und Vertrauen in die von unseren Modellen geschätzten kausalen Auswirkungen zu gewinnen? Alles wird in der Fallstudie erklärt!

Hintergrund

Nachdem Sie die Finanzabteilung davon überzeugt haben, dass Markenmarketing einen echten Mehrwert schafft, kommt das Marketingteam auf Sie zu und fragt Sie nach Geo-Carry-Exams. Jemand von Fb hat ihnen gesagt, dass das der nächste große Development ist (obwohl es dieselbe Particular person struggle, die ihnen gesagt hat, dass Prophet ein gutes Prognosemodell ist) und sie möchten wissen, ob sie es zur Messung ihrer neuen, bevorstehenden TV-Kampagne verwenden können.

Sie sind ein wenig besorgt, da das Marketinganalyseteam bei Ihrem letzten Geo-Carry-Check der Meinung struggle, es wäre eine gute Idee, mit dem verwendeten Vorinterventionszeitraum herumzuexperimentieren, bis ein schöner, großer kausaler Einfluss festgestellt würde.

Dieses Mal schlagen Sie vor, eine „Vorinterventionssimulation“ durchzuführen und anschließend vor Beginn des Exams den Vorinterventionszeitraum zu vereinbaren.

Sehen wir uns additionally an, wie eine „Simulation vor einer Intervention“ aussieht!

Erstellen der Daten

Um dies so realistisch wie möglich zu gestalten, habe ich einige Google-Trenddaten für die Mehrheit der europäischen Länder extrahiert. Der Suchbegriff ist nicht related. Tun Sie einfach so, als wäre es der Umsatz Ihres Unternehmens (und Sie sind in ganz Europa tätig).

Wenn Sie jedoch wissen möchten, wie ich an die Google-Trenddaten gekommen bin, sehen Sie sich mein Notizbuch an:

Unten sehen wir den Datenrahmen. Wir haben Verkäufe der letzten 3 Jahre in 50 europäischen Ländern. Das Marketingteam plant, seine TV-Kampagne in Großbritannien durchzuführen.

Vom Benutzer erstelltes Bild

Jetzt kommt der clevere Teil. Wir werden eine Intervention in den letzten 7 Wochen der Zeitreihe simulieren.

np.random.seed(1234)

# Create intervention flag
masks = (df('date') >= "2024-04-14") & (df('date') <= "2024-06-02")
df('intervention') = masks.astype(int)

row_count = len(df)

# Create intervention uplift
df('uplift_perc') = np.random.uniform(0.10, 0.20, measurement=row_count)
df('uplift_abs') = spherical(df('uplift_perc') * df('GB'))
df('y') = df('GB')
df.loc(df('intervention') == 1, 'y') = df('GB') + df('uplift_abs')

Lassen Sie uns nun die tatsächlichen und kontrafaktischen Verkäufe in ganz GB darstellen, um unsere Ergebnisse in die Praxis umzusetzen:

def synth_plot(df, counterfactual):

plt.determine(figsize=(14, 8))
sns.set_style("white")

# Create plot
sns.lineplot(information=df, x='date', y='y', label='Precise', shade='b', linewidth=2.5)
sns.lineplot(information=df, x='date', y=counterfactual, label='Counterfactual', shade='r', linestyle='--', linewidth=2.5)
plt.title('Artificial Management Technique: Precise vs. Counterfactual', fontsize=24)
plt.xlabel('Date', fontsize=20)
plt.ylabel('Metric Worth', fontsize=20)
plt.legend(fontsize=16)
plt.gca().xaxis.set_major_formatter(plt.matplotlib.dates.DateFormatter('%Y-%m-%d'))
plt.xticks(rotation=90)
plt.grid(True, linestyle='--', alpha=0.5)

# Excessive the intervention level
intervention_date = '2024-04-07'
plt.axvline(pd.to_datetime(intervention_date), shade='ok', linestyle='--', linewidth=1)
plt.textual content(pd.to_datetime(intervention_date), plt.ylim()(1)*0.95, 'Intervention', shade='ok', fontsize=18, ha='proper')

plt.tight_layout()
plt.present()

synth_plot(df, 'GB')
Vom Benutzer erstelltes Bild

Nachdem wir nun eine Intervention simuliert haben, können wir untersuchen, wie intestine die synthetische Kontrollmethode funktioniert.

Vorverarbeitung

Alle europäischen Länder außer GB werden als Kontrolleinheiten (Merkmale) festgelegt. Die Behandlungseinheit (Ziel) ist der Umsatz in GB mit der angewandten Intervention.

# Delete the unique goal column so we do not use it as a function by chance
del df('GB')

# set function & targets
X = df.columns(1:50)
y = 'y'

Regression

Unten habe ich eine Funktion eingerichtet, die wir mit verschiedenen Vorinterventionszeiträumen und verschiedenen Regressionsmodellen (z. B. Ridge, Lasso) wiederverwenden können:

def train_reg(df, start_index, reg_class):

df_temp = df.iloc(start_index:).copy().reset_index()

X_pre = df_temp(df_temp('intervention') == 0)(X)
y_pre = df_temp(df_temp('intervention') == 0)(y)

X_train, X_test, y_train, y_test = train_test_split(X_pre, y_pre, test_size=0.10, random_state=42)

mannequin = reg_class
mannequin.match(X_train, y_train)

yhat_train = mannequin.predict(X_train)
yhat_test = mannequin.predict(X_test)

mse_train = mean_squared_error(y_train, yhat_train)
mse_test = mean_squared_error(y_test, yhat_test)
print(f"Imply Squared Error practice: {spherical(mse_train, 2)}")
print(f"Imply Squared Error check: {spherical(mse_test, 2)}")

r2_train = r2_score(y_train, yhat_train)
r2_test = r2_score(y_test, yhat_test)
print(f"R2 practice: {spherical(r2_train, 2)}")
print(f"R2 check: {spherical(r2_test, 2)}")

df_temp('pred') = mannequin.predict(df_temp.loc(:, X))
df_temp('delta') = df_temp('y') - df_temp('pred')

pred_lift = df_temp(df_temp('intervention') == 1)('delta').sum()
actual_lift = df_temp(df_temp('intervention') == 1)('uplift_abs').sum()
abs_error_perc = abs(pred_lift - actual_lift) / actual_lift
print(f"Predicted carry: {spherical(pred_lift, 2)}")
print(f"Precise carry: {spherical(actual_lift, 2)}")
print(f"Absolute error share: {spherical(abs_error_perc, 2)}")

return df_temp, abs_error_perc

Zu Beginn halten wir es einfach und verwenden eine lineare Regression, um die kausalen Auswirkungen anhand einer kurzen Vorinterventionsphase abzuschätzen:

df_lin_reg_100, pred_lift_lin_reg_100 = train_reg(df, 100, LinearRegression())
Vom Benutzer erstelltes Bild

Betrachtet man die Ergebnisse, schneidet die lineare Regression nicht besonders intestine ab. Aber das ist angesichts des Verhältnisses von Beobachtung zu Merkmal nicht überraschend.

synth_plot(df_lin_reg_100, 'pred')
Vom Benutzer erstelltes Bild

Synthetische Kontrollmethode

Lassen Sie uns direkt loslegen und sehen, wie es im Vergleich zur synthetischen Kontrollmethode abschneidet. Unten habe ich eine ähnliche Funktion wie zuvor eingerichtet, aber die synthetische Kontrollmethode mithilfe von sciPy angewendet:

def synthetic_control(weights, control_units, treated_unit):

artificial = np.dot(control_units.values, weights)

return np.sqrt(np.sum((treated_unit - artificial)**2))

def train_synth(df, start_index):

df_temp = df.iloc(start_index:).copy().reset_index()

X_pre = df_temp(df_temp('intervention') == 0)(X)
y_pre = df_temp(df_temp('intervention') == 0)(y)

X_train, X_test, y_train, y_test = train_test_split(X_pre, y_pre, test_size=0.10, random_state=42)

initial_weights = np.ones(len(X)) / len(X)

constraints = ({'kind': 'eq', 'enjoyable': lambda w: np.sum(w) - 1})

bounds = ((0, 1) for _ in vary(len(X)))

consequence = decrease(synthetic_control,
initial_weights,
args=(X_train, y_train),
technique='SLSQP',
bounds=bounds,
constraints=constraints,
choices={'disp': False, 'maxiter': 1000, 'ftol': 1e-9},
)

optimal_weights = consequence.x

yhat_train = np.dot(X_train.values, optimal_weights)
yhat_test = np.dot(X_test.values, optimal_weights)

mse_train = mean_squared_error(y_train, yhat_train)
mse_test = mean_squared_error(y_test, yhat_test)
print(f"Imply Squared Error practice: {spherical(mse_train, 2)}")
print(f"Imply Squared Error check: {spherical(mse_test, 2)}")

r2_train = r2_score(y_train, yhat_train)
r2_test = r2_score(y_test, yhat_test)
print(f"R2 practice: {spherical(r2_train, 2)}")
print(f"R2 check: {spherical(r2_test, 2)}")

df_temp('pred') = np.dot(df_temp.loc(:, X).values, optimal_weights)
df_temp('delta') = df_temp('y') - df_temp('pred')

pred_lift = df_temp(df_temp('intervention') == 1)('delta').sum()
actual_lift = df_temp(df_temp('intervention') == 1)('uplift_abs').sum()
abs_error_perc = abs(pred_lift - actual_lift) / actual_lift
print(f"Predicted carry: {spherical(pred_lift, 2)}")
print(f"Precise carry: {spherical(actual_lift, 2)}")
print(f"Absolute error share: {spherical(abs_error_perc, 2)}")

return df_temp, abs_error_perc

Ich lasse den Zeitraum vor der Intervention unverändert, um einen fairen Vergleich mit der linearen Regression zu ermöglichen:

df_synth_100, pred_lift_synth_100 = train_synth(df, 100)
Vom Benutzer erstelltes Bild

Wow! Ich gebe zu, dass ich mit einer so deutlichen Verbesserung nicht gerechnet habe!

synth_plot(df_synth_100, 'pred')
Vom Benutzer erstelltes Bild

Vergleich der Ergebnisse

Lassen Sie uns noch nicht zu weit ausholen. Im Folgenden führen wir noch ein paar Experimente durch, in denen wir Modelltypen und Zeiträume vor der Intervention untersuchen:

# run regression experiments
df_lin_reg_00, pred_lift_lin_reg_00 = train_reg(df, 0, LinearRegression())
df_lin_reg_100, pred_lift_lin_reg_100 = train_reg(df, 100, LinearRegression())
df_ridge_00, pred_lift_ridge_00 = train_reg(df, 0, RidgeCV())
df_ridge_100, pred_lift_ridge_100 = train_reg(df, 100, RidgeCV())
df_lasso_00, pred_lift_lasso_00 = train_reg(df, 0, LassoCV())
df_lasso_100, pred_lift_lasso_100 = train_reg(df, 100, LassoCV())

# run artificial management experiments
df_synth_00, pred_lift_synth_00 = train_synth(df, 0)
df_synth_100, pred_lift_synth_100 = train_synth(df, 100)

experiment_data = {
"Technique": ("Linear", "Linear", "Ridge", "Ridge", "Lasso", "Lasso", "Artificial Management", "Artificial Management"),
"Information Measurement": ("Massive", "Small", "Massive", "Small", "Massive", "Small", "Massive", "Small"),
"Worth": (pred_lift_lin_reg_00, pred_lift_lin_reg_100, pred_lift_ridge_00, pred_lift_ridge_100,pred_lift_lasso_00, pred_lift_lasso_100, pred_lift_synth_00, pred_lift_synth_100)
}

df_experiments = pd.DataFrame(experiment_data)

Wir verwenden den folgenden Code, um die Ergebnisse zu visualisieren:

# Set the model
sns.set_style="whitegrid"

# Create the bar plot
plt.determine(figsize=(10, 6))
bar_plot = sns.barplot(x="Technique", y="Worth", hue="Information Measurement", information=df_experiments, palette="muted")

# Add labels and title
plt.xlabel("Technique")
plt.ylabel("Absolute error share")
plt.title("Artificial Controls - Comparability of Strategies Throughout Totally different Information Sizes")
plt.legend(title="Information Measurement")

# Present the plot
plt.present()

Vom Benutzer erstelltes Bild

Die Ergebnisse für den kleinen Datensatz sind wirklich interessant! Wie erwartet hat die Regularisierung geholfen, die Schätzungen der kausalen Auswirkungen zu verbessern. Die synthetische Kontrolle ging dann noch einen Schritt weiter!

Die Ergebnisse des großen Datensatzes legen nahe, dass längere Zeiträume vor der Intervention nicht immer besser sind.

Ich möchte Ihnen jedoch zeigen, wie wertvoll die Durchführung einer Simulation vor der Intervention ist. Es gibt so viele Möglichkeiten, die Sie mit Ihrem eigenen Datensatz erkunden könnten!

Heute haben wir uns mit der synthetischen Kontrollmethode beschäftigt und wie Sie die kausalen Auswirkungen validieren können. Ich möchte Ihnen noch ein paar abschließende Gedanken mit auf den Weg geben:

  • Aufgrund ihrer Einfachheit ist die synthetische Steuerungsmethode eine der am häufigsten eingesetzten Techniken aus dem Werkzeugkasten der kausalen KI.
  • Leider wird dieser Wert auch am häufigsten missbraucht. Lassen Sie uns das R CausalImpact-Paket ausführen und den Zeitraum vor der Intervention ändern, bis wir eine Steigerung sehen, die uns gefällt. 😭
  • Aus diesem Grund empfehle ich dringend, vor der Intervention Simulationen durchzuführen, um das Testdesign im Voraus zu vereinbaren.
  • Die synthetische Kontrollmethode ist ein intensiv erforschter Bereich. Es lohnt sich, die vorgeschlagenen Anpassungen Augmented SC, Strong SC und Penalized SC zu prüfen.

Alberto Abadie, Alexis Diamond und Jens Hainmueller (2010) Synthetische Kontrollmethoden für vergleichende Fallstudien: Schätzung der Auswirkungen des kalifornischen Tabakkontrollprogramms, Journal of the American Statistical Affiliation, 105:490, 493–505, DOI: 10.1198/jasa.2009.ap08746

[ad_2]

]]>
http://chatgpz.de/machine-learning/validierung-der-kausalen-auswirkungen-der-synthetischen-kontrollmethode-von-ryan-osullivan-juni-2024/feed/ 0 1273