Úpravy metadat

Upraví Metadata přidružená ke sloupcům v datové sadě.

Kategorie: transformace nebo manipulace s daty

Poznámka

Platí pro: Machine Learning Studio (Classic)

Tento obsah se týká pouze studia (Classic). Podobné moduly přetažení byly přidány do návrháře Azure Machine Learning. Další informace najdete v tomto článku porovnávající tyto dvě verze.

Přehled modulu

Tento článek popisuje, jak pomocí modulu Upravit metadata v Azure Machine Learning Studio (Classic) změnit metadata, která jsou přidružená ke sloupcům v datové sadě. Hodnoty a datové typy v datové sadě se ve skutečnosti nezmění. Jaké změny jsou metadata uvnitř Azure Machine Learning, která oznamuje podřízeným součástem použití sloupce.

Typické změny metadat mohou zahrnovat:

  • Zpracovávání logických nebo číselných sloupců jako hodnot kategorií

  • Označuje, který sloupec obsahuje popisek třídy , nebo hodnoty, které chcete zařadit do kategorií nebo odhadnout.

  • Označení sloupců jako funkcí

  • Změna hodnot data a času na číselnou hodnotu, nebo naopak

  • Přejmenování sloupců

Použijte úpravu metadat kdykoli potřebujete upravit definici sloupce, obvykle pro splnění požadavků pro modul pro příjem dat. Některé moduly například mohou pracovat pouze s konkrétními datovými typy nebo vyžadovat příznaky na sloupcích, například IsFeature nebo IsCategorical .

Po provedení požadované operace můžete metadata obnovit do původního stavu.

Konfigurace metadat pro úpravy

  1. V Azure Machine Learning Studio (Classic) přidejte do experimentu modul Upravit metadata a připojte datovou sadu, kterou chcete aktualizovat. Můžete ji najít v části transformace datv kategorii manipulace .

  2. Klikněte na tlačítko Spustit selektor sloupců a vyberte sloupec nebo sadu sloupců, se kterými chcete pracovat. Sloupce můžete zvolit jednotlivě, podle názvu nebo indexu nebo můžete zvolit skupinu sloupců podle typu.

    Tip

    Potřebujete pomoci s používáním indexů sloupců? Přečtěte si část technické poznámky .

  3. Vyberte možnost datového typu , pokud pro vybrané sloupce potřebujete přiřadit jiný datový typ. Změna datového typu může být potřeba pro určité operace: například pokud má vaše zdrojová datová sada čísla zpracovaná jako text, musíte je před použitím matematických operací změnit na číselný datový typ.

    • Podporované datové typy jsou String , Integer ,, Floating point , Boolean a DateTime TimeSpan .

    • Pokud je vybráno více sloupců, je nutné použít změny metadat u všech vybraných sloupců. Řekněme například, že vyberete 2-3 číselné sloupce. Můžete je změnit na datový typ String a přejmenovat je v jedné operaci. Nelze však změnit jeden sloupec na datový typ String a jiný sloupec z typu float na celé číslo.

    • Pokud nezadáte nový datový typ, metadata sloupce se nezmění.

    • Změny datového typu ovlivní pouze metadata, která jsou přidružena k datové sadě a způsob zpracování dat v rámci navazujících operací. Skutečné hodnoty sloupce se nezmění, pokud u sloupce neprovedete jinou operaci (například zaokrouhlování). Původní datový typ můžete kdykoli obnovit pomocí Upravit metadata a obnovit datový typ sloupce.

    Poznámka

    Pokud změníte libovolný typ čísla na typ DateTime , ponechte pole formát data a času prázdné. V současné době není možné zadat cílový formát dat.

