Vyčištění chybějících dat

Určuje způsob zpracování hodnot chybějících z datové sady.

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 použít modul Vyčištění chybějících dat v Azure Machine Learning Studio (Classic) k odebrání, nahrazení nebo odvodit chybějící hodnoty.

Odborníci přes data často kontrolují data pro chybějící hodnoty a pak provádějí různé operace, aby data opravili nebo vložili nové hodnoty. Cílem takových operací čištění je zabránit problémům způsobeným chybějícími daty, která mohou nastat při výuce modelu.

Tento modul podporuje více typů operací pro "čištění" chybějících hodnot, včetně:

  • Nahrazení chybějících hodnot zástupným symbolem, středníku nebo jinou hodnotou
  • Zcela odebrání řádků a sloupců, které obsahují chybějící hodnoty
  • Odvození hodnot na základě statistických metod

Tip

Začínáte se strojovým učením? Tento článek poskytuje dobré vysvětlení, proč byste měli použít každou z různých metod pro nahrazení chybějících hodnot: metody pro zpracování chybějících hodnot .

Pomocí tohoto modulu se nezmění vaše zdrojová datová sada. Místo toho vytvoří v pracovním prostoru novou datovou sadu, kterou můžete použít v následujícím pracovním postupu. Můžete také uložit novou, vyčištěnou datovou sadu pro opakované použití.

Tento modul také výstupuje definici transformace použité k vyčištění chybějících hodnot. Tuto transformaci můžete znovu použít na jiné datové sady, které mají stejné schéma, pomocí modulu použít transformaci .

Jak používat čištění chybějících dat

Tento modul vám umožní definovat operaci čištění. Operaci čištění můžete také uložit, abyste ji mohli později použít pro nová data. Popis postupu vytvoření a uložení procesu čištění najdete na následujících odkazech:

Důležité

Čisticí metoda, kterou používáte pro zpracování chybějících hodnot, může významně ovlivnit vaše výsledky. Doporučujeme experimentovat s různými metodami. Vezměte v úvahu odůvodnění použití konkrétní metody a kvality výsledků.

Nahradit chybějící hodnoty

