Metagegevens bewerken

Belangrijk

De ondersteuning voor Azure Machine Learning-studio (klassiek) eindigt op 31 augustus 2024. U wordt aangeraden om vóór die datum over te stappen naar Azure Machine Learning.

Vanaf 1 december 2021 kunt u geen nieuwe resources voor Azure Machine Learning-studio (klassiek) meer maken. Tot en met 31 augustus 2024 kunt u de bestaande resources van Azure Machine Learning-studio (klassiek) blijven gebruiken.

De documentatie van ML-studio (klassiek) wordt buiten gebruik gesteld en wordt in de toekomst mogelijk niet meer bijgewerkt.

Metagegevens bewerken die zijn gekoppeld aan kolommen in een gegevensset

Categorie: Gegevenstransformatie/manipulatie

Notitie

Van toepassing op: Machine Learning Studio (klassiek)

Vergelijkbare modules voor slepen en neerzetten zijn beschikbaar in Azure Machine Learning designer.

Moduleoverzicht

In dit artikel wordt beschreven hoe u de module Metagegevens bewerken in Machine Learning Studio (klassiek) gebruikt om metagegevens te wijzigen die zijn gekoppeld aan kolommen in een gegevensset. De waarden en de gegevenstypen in de gegevensset worden niet daadwerkelijk gewijzigd; welke wijzigingen zijn de metagegevens in Machine Learning die downstreamonderdelen vertelt hoe de kolom moet worden gebruikt.

Typische metagegevenswijzigingen zijn onder andere:

  • Booleaanse of numerieke kolommen behandelen als categorische waarden

  • Geeft aan welke kolom het klasselabel bevat, of de waarden die u wilt categoriseren of voorspellen

  • Kolommen markeren als functies

  • Datum-/tijdwaarden wijzigen in een numerieke waarde, of vice versa

  • De naam van kolommen wijzigen

Gebruik Edit Metadata op elk moment dat u de definitie van een kolom wilt wijzigen, meestal om te voldoen aan de vereisten voor een downstream-module. Sommige modules kunnen bijvoorbeeld alleen werken met specifieke gegevenstypen of vlaggen vereisen voor de kolommen, zoals IsFeature of IsCategorical.

Nadat u de vereiste bewerking hebt uitgevoerd, kunt u de metagegevens opnieuw instellen op de oorspronkelijke status.

Metagegevens bewerken configureren

  1. Voeg Machine Learning Studio (klassiek) de module Edit Metadata toe aan uw experiment en koppel de gegevensset die u wilt bijwerken. U vindt deze onder Gegevenstransformatie in de categorie Manipuleren .

  2. Klik op De kolom selector starten en kies de kolom of set kolommen om mee te werken. U kunt kolommen afzonderlijk kiezen, op naam of index, of u kunt een groep kolommen kiezen op type.

    Tip

    Hebt u hulp nodig bij het gebruik van kolomindexen? Zie de sectie Technische notities .

  3. Selecteer de optie Gegevenstype als u een ander gegevenstype wilt toewijzen aan de geselecteerde kolommen. Het wijzigen van het gegevenstype kan nodig zijn voor bepaalde bewerkingen: als uw brongegevensset bijvoorbeeld getallen als tekst heeft verwerkt, moet u deze wijzigen in een numeriek gegevenstype voordat u wiskundige bewerkingen gebruikt.

    • De ondersteunde gegevenstypen zijn String, Integer, Floating point, Boolean, DateTimeen TimeSpan.

    • Als er meerdere kolommen zijn geselecteerd, moet u de metagegevenswijzigingen toepassen op alle geselecteerde kolommen. Stel dat u 2-3 numerieke kolommen kiest. U kunt ze allemaal wijzigen in een tekenreeksgegevenstype en de naam ervan wijzigen in één bewerking. U kunt echter niet één kolom wijzigen in een tekenreeksgegevenstype en een andere kolom van een float in een geheel getal.

    • Als u geen nieuw gegevenstype opgeeft, blijven de metagegevens van de kolom ongewijzigd.

    • Wijzigingen van het gegevenstype zijn alleen van invloed op de metagegevens die zijn gekoppeld aan de gegevensset en hoe de gegevens worden verwerkt in downstreambewerkingen. De werkelijke kolomwaarden worden niet gewijzigd, tenzij u een andere bewerking (zoals afronding) voor de kolom hebt uitgevoerd. U kunt het oorspronkelijke gegevenstype op elk moment herstellen door Metagegevens bewerken te gebruiken om het kolomgegevenstype opnieuw in te stellen.

    Notitie

    Als u een type getal wijzigt in het datum/tijd-type , laat u het veld Datum/tijd-indeling leeg. Op dit moment is het niet mogelijk om de doelgegevensindeling op te geven.

