Uw gegevensbron en -indeling identificeren

Voltooid

Gegevens zijn de belangrijkste invoer voor uw machine learning-modellen. U hebt toegang tot gegevens nodig bij het trainen van machine learning-modellen en het getrainde model heeft gegevens nodig als invoer voor het genereren van voorspellingen.

Stel dat u een data scientist bent en bent gevraagd om een machine learning-model te trainen.

U wilt de volgende zes stappen uitvoeren om het model te plannen, te trainen, te implementeren en te bewaken:

Diagram met de zes stappen van het machine learning-proces.

  1. Definieer het probleem: bepaal wat het model moet voorspellen en wanneer het succesvol is.
  2. Haal de gegevens op: Gegevensbronnen zoeken en toegang krijgen.
  3. Bereid de gegevens voor: Verken de gegevens. Schoon en transformeer de gegevens op basis van de vereisten van het model.
  4. Het model trainen: Kies een algoritme en hyperparameterwaarden op basis van de evaluatie en fout.
  5. Integreer het model: Implementeer het model op een eindpunt om voorspellingen te genereren.
  6. Bewaak het model: houd de prestaties van het model bij.

Notitie

Het diagram is een vereenvoudigde weergave van het machine learning-proces. Normaal gesproken is het proces iteratief en doorlopend. Als u bijvoorbeeld het model bewaakt, kunt u besluiten om terug te gaan en het model opnieuw te trainen.

Als u de gegevens wilt ophalen en voorbereiden die u gaat gebruiken om het machine learning-model te trainen, moet u gegevens extraheren uit een bron en deze beschikbaar maken voor de Azure-service die u wilt gebruiken om modellen te trainen of voorspellingen te doen.

Over het algemeen is het een best practice om gegevens uit de bron te extraheren voordat u deze analyseert. Of u nu de gegevens voor data engineering, gegevensanalyse of gegevenswetenschap gebruikt, u wilt de gegevens uit de bron extraheren , transformeren en laden in een ondersteunende laag. Een dergelijk proces wordt ook wel ETL (Extract, Transform, and Load) of Extract, Load en Transform (ELT) genoemd. De ondersteunende laag maakt uw gegevens beschikbaar voor de service die u gaat gebruiken voor verdere gegevensverwerking, zoals het trainen van machine learning-modellen.

Voordat u het ETL- of ELT-proces kunt ontwerpen, moet u uw gegevensbron en gegevensindeling identificeren.

De gegevensbron identificeren

Wanneer u begint met een nieuw machine learning-project, moet u eerst bepalen waar de gegevens die u wilt gebruiken, worden opgeslagen.

De benodigde gegevens voor uw Machine Learning-model kunnen al worden opgeslagen in een database of worden gegenereerd door een toepassing. De gegevens kunnen bijvoorbeeld worden opgeslagen in een CRM-systeem (Customer Relationship Management), in een transactionele database zoals een SQL-database of worden gegenereerd door een IoT-apparaat (Internet of Things).

Met andere woorden, uw organisatie beschikt mogelijk al over bedrijfsprocessen die de gegevens genereren en opslaan. Als u geen toegang hebt tot de gegevens die u nodig hebt, zijn er alternatieve methoden. U kunt nieuwe gegevens verzamelen door een nieuw proces te implementeren, nieuwe gegevens te verkrijgen met behulp van openbaar beschikbare gegevenssets of gecureerde gegevenssets te kopen.

De gegevensindeling identificeren

Op basis van de bron van uw gegevens kunnen uw gegevens in een specifieke indeling worden opgeslagen. U moet de huidige indeling van de gegevens begrijpen en de indeling bepalen die vereist is voor uw machine learning-workloads.

Meestal verwijzen we naar drie verschillende indelingen:

  • Tabellaire of gestructureerde gegevens: alle gegevens hebben dezelfde velden of eigenschappen, die in een schema zijn gedefinieerd. Tabelgegevens worden vaak weergegeven in een of meer tabellen waarin kolommen functies en rijen gegevenspunten vertegenwoordigen. Een Excel- of CSV-bestand kan bijvoorbeeld worden geïnterpreteerd als tabelgegevens:

    Patiënt-id Pregnancies Diastolische bloeddruk BMI Diabetes Pedigree Leeftijd Diabetische
    1354778 0 80 43.50973 1.213191 21 0
    1147438 8 93 21.24058 0.158365 23 1
  • Semi-gestructureerde gegevens: niet alle gegevens hebben dezelfde velden of eigenschappen. In plaats daarvan wordt elk gegevenspunt vertegenwoordigd door een verzameling sleutel-waardeparen. De sleutels vertegenwoordigen de functies en de waarden vertegenwoordigen de eigenschappen voor het afzonderlijke gegevenspunt. Realtime-toepassingen zoals IoT-apparaten (Internet of Things) genereren bijvoorbeeld een JSON-object:

    { "deviceId": 29482, "location": "Office1", "time":"2021-07-14T12:47:39Z", "temperature": 23 }
    
  • Ongestructureerde gegevens: bestanden die niet voldoen aan regels als het gaat om structuur. Documenten, afbeeldingen, audio- en videobestanden worden bijvoorbeeld beschouwd als ongestructureerde gegevens. Als u ze opslaat als ongestructureerde bestanden, hoeft u geen schema of structuur te definiëren, maar betekent dit ook dat u geen query's kunt uitvoeren op de gegevens in de database. U moet opgeven hoe u een dergelijk bestand moet lezen bij het gebruik van de gegevens.

Tip

Meer informatie over basisgegevensconcepten in Learn

De gewenste gegevensindeling identificeren

Wanneer u de gegevens uit een bron extraheert, kunt u de gegevens transformeren om de gegevensindeling te wijzigen en deze geschikter te maken voor modeltraining.

U kunt bijvoorbeeld een prognosemodel trainen om voorspellend onderhoud uit te voeren op een machine. U wilt functies zoals de temperatuur van de machine gebruiken om een probleem met de machine te voorspellen. Als u een waarschuwing krijgt dat er een probleem optreedt, kunt u kosten besparen voordat het probleem optreedt.

Stel dat de machine een sensor heeft die de temperatuur elke minuut meet. Elke minuut kan elke meting of vermelding worden opgeslagen als een JSON-object of -bestand.

Als u het prognosemodel wilt trainen, kunt u de voorkeur geven aan één tabel waarin alle temperatuurmetingen van elke minuut worden gecombineerd. U kunt aggregaties van de gegevens maken en een tabel met de gemiddelde temperatuur per uur hebben. Als u de tabel wilt maken, moet u de semi-gestructureerde gegevens transformeren die van het IoT-apparaat zijn opgenomen in tabelgegevens.

Als u een gegevensset wilt maken die u kunt gebruiken om het prognosemodel te trainen, kunt u het volgende doen:

  1. Gegevensmetingen extraheren als JSON-objecten van de IoT-apparaten.
  2. Converteer de JSON-objecten naar een tabel.
  3. Transformeer de gegevens om de temperatuur per machine per minuut op te halen.

Diagram van een JSON-object, geconverteerd naar een tabel. Ten slotte worden de gegevens samengevoegd om een kleinere tabel met de temperatuur per minuut te maken.

Zodra u de gegevensbron, de oorspronkelijke gegevensindeling en de gewenste gegevensindeling hebt geïdentificeerd, kunt u nadenken over de wijze waarop u de gegevens wilt leveren. Vervolgens kunt u een pijplijn voor gegevensopname ontwerpen om de benodigde gegevens automatisch te extraheren en te transformeren.