LogoLogo
Go to Syntho.AI
Dutch (AI Translated)
Dutch (AI Translated)
  • Welcome to Syntho
  • Overzicht
    • About Syntho
    • Get started
      • Introduction to data generation methods
      • Use Case: AI-generated synthetic data
      • Use Case: AI-generated synthetic time series data
      • Use Case: Database de-identification
    • Frequently asked questions
  • Werkruimten instellen
    • View workspaces
    • Create a workspace
      • Connect to a database
        • PostgreSQL
        • MySQL / MariaDB
        • Oracle
        • Microsoft SQL Server
        • DB2
        • Databricks
        • Hive
        • SAP Sybase
        • Azure Data Lake Storage (ADLS)
        • Amazon Simple Storage Service (S3)
    • Edit a workspace
    • Delete a workspace
    • Share a workspace
    • Transfer workspace ownership
  • Een gegevensgeneratietaak configureren
    • Configure table settings
    • Configure column settings
      • AI-powered generation
        • Sequence model
          • Prepare your sequence data
      • Mockers
        • Consistent mapping
        • Supported languages
      • Duplicate
      • Exclude
      • Hashing
      • Calculated columns
      • Primary Key / Foreign Key
    • Manage personally identifiable information (PII)
      • Discover and de-identify PII columns
        • Identify PII columns manually
        • Automatic PII discovery with PII scanner
      • Remove columns from PII list
      • Automatic PII discovery and de-identification in free text columns
      • Supported PII & PHI entities
    • Manage foreign keys
      • Foreign key inheritance
      • Add virtual foreign keys
        • Add virtual foreign keys
        • Use foreign key scanner
        • Import foreign keys via JSON
        • Export foreign keys via JSON
      • Delete foreign keys
      • Circular foreign key references
    • Validate and Synchronize workspace
    • View and adjust generation settings
    • Table relationships
      • Verify foreign keys
      • Synthesize individual tables with automatic key matching
      • De-identify PII columns
  • Syntho implementeren
    • Introduction
      • Syntho architecture
      • Requirements
        • Requirements for Docker deployments
        • Requirements for Kubernetes deployments
      • Access Docker images
        • Using internet
        • Without internet
    • Deploy Syntho using Docker
      • Preparations
      • Deploy using Docker Compose
      • Run the application
      • Manually saving logs
    • Deploy Syntho using Kubernetes
      • Preparations
      • Deploy Ray using Helm
        • Troubleshooting
      • Deploy Syntho using Helm
      • Validate the deployment
      • Troubleshooting
      • Upgrading the applications
    • Manage users and access
      • Single Sign-On (SSO) in Azure
      • Manage admin users
      • Manage non-admin users
    • Logs and monitoring
  • Subsetting
    • What is subsetting
    • Verify foreign keys
    • Configure subsetting
  • Syntho API
    • Syntho REST API