Azure Machine Learning mohou převést data na čísla nebo čísla na kalendářní data, pokud jsou čísla kompatibilní s jedním z podporovaných objektů DateTime .NET. Další informace najdete v části technické poznámky .

  1. Vyberte možnost kategorií a určete tak, že hodnoty ve vybraných sloupcích by měly být považovány za kategorie.

    Můžete mít například sloupec, který obsahuje čísla 0, 1 a 2, ale víte, že ve skutečnosti znamenají hodnoty "Kouřer", "nekouřový" a "unknown". V takovém případě příznakem sloupce jako kategorií můžete zajistit, aby se hodnoty nepoužívaly v numerických výpočtech, a to pouze k seskupení dat.

  2. Možnost pole použijte, pokud chcete změnit způsob, jakým Azure Machine Learning používá data v modelu.

    • Funkce: tuto možnost použijte k označení sloupce jako funkce pro použití s moduly, které pracují pouze na sloupcích funkcí. Ve výchozím nastavení se všechny sloupce považují za funkce.

    • Label: tuto možnost použijte k označení popisku (označuje se také jako předvídatelný atribut nebo cílová proměnná). Mnoho modulů vyžaduje, aby datová sada obsahovala alespoň jeden sloupec popisku (a pouze jeden).

      V mnoha případech Azure Machine Learning může odvodit, že sloupec obsahuje popisek třídy, ale nastavením těchto metadat můžete zajistit, aby byl sloupec správně identifikován. Nastavením této možnosti se nezmění hodnoty dat, a to jenom tak, jak některé algoritmy strojového učení data zpracovávají.

    • Váha: pomocí této možnosti s numerickými daty označíte, že hodnoty sloupců představují váhy pro použití v rámci bodování strojového učení nebo školicích operací. V datové sadě může být přítomen pouze jeden sloupec váhy a sloupec musí být číselná.

    Tip

    Mají data, která se nevejdou do těchto kategorií? Například vaše datová sada může obsahovat hodnoty jako jedinečné identifikátory, které nejsou užitečné jako proměnné. Někdy můžou identifikátory způsobit problémy při použití v modelu.

    Naštěstí "v rámci pokrývá" Azure Machine Learning udržuje všechna vaše data, takže nemusíte tyto sloupce z datové sady odstraňovat. Pokud potřebujete provést operace s určitou zvláštní sadou sloupců, stačí odebrat všechny ostatní sloupce dočasně pomocí modulu Výběr sloupců v datové sadě . Později můžete sloučit sloupce zpátky do datové sady pomocí modulu Přidat sloupce .

  3. Pomocí následujících možností smažete předchozí výběry a obnovíte výchozí hodnoty metadat.

    • Clear – funkce: tuto možnost použijte, pokud chcete odebrat příznak funkce.

      Vzhledem k tomu, že všechny sloupce jsou pro moduly, které provádějí matematické operace, zpočátku zpracovávány jako funkce, možná budete muset použít tuto možnost, chcete-li zabránit tomu, aby se číselné sloupce považovat za proměnné.

    • Vymazat popisek: pomocí této možnosti můžete odebrat metadata popisku ze zadaného sloupce.

    • Vymazat skóre: pomocí této možnosti můžete ze zadaného sloupce odebrat metadata skóre .

      V současné době možnost explicitně označit sloupec jako skóre není v Azure Machine Learning k dispozici. Některé operace ale mají za následek, že se sloupec označí jako skóre interně. Také vlastní modul R může výstupní hodnoty skóre.

    • Vymazat váhu: pomocí této možnosti můžete odebrat metadata váhy ze zadaného sloupce.

  4. Pro nové názvy sloupcůzadejte nový název vybraného sloupce nebo sloupce.

    • Názvy sloupců můžou používat jenom znaky, které podporuje kódování UTF-8. Prázdné řetězce, hodnoty null nebo názvy sestávající výhradně z mezer nejsou povoleny.

    • Chcete-li přejmenovat více sloupců, zadejte názvy jako seznam oddělený čárkami v pořadí indexů sloupců.

    • Všechny vybrané sloupce musí být přejmenovány. Nemůžete vynechat nebo přeskočit sloupce.

    Tip

    Pokud potřebujete přejmenovat více sloupců, můžete vložit textový řetězec s oddělovači, který je připravený předem. Nebo použijte skript spustit v jazyce R nebo použijte moduly transformace SQL . Kód a příklady najdete v části technické poznámky .

  5. Spusťte experiment.

Příklady

Příklady toho, jak se v přípravě dat a sestavování modelů používají úpravy metadat , najdete v Azure AI Gallery:

  • Duplicity na prsních rakovinu: názvy sloupců se po připojení k datovým sadám změní. Sloupec ID pacienta je také označen jako kategorií , aby se zajistilo, že se nepoužívá ve výpočtu, ale místo aby se zpracoval jako řetězcová hodnota.

  • Analýza Twitter mínění: ukazuje, jak používat editovaná metadata k zajištění toho, aby se sloupce nacházely jako funkce. Později v experimentu se metadata funkce vymažou.

  • Zpracování a analýza dat: v této ukázce se k definování nových názvů sloupců pro data načtená z webové stránky používají úpravy metadat .

Technické poznámky

Tato část obsahuje známé problémy, nejčastější dotazy a několik příkladů běžných řešení.

Známé problémy

  • Vlastní metadata se nepodporují. V Azure Machine Learning není možné používat vlastní metadata ani upravovat metadata sloupce mimo Upravit metadata. Nemůžete například přidat metadata indikující, že je sloupec jedinečným identifikátorem, nebo přidat další popisné atributy. Azure Machine Learning podporuje pouze atributy metadat používané v R pro práci s faktory, funkcemi, tloušťkami a popisky.

  • Nepodporované datové typy. Následující číselné datové typy nejsou podporovány: Double (Decimal) a TimeStamp.

  • Identifikují se sloupce skóre. V současné době není v úpravách metadat žádná možnost k označení sloupce jako obsahujícího skóre. K označení toho, že sloupec obsahuje skóre, ale můžete použít modul skriptu Execute R podobný skriptu, který je podobný následujícímu:

    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");
    
  • Problémy s formáty data a času. Základní datetime datový typ používaný Azure Machine Learning je POSIXct .

    Pokud se všechna data ve sloupci dají analyzovat pomocí výchozího analyzátoru, sloupec se naimportuje a zpracuje jako řetězcová data.

    Pokud se pokusíte převést sloupec na pomocí DateTime modulu Upravit metadata a získat chybu, znamená to, že toto datum není ve formátu, který ve výchozím nastavení standardně přijímá rozhraní .NET. V takovém případě doporučujeme k transformaci sloupce na formát přijatý výchozím analyzátorem použít modul spuštění skriptu jazyka R nebo použít modul transformace SQL .

    DateTime. Parse – metoda

    Řetězce standardního formátu data a času