Pokaždé, když použijete modul Vyčištění chybějících dat na sadu dat, použije se stejná operace čištění pro všechny sloupce, které vyberete. Proto pokud potřebujete vyčistit různé sloupce pomocí různých metod, použijte samostatné instance modulu.

  1. Přidejte modul Vyčištění chybějících dat do experimentu a připojte datovou sadu, která má chybějící hodnoty.

  2. Pro sloupce, které mají být vyčištěnyvyberte sloupce obsahující chybějící hodnoty, které chcete změnit. Můžete zvolit více sloupců, ale je nutné použít stejnou metodu nahrazení ve všech vybraných sloupcích. Proto je obvykle nutné vyčistit řetězcové sloupce a číselné sloupce samostatně.

    Například pro kontrolu chybějících hodnot ve všech číselných sloupcích:

    1. Otevřete selektor sloupců a vyberte s pravidly.

    2. Pro možnost začít svyberte žádné sloupce.

      Můžete také začít se všemi SLOUPCI a pak vyloučit sloupce. Zpočátku se pravidla nezobrazují, pokud nejprve kliknete na všechny sloupce, ale můžete kliknout na žádné sloupce a pak znovu kliknout na všechny sloupce a začít se všemi sloupci a pak vyfiltrovat (vyloučit) sloupce podle názvu, datového typu nebo indexu sloupců.

    3. Jako Zahrnoutvyberte typ sloupce z rozevíracího seznamu a pak vyberte číselnénebo konkrétnější číselné typy.

    Jakákoli metoda čištění nebo náhrady, kterou zvolíte, musí být platná pro všechny sloupce ve výběru. Pokud jsou data v jakémkoli sloupci nekompatibilní se zadanou operací, modul vrátí chybu a zastaví experiment.

  3. Pro poměr minimální chybějící hodnotyzadejte minimální počet chybějících hodnot vyžadovaných pro provedení operace.

    Tuto možnost použijete v kombinaci s maximálním limitem chybějící hodnoty , abyste mohli definovat podmínky, za kterých se operace čištění provádí na datové sadě. Pokud je příliš mnoho nebo příliš málo řádků, ve kterých chybí hodnoty, operaci nelze provést.

    Číslo, které zadáte, představuje poměr chybějících hodnot ke všem hodnotám ve sloupci. Ve výchozím nastavení je vlastnost minimální hodnota poměru chybějící hodnoty nastavena na hodnotu 0. To znamená, že chybějící hodnoty se vyčistí i v případě, že existuje jenom jedna chybějící hodnota. Příklad použití této možnosti najdete v tématu nastavení prahové hodnoty pro operace čištění.

    Upozornění

    Tato podmínka musí být splněna každým a každým sloupcem, aby bylo možné zadanou operaci použít. Předpokládejme například, že jste vybrali tři sloupce a pak nastavíte minimální poměr chybějících hodnot na .2 (20%), ale v jednom sloupci je ve skutečnosti 20% chybějících hodnot. V tomto případě se operace čištění použije jenom pro sloupec s více než 20% chybějícími hodnotami. Ostatní sloupce proto nebudou změněny.

    Pokud máte nějaké pochybnosti o tom, jestli se chybějící hodnoty změnily, vyberte možnost, vygenerujte sloupec indikátor chybějící hodnoty. Sloupec je připojen k datové sadě, aby označoval, zda každý sloupec splnil zadaná kritéria pro minimální a maximální rozsahy.

  4. V poli maximální velikost chybějícíhodnoty zadejte maximální počet chybějících hodnot, které mohou být k dispozici pro provedení operace.

    Například může být vhodné provést nahrazení chybějící hodnoty pouze v případě, že 30% nebo méně řádků obsahuje chybějící hodnoty, ale hodnoty ponechte tak, jak jsou, pokud má více než 30% řádků chybějící hodnoty.

    Číslo definujete jako poměr chybějících hodnot ke všem hodnotám ve sloupci. Ve výchozím nastavení je maximální poměr chybějící hodnoty nastavený na hodnotu 1. To znamená, že chybějící hodnoty se vyčistí i v případě, že hodnota ve sloupci není 100%.

    Poznámka

    Pokud nastavíte prahovou hodnotu pomocí možnosti minimální poměr chybějící hodnoty nebo maximální velikost chybějící hodnoty, nelze operaci čištění provést, pokud ani jeden z vybraných sloupců nesplňuje kritéria.

  5. Pro režim čištěnívyberte jednu z následujících možností pro nahrazení nebo odebrání chybějících hodnot:

    • Nahrazení pomocí myši: u každé chybějící hodnoty Tato možnost přiřadí novou hodnotu, která se vypočte pomocí metody popsané ve statistické literatuře jako "lineární imputace pomocí zřetězených rovnic" nebo "vícenásobné imputacy pomocí zřetězených rovnic". V případě více metod imputacejsou všechny proměnné s chybějícími daty modelovány podmíněně pomocí dalších proměnných v datech před vyplněním chybějících hodnot. Na rozdíl od jedné metody imputac (jako je například nahrazení chybějící hodnoty hodnotou sloupce) se k určení hodnoty výplně vytvoří jeden průchod daty.

      Všechny metody imputace zavádí chybu nebo posun, ale vícenásobná imputace lépe simuluje proces generování dat a rozdělení dat do pravděpodobnosti.

      Obecný úvod do metod pro zpracování chybějících hodnot naleznete v tématu chybějící data: stav kresby. Schafer a Graham, 2002.

      Upozornění

      Tuto možnost nelze použít pro zcela prázdné sloupce. Tyto sloupce musí být odebrány nebo předány do výstupu, jak je to.

    • Vlastní substituční hodnota: pomocí této možnosti můžete zadat zástupnou hodnotu (například 0 nebo na), která se vztahuje na všechny chybějící hodnoty. Hodnota, kterou zadáte jako náhradu, musí být kompatibilní s datovým typem sloupce.

    • Nahraďte průměrem: vypočítá průměr sloupce a použije průměr jako hodnotu pro nahrazení každé chybějící hodnoty ve sloupci.

      Platí pouze pro sloupce, které mají datový typ integer, Double nebo Boolean. Další informace najdete v části technické poznámky .

    • Nahradit hodnotou medián: vypočítá medián sloupce a použije hodnotu mediánu jako náhradu pro všechny chybějící hodnoty ve sloupci.

      Platí pouze pro sloupce, které mají datový typ Integer nebo Double. Další informace najdete v části technické poznámky .

    • Nahradit hodnotou Mode: vypočítá režim sloupce a použije režim jako nahrazující hodnotu pro všechny chybějící hodnoty ve sloupci.

      Platí pro sloupce, které mají datový typ integer, Double, Boolean nebo kategorií. Další informace najdete v části technické poznámky .

    • Odebrat celý řádek: kompletně odebere všechny řádky v datové sadě, které mají jednu nebo více chybějících hodnot. To je užitečné v případě, že chybějící hodnota může být považována za náhodně chybět.

    • Odebrat celý sloupec: zcela odebere všechny sloupce v datové sadě, které mají jednu nebo více chybějících hodnot.

    • Nahrazení pomocí PRAVDĚPODOBNOSTNÍ DPS: nahradí chybějící hodnoty pomocí lineárního modelu, který analyzuje korelaci mezi sloupci a odhadne nedostatečnou aproximaci dat, ze kterých se rekonstruovat celá data. Základní redukce rozměrů je pravděpodobnostní forma analýzy hlavních komponent (DPS) a implementuje variantu modelu navrženou v deníku královská statistických společností, řady B 21 (3), 611 – 622 pomocí vysypávání a Bishop.

      V porovnání s jinými možnostmi, jako je například vícenásobná Imputaca pomocí zřetězených rovnic (myši), tato možnost má výhodu nevyžadující použití prediktivních vyrovnávání pro každý sloupec. Místo toho se blíží kovarianci pro celou datovou sadu. Proto může poskytovat lepší výkon u datových sad, které mají chybějící hodnoty v mnoha sloupcích.

      Klíčovým omezením této metody je, že rozbalí sloupce kategorií na číselné indikátory a vypočítá hustou matici kovariance výsledných dat. Není to také optimalizované pro zhuštěné reprezentace. Z těchto důvodů nejsou datové sady s velkým počtem sloupců a/nebo velkými kategorií doménami (desítky tisíců) podporované kvůli zákazu spotřeby místa.

      Tip

      Pamatujte, že zvolená metoda je použita pro všechny sloupce ve výběru. Proto pokud chcete nahradit některé chybějící hodnoty nulami v některých sloupcích, ale zástupný symbol vložit do jiných sloupců, měli byste použít možnost vybrat sloupce v datové sadě k oddělení dat a použít jiné instance modulu Vyčištění chybějících dat .

  6. Hodnota nahrazení možnosti je k dispozici, pokud jste vybrali možnost a vlastní substituční hodnota. Zadejte novou hodnotu, která se použije jako nahrazující hodnota pro všechny chybějící hodnoty ve sloupci.

    Všimněte si, že tuto možnost lze použít pouze ve sloupcích, které mají datový typ integer, Double, Boolean nebo Date. Pro sloupce data lze nahrazující hodnotu zadat také jako počet 100 – nanosekund od 1/1/0001 12:00 dop.

  7. Generovat sloupec indikátoru chybějící hodnoty: tuto možnost vyberte, pokud chcete výstupem určit, zda hodnoty ve sloupci splňují kritéria pro čištění chybějících hodnot. Tato možnost je užitečná hlavně v případě, že nastavujete novou operaci čištění a chcete se ujistit, že funguje tak, jak je navržena.

  8. Spusťte experiment nebo vyberte modul Vyčištění chybějících dat a klikněte na Spustit vybrané.

