Redigera metadata
Viktigt
Stödet för Machine Learning Studio (klassisk) upphör den 31 augusti 2024. Vi rekommenderar att du byter till Azure Machine Learning innan dess.
Från och med den 1 december 2021 kan du inte längre skapa nya Machine Learning Studio-resurser (klassisk). Du kan fortsätta att använda befintliga Machine Learning Studio-resurser (klassisk) till och med den 31 augusti 2024.
- Se information om hur du flyttar maskininlärningsprojekt från ML Studio (klassisk) till Azure Machine Learning.
- Läs mer om Azure Machine Learning.
Dokumentationen om ML Studio (klassisk) håller på att dras tillbaka och kanske inte uppdateras i framtiden.
Redigerar metadata som är associerade med kolumner i en datauppsättning
Kategori: Datatransformering/manipulering
Anteckning
Gäller endast för: Machine Learning Studio (klassisk)
Liknande dra och släpp-moduler är tillgängliga i Azure Machine Learning designer.
Modulöversikt
Den här artikeln beskriver hur du använder modulen Redigera metadata i Machine Learning Studio (klassisk) för att ändra metadata som är associerade med kolumner i en datauppsättning. Värdena och datatyperna i datauppsättningen ändras inte i själva verket. vilka ändringar som är metadata i Machine Learning som talar om för underordnade komponenter hur kolumnen ska användas.
Vanliga metadataändringar kan vara:
Behandla booleska eller numeriska kolumner som kategoriska värden
Anger vilken kolumn som innehåller klassetiketten eller de värden som du vill kategorisera eller förutsäga
Markera kolumner som funktioner
Ändra datum/tid-värden till ett numeriskt värde eller tvärtom
Byta namn på kolumner
Använd Redigera metadata när du behöver ändra definitionen av en kolumn, vanligtvis för att uppfylla kraven för en underordnad modul. Vissa moduler kan till exempel endast fungera med specifika datatyper eller kräva flaggor i kolumnerna, till exempel IsFeature
eller IsCategorical
.
När du har utfört den nödvändiga åtgärden kan du återställa metadata till dess ursprungliga tillstånd.
Så här konfigurerar du Redigera metadata
I Machine Learning Studio (klassisk) lägger du till modulen Redigera metadata i experimentet och ansluter den datauppsättning som du vill uppdatera. Du hittar den under Datatransformering i kategorin Manipulera .
Klicka på Starta kolumnväljaren och välj den kolumn eller uppsättning kolumner som du vill arbeta med. Du kan välja kolumner individuellt, efter namn eller index, eller så kan du välja en grupp med kolumner efter typ.
Tips
Behöver du hjälp med att använda kolumnindex? Se avsnittet Tekniska anteckningar.
Välj alternativet Datatyp om du behöver tilldela en annan datatyp till de valda kolumnerna. Du kan behöva ändra datatypen för vissa åtgärder. Om källdatamängden till exempel har siffror som hanteras som text måste du ändra dem till en numerisk datatyp innan du använder matematiska åtgärder.
De datatyper som stöds är
String
,Integer
,Floating point
,Boolean
,DateTime
ochTimeSpan
.Om flera kolumner är markerade måste du tillämpa metadataändringarna på alla valda kolumner. Anta till exempel att du väljer 2–3 numeriska kolumner. Du kan ändra alla till en strängdatatyp och byta namn på dem i en enda åtgärd. Du kan dock inte ändra en kolumn till en strängdatatyp och en annan kolumn från ett flyttal till ett heltal.
Om du inte anger en ny datatyp ändras inte kolumnens metadata.
Ändringar av datatypen påverkar endast de metadata som är associerade med datauppsättningen och hur data hanteras i underordnade åtgärder. De faktiska kolumnvärdena ändras inte om du inte utför en annan åtgärd (till exempel avrundning) i kolumnen. Du kan återställa den ursprungliga datatypen när som helst genom att använda Redigera metadata för att återställa kolumndatatypen.
Anteckning
Om du ändrar någon typ av nummer till DateTime-typen lämnar du fältet DateTime Format tomt. För närvarande går det inte att ange måldataformatet.
Machine Learning kan konvertera datum till tal eller tal till datum, om talen är kompatibla med något av de .NET DateTime-objekt som stöds. Mer information finns i avsnittet Tekniska anteckningar.
Välj det kategoriska alternativet för att ange att värdena i de valda kolumnerna ska behandlas som kategorier.
Du kan till exempel ha en kolumn som innehåller talen 0,1 och 2, men vet att talen faktiskt betyder "Röktare", "Ej röktare" och "Okänd". I så fall kan du genom att flagga kolumnen som kategorisk se till att värdena inte används i numeriska beräkningar, utan endast för att gruppera data.
Använd alternativet Fält om du vill ändra hur Machine Learning använder data i en modell.
Funktion: Använd det här alternativet för att flagga en kolumn som en funktion, för användning med moduler som endast fungerar på funktionskolumner. Som standard behandlas alla kolumner inledningsvis som funktioner.
Etikett: Använd det här alternativet för att markera etiketten (även kallat förutsägbart attribut eller målvariabel). Många moduler kräver att minst en (och endast en) etikettkolumn finns i datauppsättningen.
I många fall kan Machine Learning här slutsatsen att en kolumn innehåller en klassetikett, men genom att ange dessa metadata kan du se till att kolumnen identifieras korrekt. Om du anger det här alternativet ändras inte datavärdena, bara sättet som vissa maskininlärningsalgoritmer hanterar data på.
Vikt: Använd det här alternativet med numeriska data för att ange att kolumnvärden representerar vikter för användning i maskininlärningsbedömnings- eller träningsåtgärder. Endast en viktkolumn kan finnas i en datauppsättning och kolumnen måste vara numerisk. Det här alternativet fungerar endast i följande modeller: Two-Class Logistic Regression, Two-Class Support Vector Machine och Two-Class Neural Network.
Tips
Har du data som inte passar in i dessa kategorier? Datamängden kan till exempel innehålla värden som unika identifierare som inte är användbara som variabler. Ibland kan ID:er orsaka problem när de används i en modell.
Som tur är behåller Machine Learning alla dina data, så du behöver inte ta bort sådana kolumner från datauppsättningen. När du behöver utföra åtgärder på vissa särskilda kolumner tar du bara bort alla andra kolumner tillfälligt med hjälp av modulen Välj kolumner i datamängd . Senare kan du sammanfoga kolumnerna i datauppsättningen med hjälp av modulen Lägg till kolumner.
Använd följande alternativ för att rensa tidigare val och återställa metadata till standardvärdena.
Rensa funktion: Använd det här alternativet för att ta bort funktionsflaggan.
Eftersom alla kolumner initialt behandlas som funktioner kan du för moduler som utför matematiska operationer behöva använda det här alternativet för att förhindra att numeriska kolumner behandlas som variabler.
Rensa etikett: Använd det här alternativet för att ta bort etikettmetadata från den angivna kolumnen.
Rensa poäng: Använd det här alternativet för att ta bort poängens metadata från den angivna kolumnen.
För närvarande är möjligheten att uttryckligen markera en kolumn som en poäng inte tillgänglig i Machine Learning. Vissa åtgärder resulterar dock i att en kolumn flaggas som en poäng internt. Dessutom kan en anpassad R-modul mata ut poängvärden.
Rensa vikt: Använd det här alternativet för att ta bort viktmetadata från den angivna kolumnen.
För Nya kolumnnamn anger du det nya namnet på den valda kolumnen eller kolumnerna.
Kolumnnamn kan endast använda tecken som stöds av UTF-8-kodningen. Tomma strängar, null-värden eller namn som helt består av blanksteg är inte tillåtna.
Om du vill byta namn på flera kolumner skriver du namnen som en kommaavgränsad lista i ordningen på kolumnindexen.
Alla valda kolumner måste byta namn. Du kan inte utelämna eller hoppa över kolumner.
Tips
Om du behöver byta namn på flera kolumner kan du klistra in en kommaavgränsad sträng som förberetts i förväg. Du kan också använda modulerna Execute R Script (KörR-skript) eller Apply SQL Transformation (Tillämpa SQL Transformation). Kod och exempel finns i avsnittet Tekniska anteckningar.
Kör experimentet.
Exempel
Exempel på hur Redigera metadata används för att förbereda data och skapa modeller finns i Azure AI Gallery:
Canceridentifiering: Kolumnnamnen ändras efter anslutning till datauppsättningar. Kolumnen Patient-ID flaggas också som kategorisk för att säkerställa att den inte används i en beräkning, utan i stället hanteras som ett strängvärde.
Twitter-attitydanalys: Visar hur du använder Redigera metadata för att säkerställa att kolumner behandlas som funktioner. Senare i experimentet rensas funktionsmetadata.
Databearbetning och analys: I det här exemplet används Redigera metadata för att definiera nya kolumnnamn för data som lästs in från en webbsida.
Teknisk information
Det här avsnittet innehåller kända problem, vanliga frågor och svar och några exempel på vanliga lösningar.
Kända problem
Anpassade metadata stöds inte. Det går inte att använda anpassade metadata i Machine Learning eller redigera kolumnmetadata utanför Redigera metadata. Du kan till exempel inte lägga till metadata som anger att en kolumn är en unik identifierare eller lägga till andra beskrivande attribut . Machine Learning endast de metadataattribut som används i R för att arbeta med faktorer, funktioner, vikter och etiketter.
Datatyper som inte stöds. Följande numeriska datatyper stöds inte: Double (decimal) och TimeStamp.
Identifiera poängkolumner. För närvarande finns det inget alternativ i Redigera metadata för att flagga en kolumn som innehåller poäng. Du kan dock använda modulen Execute R Script (Kör R-skript ) med ett skript som liknar följande för att visa att en kolumn innehåller poäng:
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");
Problem med datetime-format. Den underliggande
datetime
datatypen som används av Machine Learning ärPOSIXct
.Om alla datum i en kolumn kan parsas av standardparsern importeras kolumnen och behandlas som strängdata.
Om du försöker konvertera
DateTime
en kolumn till med hjälp av modulen Redigera metadata och får ett fel, innebär det att datumet inte är i ett format som .Net accepterar som standard. I det här fallet rekommenderar vi att du använder modulen Execute R Script (Kör R-skript) eller apply SQL Transformation (Tillämpa SQL Transformation) för att omvandla kolumnen till ett format som accepteras av standardparsern.
Välja kolumner med hjälp av kolumnindex
I mycket stora datamängder är det inte möjligt att manuellt skriva eller välja alla kolumnnamn. Att använda kolumnindexet är en genväg som du kan använda för att ange många kolumner. Det här avsnittet innehåller några tips om hur du använder kolumnindex.
Öppna till exempel kolumnväljaren, klicka på MED REGLER, välj Inkludera och kolumnindex och skriv sedan ett intervall eller en serie med tal enligt följande:
- Skriv
1-20
för att välja de första 20 kolumnerna - Skriv
5-20
för att välja ett kolumnintervall med början vid 5 och inklusive kolumn 20. - Typ för
1,5,10,15
att välja överflödiga kolumner - Skriv
1-2, 5
för att välja kolumnerna 1, 2 och 5, och hoppa över kolumnerna 3 och 4 - Du kan inte ange ett indexvärde som är större än antalet kolumner som är tillgängliga i datauppsättningen.
Följande experiment innehåller några exempel på andra metoder för att välja och ändra flera kolumner:
Binär klassificering: Canceridentifiering: Ursprungliga data innehöll många tomma kolumner som genererades under import från ett kalkylblad. De extra kolumnerna har tagits bort genom att kolumnerna 1–11 anges i modulen Dela data.
Ladda ned datauppsättning från UCI: Visar hur du kan ange kolumnnamn som en lista med hjälp av modulen Ange data manuellt och sedan infoga listan i datauppsättningen som rubriker med hjälp av modulen Kör R-skript .
Regex Select Columns (Välj kolumner med Regex): Det här experimentet tillhandahåller en anpassad modul där du kan tillämpa ett reguljärt uttryck på kolumnnamn. Du kan använda den här modulen som indata för att redigera metadata.
Alternativa metoder för att ändra kolumnnamn
Om du har många kolumner att byta namn på kan du använda modulen Kör R-skript eller modulen Tillämpa SQL Transformering.
Använda R-skript
Datauppsättningar som används av Machine Learning skickas till den här modulen som en data.frame, vilket innebär att du kan använda R-funktionen colnames()
och andra relaterade R-funktioner för att lista eller ändra kolumnnamn.
Följande kod skapar till exempel en lista med nya kolumnnamn och tillämpar sedan listan på indatauppsättningen för att generera nya kolumnrubriker.
irisdata <- maml.mapInputPort(1);
newnames <- c("CLASS", "SEPAL LENGTH", "SEPAL WIDTH", "PETAL LENGTH", "PETAL WIDTH");
colnames(irisdata) = newnames
maml.mapOutputPort("irisdata");
I följande exempel används ett reguljärt uttryck i R för att globalt ersätta alla instanser av den angivna strängen i kolumnnamnen för irisdata
:
# Map input dataset to variable
newirisdata <- maml.mapInputPort(1) # class: data.frame
names(newirisdata) <- gsub("col", "iris", names(newirisdata))
maml.mapOutputPort("newirisdata");
Använda SQL
I följande exempel används en datauppsättning som indata och sedan ändras kolumnnamnen med hjälp av AS-nyckelordet .
SELECT col1 as [C1],
col2 as [C2],
col3 as [C3],
col4 as [C4],
col5 as [C5]
FROM t1;
Förväntade indata
Namn | Typ | Description |
---|---|---|
Datamängd | Datatabell | Indatauppsättning |
Modulparametrar
Name | Intervall | Typ | Standardvärde | Description |
---|---|---|---|---|
Kolumn | Valfri | ColumnSelection | Välj de kolumner som ändringarna ska gälla för. | |
Datatyp | Lista | Datatyp för metadataredigeraren | Oförändrad | Ange den nya datatypen för kolumnen. |
Kategoriska | Lista | Kategorisk metadataredigerare | Oförändrad | Ange om kolumnen ska flaggas som kategorisk. |
Fält | Lista | Flagga för metadataredigeraren | Oförändrad | Ange om kolumnen ska betraktas som en funktion eller etikett av inlärningsalgoritmer. |
Nya kolumnnamn | valfri | Sträng | Skriv de nya namnen för kolumnerna. |
Utdata
Namn | Typ | Description |
---|---|---|
Resultatdatauppsättning | Datatabell | Datauppsättning med ändrade metadata |
Undantag
Undantag | Description |
---|---|
Fel 0003 | Ett undantag inträffar om en eller flera indatauppsättningar är null eller tomma. |
Fel 0017 | Ett undantag inträffar om en eller flera angivna kolumner har en typ som inte stöds av den aktuella modulen. |
Fel 0020 | Ett undantag inträffar om antalet kolumner i vissa datauppsättningar som skickas till modulen är för litet. |
Fel 0031 | Ett undantag inträffar om antalet kolumner i kolumnuppsättningen är mindre än vad som behövs. |
Fel 0027 | Ett undantag inträffar när två objekt måste ha samma storlek, men det är de inte. |
Fel 0028 | Ett undantag inträffar när kolumnuppsättningen innehåller dubblettkolumnnamn och det inte tillåts. |
Fel 0037 | Ett undantag inträffar om flera etikettkolumner har angetts och endast en tillåts. |
En lista över fel som är specifika för Studio-moduler (klassisk) finns i Machine Learning felkoder.
En lista över API-undantag finns i Machine Learning REST API felkoder.