Výběr sloupců pomocí indexů sloupců

Ve velkých datových sadách není možné ručně zadávat ani vybírat všechny názvy sloupců. Použití indexu sloupce je jedna klávesová zkratka, kterou můžete použít k zadání mnoha sloupců. V této části najdete několik tipů k použití indexů sloupců.

Otevřete například selektor sloupců, klikněte na pravidla, vyberte Zahrnout a indexy sloupcůa pak zadejte rozsah nebo řadu čísel následujícím způsobem:

  • Typ 1-20 pro výběr prvních 20 sloupců
  • Zadejte 5-20 , chcete-li vybrat rozsah sloupců počínaje 5 a včetně sloupce 20.
  • Typ 1,5,10,15 pro výběr nesouvislých sloupců
  • Typ 1-2, 5 pro výběr sloupců 1, 2 a 5, vynechané sloupce 3 a 4
  • Nelze zadat hodnotu indexu, která je větší než počet sloupců dostupných v datové sadě.

Následující experimenty obsahují některé příklady jiných metod pro výběr a úpravu více sloupců:

  • Binární klasifikace: detekce prsních rakoviny: původní data obsahovala mnoho prázdných sloupců vygenerovaných během importu z tabulky. Nadbytečné sloupce byly odebrány zadáním sloupců 1-11 v modulu Split data .

  • Stáhnout datovou sadu z aplikace UCI: demonstruje, jak můžete zadat názvy sloupců jako seznam pomocí ručního modulu zadat data a pak tento seznam vložit do datové sady jako záhlaví pomocí modulu skriptu Execute R .

  • Regex Select Columns: Tento experiment poskytuje vlastní modul, který umožňuje použít regulární výraz pro názvy sloupců. Tento modul můžete použít jako vstup pro úpravu metadat.

Alternativní metody úprav názvů sloupců

Pokud máte mnoho sloupců k přejmenování, můžete použít modul spuštění skriptu jazyka R nebo modul použít transformaci SQL .

Použití skriptu jazyka R

Sady dat používané v Azure Machine Learning jsou předány do tohoto modulu jako data. rámec, což znamená, že můžete použít colnames() funkci r a další související funkce jazyka r k vypsání nebo změně názvů sloupců.

Například následující kód vytvoří seznam nových názvů sloupců a pak použije tento seznam na vstupní datovou sadu pro generování nových záhlaví sloupců.

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

Následující příklad používá regulární výraz v R k globálně nahrazuje všechny výskyty zadaného řetězce v názvech sloupců pro irisdata :

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

Používání SQL

Následující příklad přebírá datovou sadu jako vstup a potom mění názvy sloupců pomocí klíčového slova as .

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

Očekávaný vstup

Název Typ Popis
Datová sada Tabulka dat Vstupní datová sada

Parametry modulu

Name Rozsah Typ Výchozí Popis
Sloupec Všechny ColumnSelection Vyberte sloupce, na které by se měly změny vztahovat.
Datový typ Seznam Datový typ editoru metadat Oproti Zadejte nový datový typ pro sloupec.
Kategorické Seznam Editor metadat kategorií Oproti Určete, jestli by měl být sloupec označený jako kategorií.
Pole Seznam Příznak editoru metadat Oproti Určete, jestli se má sloupec považovat za funkci nebo popisek prostřednictvím výukových algoritmů.
Nové názvy sloupců Libovolný Řetězec Zadejte nové názvy sloupců.

Výstup

Název Typ Popis
Datová sada výsledků Tabulka dat Datová sada se změněnými metadaty

Výjimky

Výjimka Popis
Chyba 0003 K výjimce dojde, pokud jedna nebo více vstupních datových sad je null nebo prázdné.
Chyba 0017 K výjimce dojde v případě, že jeden nebo více zadaných sloupců má typ, který není podporovaný aktuálním modulem.
Chyba 0020 K výjimce dojde, pokud je počet sloupců v některých datových sadách předaných do modulu příliš malý.
Chyba 0031 K výjimce dojde, pokud je počet sloupců v sadě sloupců menší, než je potřeba.
Chyba 0027 K výjimce dojde, pokud musí mít dva objekty stejnou velikost, ale nejsou.
Chyba 0028 K výjimce dojde, pokud sada sloupců obsahuje duplicitní názvy sloupců a není povolená.
Chyba 0037 K výjimce dojde, pokud je zadáno více sloupců popisku a je povolena pouze jedna.

Seznam chyb, které jsou specifické pro moduly studia (Classic), najdete v článku kódy chyb Machine Learning.

Seznam výjimek rozhraní API najdete v tématu Machine Learning REST API chybové kódy.

Viz také

Úkon
Transformace dat
Seznam modulů a-Z