Výsledky

Modul vrací dva výstupy:

  • Vyčištěná datová sada: datová sada skládající se z vybraných sloupců s chybějícími hodnotami, které jsou zpracovány jako specifikované, spolu se sloupcem indikátoru, pokud jste vybrali tuto možnost.

    Sloupce, které nejsou vybrány pro čištění, jsou také "předávány".

  • Čištění transformace: transformace dat používaná k čištění, kterou je možné uložit do svého pracovního prostoru a později použít pro nová data.

Použít uloženou operaci čištění na nová data

Pokud potřebujete znovu opakovat čisticí operace, doporučujeme, abyste uložili svůj recept na čištění dat jako transformaci, abyste ho mohli znovu použít se stejnou datovou sadou. Ukládání čisticí transformace je zvláště užitečné, pokud je nutné často znovu importovat a vyčistit data, která mají stejné schéma.

  1. Přidejte do experimentu modul použít transformaci .

  2. Přidejte datovou sadu, kterou chcete vyčistit, a připojte datovou sadu ke vstupnímu portu na pravé straně.

  3. Rozbalte skupinu Transformers v levém podokně studia (Classic). Vyhledejte uloženou transformaci a přetáhněte ji do experimentu.

  4. Připojte uloženou transformaci k levému vstupnímu portu transformace Apply.

    Když použijete uloženou transformaci, nemůžete vybrat sloupce, na které se transformace aplikuje. Důvodem je, že transformace již byla definována a automaticky se používá pro datové typy zadané v původní operaci.

    Předpokládejme však, že jste vytvořili transformaci u podmnožiny číselných sloupců. Tuto transformaci lze použít na datovou sadu smíšených typů sloupců bez vyvolání chyby, protože chybějící hodnoty jsou změněny pouze v rámci odpovídajícího číselného sloupce.

  5. Spusťte experiment.

