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.
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.
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:
Otevřete selektor sloupců a vyberte s pravidly.
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ů.
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.
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.
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.
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 .
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.
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.
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.
Přidejte do experimentu modul použít transformaci .
Přidejte datovou sadu, kterou chcete vyčistit, a připojte datovou sadu ke vstupnímu portu na pravé straně.
Rozbalte skupinu Transformers v levém podokně studia (Classic). Vyhledejte uloženou transformaci a přetáhněte ji do experimentu.
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.
Spusťte experiment.
Příklady
Podívejte se na příklady použití tohoto modulu v Azure AI Gallery:
Předpověď výkonnosti studenta: v této ukázce jsou pro chybějící hodnoty vloženy nuly.
Křížové ověření pro ukázku pro binární třídění: hodnoty nula slouží k vyplnění chybějících hodnot a pro sledování změn je vytvořen sloupec indikátoru. Sloupce se všemi chybějícími hodnotami jsou také zachovány.
Zpracování a analýza datových sad: v této ukázce různé větve experimentu používají různé metody pro chybějící substituci hodnoty a datové sady se pak vyhodnocují pomocí souhrnu dat a výpočetních lineární korelace.
Ukázka předpovědi zpoždění letu: prázdné řádky se úplně odeberou.
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
astroke
splňují kritéria prahové hodnoty. - Sloupce
normalized-losses
acompression-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.