Machine Learning kunt datums converteren naar getallen of getallen naar datums, als de getallen compatibel zijn met een van de ondersteunde .NET DateTime-objecten. Zie de sectie Technische notities voor meer informatie.

  1. Selecteer de optie Categorische om op te geven dat de waarden in de geselecteerde kolommen moeten worden behandeld als categorieën.

    U kunt bijvoorbeeld een kolom hebben die de getallen 0,1 en 2 bevat, maar weet dat de getallen eigenlijk 'Rokers', 'Niet-rokers' en 'Onbekend' betekenen. In dat geval kunt u, door de kolom als categorisch te markeren, ervoor zorgen dat de waarden niet worden gebruikt in numerieke berekeningen, alleen om gegevens te groeperen.

  2. Gebruik de optie Velden als u de manier wilt wijzigen waarop Machine Learning de gegevens in een model gebruikt.

    • Functie: Gebruik deze optie om een kolom als een functie te markeren, voor gebruik met modules die alleen op functiekolommen werken. Standaard worden alle kolommen in eerste instantie behandeld als functies.

    • Label: gebruik deze optie om het label te markeren (ook wel bekend als het voorspelbare kenmerk of doelvariabele). Voor veel modules is vereist dat er ten minste één (en slechts één) labelkolom aanwezig is in de gegevensset.

      In veel gevallen kan Machine Learning afleiden dat een kolom een klasselabel bevat, maar door deze metagegevens in te stellen, kunt u ervoor zorgen dat de kolom correct wordt geïdentificeerd. Als u deze optie instelt, worden de gegevenswaarden niet gewijzigd, alleen de manier waarop sommige machine learning de gegevens verwerken.

    • Gewicht: Gebruik deze optie met numerieke gegevens om aan te geven dat kolomwaarden gewichten vertegenwoordigen voor gebruik in machine learning scoring- of trainingsbewerkingen. Er kan slechts één gewichtskolom aanwezig zijn in een gegevensset en de kolom moet numeriek zijn. Deze optie werkt alleen in deze modellen: Two-Class Logistic Regression, Two-Class Support Vector Machine en Two-Class Neural Network.

    Tip

    Hebt u gegevens die niet in deze categorieën passen? Uw gegevensset kan bijvoorbeeld waarden bevatten zoals unieke id's die niet nuttig zijn als variabelen. Soms kunnen de ID's problemen veroorzaken bij gebruik in een model.

    Gelukkig bewaart 'onder de Machine Learning' al uw gegevens, zodat u dergelijke kolommen niet uit de gegevensset hoeft te verwijderen. Wanneer u bewerkingen wilt uitvoeren op een speciale set kolommen, verwijdert u alle andere kolommen tijdelijk met behulp van de module Kolommen in gegevensset selecteren. Later kunt u de kolommen weer samenvoegen in de gegevensset met behulp van de module Kolommen toevoegen.

  3. Gebruik de volgende opties om eerdere selecties te clearn en metagegevens te herstellen naar de standaardwaarden.

    • Functie verwijderen: gebruik deze optie om de functievlag te verwijderen.

      Omdat alle kolommen in eerste instantie worden behandeld als functies, moet u voor modules die wiskundige bewerkingen uitvoeren mogelijk deze optie gebruiken om te voorkomen dat numerieke kolommen worden behandeld als variabelen.

    • Label verwijderen: gebruik deze optie om de metagegevens van het label uit de opgegeven kolom te verwijderen.

    • Score verwijderen: gebruik deze optie om de scoremetagegevens uit de opgegeven kolom te verwijderen.

      Momenteel is de mogelijkheid om een kolom expliciet als een score te markeren niet beschikbaar in Machine Learning. Sommige bewerkingen resulteren er echter in dat een kolom intern als een score wordt gemarkeerd. Een aangepaste R-module kan ook scorewaarden produceren.

    • Duidelijk gewicht: gebruik deze optie om de metagegevens van het gewicht uit de opgegeven kolom te verwijderen.

  4. Bij Nieuwe kolomnamen typt u de nieuwe naam van de geselecteerde kolom of kolommen.

    • Kolomnamen kunnen alleen tekens gebruiken die worden ondersteund door de UTF-8-codering. Lege tekenreeksen, null-waarden of namen die volledig uit spaties bestaan, zijn niet toegestaan.

    • Als u de naam van meerdere kolommen wilt wijzigen, typt u de namen als een door komma's gescheiden lijst in volgorde van de kolomindexen.

    • De naam van alle geselecteerde kolommen moet worden gewijzigd. U kunt kolommen niet weglaten of overslaan.

    Tip

    Als u de naam van meerdere kolommen wilt wijzigen, kunt u een tekenreeks met door komma's scheidingstekens plakken die u vooraf hebt voorbereid. U kunt ook de modules Execute R Scriptof Apply SQL Transformation gebruiken. Zie de sectie Technische notities voor code en voorbeelden.

  5. Voer het experiment uit.