Příklady

Podívejte se na příklady použití tohoto modulu v Azure AI Gallery:

Technické poznámky

Tato část obsahuje podrobné informace o implementaci a také známé problémy a nejčastější dotazy.

  • K chybě dojde, pokud je použita možnost střední nebo medián, když jsou vybrány libovolné sloupce řetězce. Pokud potřebujete zpracovat sloupce různých datových typů, vytvořte dvě instance Vyčištění chybějících dat.

  • Při nahrazování chybějících hodnot se střední hodnotou ve sloupcích s datovými typy Boolean, Integer, DateTime nebo TimeSpan se sloupec nejprve převede na čísla s plovoucí desetinnou čárkou, průměr se vypočítá a výsledek se zaokrouhlí na nejbližší hodnotu původního datového typu.

  • Když zadáte nahrazující hodnotu, musí být tato hodnota kompatibilní s datovým typem ve vybraném sloupci.

  • NaN Inf –Inf Pro sloupce, kde je datový typ Double, jsou povoleny hodnoty, a.

  • Při použití metody myši je nahrazující hodnota předpokládaná pomocí modelu vyškolené myši.

  • Použití funkce vyčistit chybějící data může obnovit jiné typy sloupců. Pokud vaše data obsahují jiné typy sloupců, jako jsou například popisky, opravte typy sloupců pomocí Upravit metadata .

Omezení používání čisticích transformací

Následující omezení platí, pokud použijete uloženou transformaci (na základě Vyčištění chybějících dat) k novým datům:

  • Uložená transformace nemůže generovat hodnoty indikátoru, a to i v případě, že se tato možnost použila v původní operaci čištění. Zvažte hodnoty indikátoru jako nejužitečnější při testování nové transformace.

  • Transformace nepočítá nové hodnoty založené na nové datové sadě. Jinými slovy, pokud jste použili vyčistit chybějící data pro datovou sadu a a vygenerovali střední hodnotu 0,5, tato hodnota by se použila jako průměr pro nahrazení chybějících hodnot v datové sadě b bez ohledu na skutečné hodnoty v datové sadě DataSet b.

  • Datový typ sloupců v nové datové sadě se musí shodovat s datovým typem sloupců, na kterých byla transformace původně vytvořena. Pokud se u sloupce, který implicitně změní datový typ, dojde k chybě.

    Předpokládejme například, že vytvoříte střední hodnotu pro sloupec s celočíselnými daty [Sloupec1] a uložíte transformaci. Nyní chcete transformaci vyčištění použít pro kopii [Sloupec1], která byla upravena pomocí vzorce, například ([Sloupec1]/1,5). Chcete-li zajistit, že výsledkem je celé číslo, zaokrouhlete výsledek, ale při použití transformace se stále zobrazí chyba. Pokud ale upravíte hodnotu pomocí vzorce, jako je například ([sloupec 1] * 10), není vyvolána žádná chyba.

    Chcete-li se těmto problémům vyhnout, použijte k explicitnímu resetování datového typu na celé číslo hodnotu Upravit metadata . Obecně platí, že operace v modulu použití matematické operace implicitně mění číselné sloupce double .

Nastavení a interpretace mezních hodnot

Když zadáte prahovou hodnotu pro operace čištění pomocí možnosti minimální poměr chybějící hodnoty nebo maximální velikost chybějící hodnoty, mohou být výsledky neočekávané nebo matoucí. Abychom ukázali, jak možnosti pro maximum a minimální chybějící hodnoty fungují, poskytli jsme několik příkladů z ukázkové datové sady cen automobilů , který má mnoho sloupců s chybějícími hodnotami.

V následující tabulce je uveden počet chybějících hodnot pro několik sloupců v této datové sadě spolu s poměrem chybějících hodnot počítaných na datové sadě. Poměr chybějících hodnot (ve sloupci nejvíce vpravo) je hodnota, která by se použila při vyhodnocování datové sady proti zadaným prahovým hodnotám.