Powered by GitBook
On this page
  • Vereisten
  • Gegevens voorbewerken
  • Bereid gegevens voor
  • Tabelinstellingen configureren
  • PII-scan (optioneel)
  • Bescherming zeldzame categorie en Knipdrempel
  • Bescherming zeldzame categorie
  • Clipping threshold
  • Geavanceerde generatorinstellingen
  • Een gegevensgeneratietaak configureren
  • Hoe Syntho's synthetische gegevens sequentiemodel toepassen
  • Sequentiemodelparameters](https://docs.syntho.ai/configure-a-data-generation-job/configure-column-settings/ai-powered-generation/sequence-model#sequence-model-parameters)
  • Tabellen inkorten voor elke nieuwe opdracht voor het genereren van gegevens
  • Beperkingen en aanbevelingen

Was this helpful?

  1. Overzicht
  2. Get started

Use Case: AI-generated synthetic time series data

PreviousUse Case: AI-generated synthetic dataNextUse Case: Database de-identification

Last updated 10 months ago

Was this helpful?

Stel dat een klant twee tabellen heeft met tijdreeksgegevens, "Patiënten" en "Medicijnen", die moeten worden gesynthetiseerd. Deze tabellen, die medische gegevens simuleren, zullen worden gesynthetiseerd, aangezien "Medications" tijdreeksgegevens bevat en er een foreign key-primary key-relatie (one-to-many) tussen beide bestaat.


Workflow van AI-gegenereerde synthetische tijdreeksgegevens

Vereisten

  • Maak een workspace zoals beschreven in de [Create a workspace(../../setup-workspaces/create-a-workspace/) gedeelte.

  • De werkruimte moet bestaan uit een source en een destination database. De destination database moet exact dezelfde, maar lege tabellen en kolommen hebben als de source database, met schrijftoegang.

  • Datatypen op elkaar afstemmen: Zorg ervoor dat de gegevenstypen van kolommen in zowel de source en destination databases hun inhoud nauwkeurig weergeven. Bijvoorbeeld, date kolommen moeten van het type Date, integer kolommen van het type Integeren decimal kolommen van het type Decimal/Float.


Gegevens voorbewerken

In eerste instantie worden de gegevens van deze tabellen in .csv-formaat uit de database van de klant gehaald. Een overzicht van de eerste paar kolommen voor beide "Patients" en "Medications" tabellen is voorzien.

Deze tabellen worden opgeslagen in een database die gekoppeld is aan Syntho. Deze database, de sourceis waar de gegevens vandaan komen. Syntho synthetiseert deze gegevens vervolgens en stuurt ze door naar een andere database, bekend als de destination. In dit voorbeeld worden een MySQL database en MySQL Workbench gebruikt om zowel source en destination databases en om de "Patients" en "Medications" tabellen naar de bron. Vervolgens wordt een nieuwe werkruimte in de Syntho app gemaakt en verbonden met deze databases.

Om de tabellen in de nieuwe database te integreren, maakt u eerst de source schema voor onze tabellen.

Zorg ervoor dat het schema de juiste naam heeft; ons nieuwe schema is getiteld "healthcare."

Zodra de "healthcare" schema is aangemaakt, blijven de tabellen leeg, waardoor de volgende stap nodig is: tabellen aanmaken.

Als we onze originele .csv-gegevens bekijken, is de "Patients" tabel bestaat uit de volgende kolommen:

Id, BIRTHDATE, DEATHDATE, SSN, DRIVERS, PASSPORT, PREFIX, FIRST, LAST, SUFFIX, MAIDEN, MARITAL, RACE, ETHNICITY, GENDER, BIRTHPLACE, ADDRESS, CITY, STATE, COUNTY, ZIP, LAT, LON, HEALTHCARE_EXPENSES, HEALTHCARE_COVERAGE.

We moeten dus 25 kolommen met precieze waarden aanmaken. Hieronder staat een SQL-script om het aanmaken van de "Patients" tabel, een proces dat op dezelfde manier wordt toegepast op de "Medications" tafel.

Aanmaken van "Patients" tabel hieronder.

Zoals je in de onderstaande afbeeldingen kunt zien, zijn de tabellen klaar.

De tabellen zijn nu voorbereid voor het invoegen van gegevens. Het volgende MySQL-script zal de "patients" tabel met gegevens uit de patients.csv bestand.

Om verschillen in datumnotatie tussen het CSV-bestand (DD/MM/JJJJ) en de verwachte notatie van MySQL (JJJ-MM-DD) op te lossen, passen de laatste vier regels van het script de datumnotatie aan. Deze aanpassing voorkomt dat MySQL niet-herkende datums standaard op 0000-00-00 zet, door gebruik te maken van de STR_TO_DATE functie voor conversie tijdens het importeren. Vervolgens wordt de "patients" tabel wordt ingevuld.

De "patients" tabel bevat nu 12.352 rijen.

De "patients" tabel bevat nu 12.352 rijen.

Deze procedure wordt op dezelfde manier toegepast op de "medications" tafel.

Tegen het einde van de voorbewerking worden lege schema's en tabellen voor de doelbestemming aangemaakt, net als bij het aanmaken van het healthcare schema. Er worden echter aanpassingen gemaakt om het healthcare_synthetic schema te specificeren.

Met de tabellen ingesteld voor het synthetische schema, is de database klaar. De volgende stap is het aanmaken van een workspace in Syntho. Raadpleeg voor het aanmaken van een workspace de Syntho documentatie of volg de meegeleverde stappen en zorg ervoor dat de MySQL database verbindingsgegevens correct zijn ingevuld. Het succesvol testen van de verbinding, aangegeven met een groene cirkel, is vereist voor zowel de source en destination databases.

Eindelijk, primary keys en foreign keys zijn gedefinieerd in de database. In ons voorbeeld "PATIENT" kolom van medications tabel is een foreign key en aangesloten op de "Id" kolom van de patiëntentabel waar "Id" is een primary key van patients tafel.

| Externe sleutel Primaire sleutel | ------------------- | ----------- | | medications.PATIENT | patients.Id |

  • Op de Launch Your Workspace scherm, selecteer Connect to a Database.

  • Gebruik de linker werkbalk om te navigeren naar Create workspace > From database > [Database].

Zorg ervoor dat u de vereiste velden nauwkeurig invult om een verbinding met de MySQL database tot stand te brengen. Klik na het invoeren van de gegevens op "Test Connection" om de verbinding te controleren. Een groene cirkel geeft een succesvolle verbinding aan. Dit verificatieproces is van toepassing op zowel de source en destination databases.

Uw workspace is nu klaar voor gebruik.

Bereid gegevens voor

Voor het genereren van AI-gestuurde synthetische gegevens, moet u ervoor zorgen dat uw gegevens geschikt zijn om te synthetiseren. Syntho kan gegevens verwerken in de vorm van lists, sequencesof time-series wanneer gestructureerd in entity table-linked table structuur. Zorg ervoor dat je gegevens aan het volgende voldoen:

  • De structuur is afgestemd op het verwerken van lists, sequencesof time-series data.

  • Het bevat twee tabellen:

    • een entity table die voldoet aan de [Entity tables requirements] (use-case-ai-generated-synthetic-time-series-data.md#entity-tables).

    • a linked table.

  • Elk record in de entiteittabel heeft een uniek ID (primary key).

  • Elk record in de gekoppelde tabel moet verwijzen naar de unieke ID van de entiteittabel (foreign key).

  • Vergelijkbaar met de vereisten voor [Entity tables] (use-case-ai-generated-synthetic-time-series-data.md#entity-tables), elimineer kolommen waarvan de waarden zijn directly derived from other columns.

  • Verwijder rijwaarden die direct zijn afgeleid van waarden in andere rijen. Bijvoorbeeld, als je dataset rijen bevat met start_datum en einde_datum kolommen, en elke start_datum komt overeen met de einde_datum van de rij ervoor, verwijder dan een van deze overbodige waarden, onder start_datum of einde_datum.

  • Voor meer informatie over het voorbereiden van je gegevens bij het synthetiseren van complexe tabelrelaties, zie: .

Onze voorbeeldtabel voldoet volledig aan deze criteria.

Tabelinstellingen configureren

Plaats voor het synthetiseren de "patient" en "medications" tabel onder de synthesize tabelmodus. Hoewel Syntho tabellen standaard in de juiste modi zet, kun je dit wijzigen via slepen en neerzetten.

Onder Column settings > Generation Methodkiezen AI-powered generation voor Syntho's ML-modellen om gegevens te synthetiseren. Dit is ook de standaard generatiemethode, voor alle tabellen geplaatst onder synthesize.

PII-scan (optioneel)

In de PII tabkunt u nieuwe kolommen toevoegen aan de lijst van PII kolommen, ofwel manually of door Syntho's PII scanner. U hebt de optie om manually label columns die PII bevat door de kolomnaam te selecteren en optioneel een spotter te kiezen om toe te passen. Door op "Confirm" markeert de kolom als bevattende PII en bevestig de selectie van de spotter.

U kunt ook automatisch PII detecteren met de PII-scanner. Start een scan om PII te detecteren in alle databasekolommen op het tabblad PII in het venster Job Configuration paneel. Merk op dat de scanner zowel Shallow en Deep scanmodi:

  • De shallow scan beoordeelt kolommen met behulp van reguliere expressieregels om PII te identificeren, geoptimaliseerd voor snelheid maar met variabele nauwkeurigheid.

  • De deep scan onderzoekt zowel metagegevens als gegevens binnen kolommen voor een grondige identificatie van PII.

Bescherming zeldzame categorie

Deze functie helpt gevoelige of zeldzame waarnemingen te verbergen, zoals specifieke beroepen in de "census" tabel, door ze te vervangen door een door de gebruiker gedefinieerde waarde, waardoor de gegevensprivacy wordt verbeterd. Pas de rare category protection threshold en replacement waarde in Column settings > Encoding type > Advanced settings.

  • Rare category protection threshold: Alle kolomwaarden die even vaak of minder vaak voorkomen dan de rare category protection threshold worden automatisch vervangen.

  • Rare category replacement value: Alle kolomwaarden die even vaak of minder vaak voorkomen dan de rare category protection threshold worden automatisch vervangen door deze vervangende waarde.

Beroepen die bijvoorbeeld as frequently or less than 15wordt vervangen door het teken sterretje of "*". Het nummer en teken is vrijwillig en kan op verzoek van de gebruiker worden gedefinieerd (zie onderstaande afbeelding).

Selecteer Advanced settings onder Encoding type om instellingen op kolomniveau te bekijken en aan te passen.

Je kunt de volgende geavanceerde kolominstellingen aanpassen, afhankelijk van het geselecteerde coderingstype:

Discrete | Continuous | Datetime

  • Clipping threshold: De vloer en het plafond van een kolom als de Nth laagste en hoogste waarde, waarbij N is de afkapdrempel. De drempelwaarde zorgt ervoor dat de waarden het plafond en de ondergrens niet overschrijden.

In de taakinstellingen, onder tabelinstellingen, kunt u instellingen op generatorniveau aanpassen, inclusief het maximum aantal rijen voor training om de snelheid te optimaliseren. Als u deze instelling als None gebruikt alle rijen. De "Take random sample" optie maakt bemonstering mogelijk:

  • On: Willekeurige rijen worden geselecteerd voor training.

  • Off: De bovenste rijen uit de database worden gebruikt.

Een gegevensgeneratietaak configureren

Laten we de Patients en PatientMedications tabellen hieronder. Ze komen uit Syntho documentatie en lijken op onze patient en medications tabellen. De Patients tabel is de entity table. De PatientMedications tabellen is de linked table.

Om deze tabellen te synthetiseren met behulp van Syntho's sequentiemodellen:

  1. Syntho begint met het samenstellen van de tabel Patiënten.

  2. Vervolgens synthetiseert het de PatientMedications tabel met behulp van de synthetische Patients tabel als context.

Hoe Syntho's synthetische gegevens sequentiemodel toepassen

Om Syntho's synthetische gegevensvolgordenmodellen te gebruiken, kun je het volgende doen:

  1. Op de Job Configuration paneel, drag de tabel met verwante entiteiten en de gekoppelde tabel onder Synthesize.

  2. Sleep eventuele andere tabellen onder De-identify of Exclude.

  3. Op de Job configuration paneel, selecteer Generate.

  4. Op de Job configuration paneel, schakel de Enable sequence modeling knevel.

  5. Selecteer ten slotte Start generating.

Sequentiemodelparameters](https://docs.syntho.ai/configure-a-data-generation-job/configure-column-settings/ai-powered-generation/sequence-model#sequence-model-parameters)

Voordat je het generatieproces start, heb je de mogelijkheid om sequentiemodelparameters aan te passen. Hier volgt een overzicht:

  • Max sequence length: Stelt een limiet in op de lengte van reeksen en kort elke reeks in die deze limiet overschrijdt.

  • Rare long sequence protection threshold: Bepaalt een limiet voor de lengte van gegevensreeksen die worden gebruikt in training, waarbij de langste reeksen worden aangepast aan de lengte van de Nth volgorde.

  • N generated entities: Bepaalt het aantal entiteiten dat moet worden gegenereerd, elk geassocieerd met een reeks.

  • Read batch size: De hoeveelheid rijen die van elke brontabel worden gelezen per batch.

  • Write batch size: De hoeveelheid rijen die per batch in elke bestemmingstabel worden ingevoegd.

  • N connections: Geeft het aantal verbindingen op.

Tabellen inkorten voor elke nieuwe opdracht voor het genereren van gegevens

Gebruikers moeten handmatig TRUNCATE hun tafels in de DESTINATION database voordat elke nieuwe taak voor het genereren van gegevens wordt gestart. Als trunceren wordt belemmerd door bestaande beperkingen, dan moeten deze beperkingen tijdelijk worden uitgeschakeld voor het trunceren en daarna weer worden ingeschakeld. Bijvoorbeeld, om het truncatie proces te vergemakkelijken wanneer foreign key beperkingen dit verhinderen, gebruik de volgende SQL commando's: Schakel eerst de beperkingen uit door SET FOREIGN_KEY_CHECKS = 0; uit te voeren, en vervolgens TRUNCATE de tabel en activeer tenslotte de beperkingen opnieuw met SET FOREIGN_KEY_CHECKS = 1;. Deze volgorde zorgt ervoor dat tabellen goed worden voorbereid voor het genereren van gegevens zonder dat de beperkingen worden geschonden.

Beperkingen en aanbevelingen

  • 2 Tables: Het gebruik van sequentiemodellen is beperkt tot twee tabellen om de bruikbaarheid van synthetische gegevens te verbeteren.

  • Mockers: Niet compatibel met het sequentiemodel.

  • Resource Consumption: Omdat deze functie veel middelen vergt, kan het het genereren van gegevens vertragen. Het is raadzaam om de invoergegevens te beperken of de parameters van het sequentiemodel aan te passen om tijd en middelen te besparen.

Deze richtlijnen zijn bedoeld om je ervaring met Syntho te optimaliseren.

Onze database is nu klaar. Vervolgens openen we Syntho om een workspace aan te maken. Raadpleeg voor gedetailleerde instructies over het maken van een workspace in Syntho het gedeelte in de Syntho-documentatie. Om een nieuwe workspace te maken, hebt u twee opties:

en

Job configuratie samenvatting
Een workspace maken
Bescherming zeldzame categorie
Knipdrempel
Clipping threshold
Geavanceerde generatorinstellingen
Voorwaarden voor door AI gegenereerde synthetische tijdreeksgegevens
https://youtu.be/cdehUIH9btwyoutu.be
Gegevens voorbewerken
Sequentiegegevens voorbereiden
Tabel instellingen configureren
Zeldzame categorie bescherming en Knipperdrempel
Een gegevensgeneratieproces starten
Medicijntabel
Patiëntentabel
Een nieuw schema maken in MySQL.
Schema gezondheidszorg
Gezondheidsdatabases
Creëren tabel patiënten
Kolommen van medicatietabel
Upload gegevens naar de tabel patiënten
Gegevens staan klaar in de database
Patiëntentabel bevat 12352 rijen
Creatie van tabellen voor healthcare_synhetic
Synthetische tabellen (bestemmingstabellen)
Een werkruimte maken
Database details en het testen van de verbinding
Handmatige PII-markering
Automatische PII-labeling
Kolombezetting
Zeldzame categoriebeveiliging
Entiteit - Gelinkte relatie (Patiënt - Medicijnen)
Sequence Model Parameters
width=