Voorbeelden

Voor voorbeelden van hoe metagegevens bewerken wordt gebruikt bij het voorbereiden van gegevens en het bouwen van modellen, zie de Azure AI Gallery:

  • Detectie van borstkanker: Kolomnamen worden gewijzigd nadat ze zijn toegevoegd aan gegevenssets. De kolom Patiënt-id wordt ook gemarkeerd als categorisch om ervoor te zorgen dat deze niet wordt gebruikt in een berekening, maar niet als een tekenreekswaarde wordt verwerkt.

  • Twitter-sentimentanalyse: demonstreert hoe u Metagegevens bewerken gebruikt om ervoor te zorgen dat kolommen worden behandeld als functies. Later in het experiment worden de metagegevens van de functie geweerd.

  • Gegevensverwerking en -analyse: In dit voorbeeld wordt Metagegevens bewerken gebruikt om nieuwe kolomnamen te definiëren voor gegevens die vanaf een webpagina zijn geladen.

Technische opmerkingen

Deze sectie bevat bekende problemen, veelgestelde vragen en enkele voorbeelden van veelvoorkomende tijdelijke oplossingen.

Bekende problemen

  • Aangepaste metagegevens worden niet ondersteund. Het is niet mogelijk om aangepaste metagegevens te gebruiken in Machine Learning of om metagegevens van kolommen te bewerken buiten Metagegevens bewerken. U kunt bijvoorbeeld geen metagegevens toevoegen die aangeven dat een kolom een unieke id is of andere beschrijvende kenmerken toevoegen. Machine Learning ondersteunt alleen de metagegevenskenmerken die in R worden gebruikt voor het werken met factoren, functies, gewichten en labels.

  • Niet-ondersteunde gegevenstypen. De volgende numerieke gegevenstypen worden niet ondersteund: Dubbel (decimaal) en Tijdstempel.

  • Het identificeren van scorekolommen. Er is momenteel geen optie in Metagegevens bewerken om een kolom te markeren als een kolom die scores bevat. U kunt echter de module Execute R Script gebruiken met een script dat vergelijkbaar is met het volgende om aan te geven dat een kolom scores bevat:

    dataset <- maml.mapInputPort(1)   
    attr(dataset$x, "label.type")= "True Labels"  
    attr(dataset$y, "feature.channel")= "Multiclass Classification Scores"  
    attr(dataset$y, "score.type")= "Assigned Labels"  
    maml.mapOutputPort("dataset");
    
  • Problemen met datum/tijd-indelingen. Het onderliggende datetime gegevenstype dat door Machine Learning wordt gebruikt, is POSIXct.

    Als alle datums in een kolom kunnen worden geparseerd door de standaardparser, wordt de kolom geïmporteerd en behandeld als tekenreeksgegevens.

    Als u probeert een kolom DateTime te converteren naar met behulp van de module Edit Metadata en een foutmelding krijgt, betekent dit dat de datum niet de indeling heeft die standaard door .Net wordt geaccepteerd. In dit geval raden we u aan de module R-script uitvoeren of de module Apply SQL Transformation te gebruiken om uw kolom te transformeren naar een indeling die wordt geaccepteerd door de standaardparser.

    Methode DateTime.Parse

    Tekenreeksen voor de standaarddatum en -tijdnotatie

Kolommen selecteren met kolomindexen

In zeer grote gegevenssets is het niet haalbaar om handmatig alle kolomnamen te typen of te selecteren. Het gebruik van de kolomindex is een snelkoppeling die u kunt gebruiken om veel kolommen op te geven. Deze sectie bevat enkele tips voor het gebruik van kolomindexen.

Open bijvoorbeeld de kolom selector, klik op WITH RULES, selecteer Include en kolomindexen en typ als volgt een bereik of reeks getallen:

  • Typ 1-20 om de eerste 20 kolommen te selecteren
  • Typ 5-20 om een bereik van kolommen te selecteren vanaf 5 en inclusief kolom 20.
  • Typ 1,5,10,15 om aaneengesloten kolommen te selecteren
  • Typ 1-2, 5 om kolommen 1, 2 en 5 te selecteren en kolommen 3 en 4 over te slaan
  • U kunt geen indexwaarde typen die groter is dan het aantal kolommen dat beschikbaar is in de gegevensset.