Předpokládejme, že jste nastavili poměr minimální chybějící hodnoty na 0,019 a nastavili jste maximální poměr chybějící hodnoty na 0,020. V následující tabulce hodnot některé sloupce splňují kritéria prahové hodnoty a některé ne:

  • Sloupce bore a stroke splňují kritéria prahové hodnoty.
  • Sloupce normalized-losses a compression-ratio nesplňují kritéria prahové hodnoty.
Název sloupce Počet chybějících hodnot Poměr chybějících hodnot
Normalizované ztráty 41 0,2
Průměr 4 0,019512195
Tažen 4 0,019512195
Kompresní poměr 0 0

Vzhledem k tomu, že některé sloupce ve výběru nevyhověly zadaným kritériím, nebyla provedena žádná operace čištění na žádném sloupci. Abychom vám pomohli zjistit, co se stalo, vrátí modul hodnotu false ve dvou ukazatelích sloupce bore_IsMissing a stroke_IsMissing .

Pokud však změníte prahovou hodnotu zpět na výchozí hodnoty 0 pro minimální poměr chybějící hodnoty a hodnotu 1 pro hodnotu poměr chybějící hodnoty, bude sloupec indikátoru vrácen pro všechny vybrané sloupce a Zadaná operace je provedena.

Tip

Pokud si nejste jistí, jestli čištění chybějících hodnot funguje podle očekávání, vyberte možnost Generovat sloupec pro indikaci chybějící hodnoty .

Známé problémy

Použijete-li metodu myš k vyčištění dat a poté zpracování datové sady, která obsahuje chybějící hodnoty, může dojít k následující chybě: "výjimka knihovny knihovny AFX –: model není vyškolený. (Chyba 1000) "

K této chybě dochází pouze v případě, že je vybrána metoda myš myší a pokud datová sada školení neobsahuje chybějící hodnoty, ale testovací datová sada je.

Očekávané vstupy

Název Typ Popis
Datová sada Tabulka dat Datová sada, která se má vyčistit

Parametry modulu

Name Rozsah Typ Výchozí Popis
Sloupce, které se mají vyčistit Všechny ColumnSelection Vše Vyberte sloupce pro operaci vyčištění chybějících hodnot.
Minimální poměr chybějící hodnoty [0,0; 1,0] Float 0,0 Vyčistit pouze sloupec s neúplným poměrem hodnot nad zadanou hodnotou ze sady všech vybraných sloupců.
Maximální poměr chybějící hodnoty [0,0; 1,0] Float 1,0 Vyčistit pouze sloupce s poměrem chybějící hodnoty pod zadanou hodnotou mimo sadu všech vybraných sloupců.
Režim čištění Seznam Zásady zpracování Vlastní substituční hodnota Vyberte algoritmus, který se použije při čištění chybějících hodnot.
Nahrazující hodnota Všechny Řetězec "0" Zadejte hodnotu, která vybere místo chybějících hodnot.

Tato hodnota je volitelná.
Sloupce se všemi chybějícími hodnotami Všechny ColumnsWithAllValuesMissing Odebrat Určuje, zda mají být ve výstupu zachovány sloupce všech chybějících hodnot.
Vygenerovat sloupec indikátoru chybějící hodnoty Všechny Logická hodnota false (nepravda) Vygeneruje sloupec, který určuje, které řádky se vyčistily.
Počet iterací [1; 10] Integer 5 Zadejte počet iterací při použití myši.
Počet iterací pro předpověď DPS [1; 50] Integer 10 Zadejte počet iterací při použití předpovědi DPS.

Výstupy

Název Typ Popis
Vyčištěná datová sada Tabulka dat Vyčištěná datová sada
Čištění transformace Rozhraní ITransform Transformace, která má být předána modulu použít transformaci k vyčištění nových dat.

Výjimky

Výjimka Popis
Chyba 0,002 K výjimce dojde v případě, že jeden nebo více parametrů nelze analyzovat nebo převést ze zadaného typu na typ vyžadovaný cílovou metodou.
Chyba 0003 K výjimce dojde, pokud jedna nebo více vstupních datových sad je null nebo prázdné.
Chyba 0008 Pokud parametr není v rozsahu, dojde k výjimce.
Chyba 0013 K výjimce dojde v případě, že štíhlý objekt předaný modulu má neplatný typ.
Chyba 0018 Pokud vstupní datová sada není platná, dojde k výjimce.
Chyba 0039 V případě neúspěchu operace dojde k výjimce.

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