De volgende experimenten bieden enkele voorbeelden van andere methoden voor het selecteren en wijzigen van meerdere kolommen:

  • Binaire classificatie: De oorspronkelijke gegevens bevatten veel lege kolommen die zijn gegenereerd tijdens het importeren vanuit een spreadsheet. De extra kolommen zijn verwijderd door kolommen 1-11 op te geven in de module Gegevens splitsen .

  • Gegevensset downloaden van UCI: demonstreert hoe u kolomnamen als een lijst kunt invoeren met behulp van de module Gegevens handmatig invoeren en de lijst vervolgens als koppen in de gegevensset kunt invoegen met behulp van de module R-script uitvoeren.

  • Regex Select Columns: Dit experiment biedt een aangepaste module waarmee u een reguliere expressie kunt toepassen op kolomnamen. U kunt deze module gebruiken als invoer voor Het bewerken van metagegevens.

Alternatieve methoden voor het wijzigen van kolomnamen

Als u veel kolommen hebt om de naam te wijzigen, kunt u de module Execute R Script (R-script uitvoeren) of de module Apply SQL Transformation (Transformatie toepassen) gebruiken.

R-script gebruiken

Gegevenssets die door Machine Learning worden doorgegeven aan deze module als een data.frame, wat betekent dat u de R-functie colnames() en andere gerelateerde R-functies kunt gebruiken om kolomnamen weer te geven of te wijzigen.

Met de volgende code wordt bijvoorbeeld een lijst met nieuwe kolomnamen gemaakt en wordt deze lijst vervolgens toegepast op de invoerset om nieuwe kolomkoppen te genereren.

irisdata <- maml.mapInputPort(1);    
newnames <- c("CLASS", "SEPAL  LENGTH", "SEPAL WIDTH", "PETAL LENGTH", "PETAL WIDTH");
colnames(irisdata) = newnames
maml.mapOutputPort("irisdata");

In het volgende voorbeeld wordt een reguliere expressie in R gebruikt om alle exemplaren van de opgegeven tekenreeks in de kolomnamen voor globaal te vervangen irisdata:

# Map input dataset to variable
newirisdata <- maml.mapInputPort(1) # class: data.frame
names(newirisdata) <- gsub("col", "iris", names(newirisdata))
maml.mapOutputPort("newirisdata");

Met SQL

In het volgende voorbeeld wordt een gegevensset als invoer gebruikt en worden de kolomnamen gewijzigd met behulp van het sleutelwoord AS .

SELECT col1 as [C1], 
  col2 as [C2], 
  col3 as [C3], 
  col4 as [C4],
  col5 as [C5] 
FROM t1;

Verwachte invoer

Naam Type Description
Gegevensset Gegevenstabel Invoerset

Moduleparameters

Name Bereik Type Standaard Beschrijving
Kolom Alle ColumnSelection Kies de kolommen waarop uw wijzigingen moeten worden toegepast.
Gegevenstype Lijst Gegevenstype van metagegevenseditor Ongewijzigd Geef het nieuwe gegevenstype voor de kolom op.
Categorische gegevens Lijst Metagegevenseditor categorisch Ongewijzigd Geef aan of de kolom moet worden gemarkeerd als categorisch.
Velden Lijst Vlag van metagegevenseditor Ongewijzigd Geef op of de kolom moet worden beschouwd als een functie of label door leeralgoritmen.
Nieuwe kolomnamen alle Tekenreeks Typ de nieuwe namen voor de kolommen.

Uitvoer

Naam Type Description
Gegevensset met resultaten Gegevenstabel Gegevensset met gewijzigde metagegevens

Uitzonderingen

Uitzondering Description
Fout 0003 Er treedt een uitzondering op als een of meer invoersets null of leeg zijn.
Fout 0017 Er treedt een uitzondering op als een of meer opgegeven kolommen een type hebben dat niet wordt ondersteund door de huidige module.
Fout 0020 Er treedt een uitzondering op als het aantal kolommen in sommige gegevenssets dat aan de module wordt doorgegeven te klein is.
Fout 0031 Er treedt een uitzondering op als het aantal kolommen in de kolomset kleiner is dan nodig is.
Fout 0027 Er treedt een uitzondering op wanneer twee objecten dezelfde grootte moeten hebben, maar niet.
Fout 0028 Er treedt een uitzondering op wanneer de kolomset dubbele kolomnamen bevat en deze niet is toegestaan.
Fout 0037 Er treedt een uitzondering op als er meerdere labelkolommen zijn opgegeven en er slechts één is toegestaan.

Zie Foutcodes voor een lijst met fouten die specifiek zijn Machine Learning voor Studio-modules (klassiek).

Zie Foutcodes voor een lijst Machine Learning REST API API-uitzonderingen.

Zie ook

Manipulatie
Gegevenstransformatie
Lijst met A-Z-modules