Sdílet prostřednictvím


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

Důležité

Podpora studia Machine Learning (Classic) skončí 31. srpna 2024. Doporučujeme do tohoto data přejít na službu Azure Machine Learning.

Od 1. prosince 2021 nebude možné vytvářet nové prostředky studia Machine Learning (Classic). Do 31. srpna 2024 můžete pokračovat v používání stávajících prostředků studia Machine Learning (Classic).

Dokumentace ke studiu ML (Classic) se vyřazuje z provozu a v budoucnu se nemusí aktualizovat.

Určuje, jak zpracovat hodnoty, které v datové sadě chybí.

Kategorie: Transformace a manipulace s daty

Poznámka

Platí pro: Machine Learning Studio (classic)

Podobné moduly s přetahováním jsou k dispozici v Azure Machine Learning návrháři.

Přehled modulu

Tento článek popisuje, jak pomocí modulu Vyčištění chybějících dat v Machine Learning Studiu (klasickém) odebrat, nahradit nebo odvodit chybějící hodnoty.

Datoví vědci často kontrolují chybějící hodnoty v datech a pak provádějí různé operace pro opravu dat nebo vkládání nových hodnot. 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 trénování 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í hodnotou nebo jinou hodnotou
  • Úplné odebrání řádků a sloupců, ve které chybí hodnoty
  • Odvození hodnot na základě statistických metod

Tip

S machine learningem jste se naučili něco nového? Tento článek obsahuje dobré vysvětlení, proč byste k nahrazení chybějících hodnot měli použít jednotlivé metody: Metody pro zpracování chybějících hodnot

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

Výstupem tohoto modulu je také definice transformace použité k vyčištění chybějících hodnot. Tuto transformaci můžete znovu použít u jiných datových sad, které mají stejné schéma, pomocí modulu Použít transformaci .

Použití funkce Vyčištění chybějících dat

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

Důležité

Metoda čištění, kterou použijete pro zpracování chybějících hodnot, může výrazně ovlivnit výsledky. Doporučujeme experimentovat s různými metodami. Zvažte jak odůvodnění použití konkrétní metody, tak kvalitu výsledků.

Nahrazení chybějících hodnot

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

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

  2. U sloupců, které se mají vyčistit, zvolte sloupce obsahující chybějící hodnoty, které chcete změnit. Můžete vybrat více sloupců, ale ve všech vybraných sloupcích musíte použít stejnou metodu nahrazení. Proto obvykle potřebujete řetězce sloupců a číselných sloupců vyčistit samostatně.

    Pokud například chcete zkontrolovat chybějící hodnoty ve všech číselných sloupcích:

    1. Otevřete Selektor sloupců a vyberte WITH RULES (S PRAVIDLY).

    2. V možnosti ZAČÍT S vyberte ŽÁDNÉ SLOUPCE.

      Můžete také začít se všemi sloupci a pak sloupce vyloučit. Pravidla se zpočátku nezobrazují, když nejprve kliknete na VŠECHNY SLOUPCE, ale můžete kliknout na ŽÁDNÉ SLOUPCE a pak znovu kliknout na VŠECHNY SLOUPCE, začít se všemi sloupci a pak odfiltrovat (vyloučit) sloupce na základě názvu, datového typu nebo indexu sloupců.

    3. V rozevíracímseznamu Zahrnout vyberte Typ sloupce a pak vyberte Číselný nebo konkrétnější číselný typ.

    Všechny metody čištění nebo nahrazování, které zvolíte, musí být použitelné pro všechny sloupce ve výběru. Pokud jsou data v libovolném sloupci nekompatibilní se zadanou operací, modul vrátí chybu a zastaví experiment.

  3. Jako Minimální poměr chybějících hodnot zadejte minimální počet chybějících hodnot požadovaných k provedení operace.

    Tuto možnost použijete v kombinaci s maximálním poměrem chybějících hodnot k definování podmínek, za kterých se u datové sady provádí operace čištění. Pokud chybí příliš mnoho nebo příliš málo řádků, 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í chybějící poměr hodnot nastavená na 0. To znamená, že chybějící hodnoty se vyčistí, i když chybí jenom jedna hodnota. Příklad použití této možnosti najdete v tématu Nastavení prahové hodnoty pro operace čištění.

    Upozornění

    Aby se zadaná operace měla použít, musí každý sloupec tuto podmínku splnit. 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 0,2 (20 %),, ale ve skutečnosti chybí pouze jeden sloupec 20 %. V takovém případě by se operace čištění vztahuje pouze na sloupec s více než 20 % chybějících hodnot. Ostatní sloupce by proto zůstaly beze změny.

    Pokud máte nějaké pochybnosti o tom, jestli se chybějící hodnoty změnily, vyberte možnost Vygenerovat sloupec chybějících indikátorů hodnot. K datové sadě se připojí sloupec, který označuje, jestli každý sloupec splňuje zadaná kritéria pro minimální a maximální rozsahy.

  4. V poli Maximální poměr chybějících hodnot zadejte maximální počet chybějících hodnot, které mohou být přítomny pro operaci, která se má provést.

    Nahrazení chybějící hodnoty můžete například provést pouze v případě, že 30 % nebo méně řádků obsahuje chybějící hodnoty, ale pokud ve více než 30 % řádků chybí hodnoty, ponechte tyto hodnoty tak, jak jsou.

    Čí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ích hodnot nastavený na 1. To znamená, že chybějící hodnoty se vyčistí i v případě, že chybí 100 % hodnot ve sloupci.

    Poznámka

    Pokud nastavíte prahovou hodnotu pomocí možností Minimální poměr chybějících hodnot nebo Maximální poměr chybějících hodnot, není možné provést operaci čištění, pokud ani jeden z vybraných sloupců nesplňuje kritéria.

  5. V části 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í MICE: U každé chybějící hodnoty tato možnost přiřadí novou hodnotu, která se vypočítá pomocí metody popsané ve statistické literatuře jako "Multivariate Imputation using Chained Equations" (Vícenásobná imputace pomocí zřetězení rovnic). U metody vícenásobné impuce se každá proměnná s chybějícími daty modeluje podmíněně pomocí ostatních proměnných v datech před vyplněním chybějících hodnot. Naproti tomu v jedné metodě imputace (například nahrazení chybějící hodnoty střední hodnotou sloupce) se přes data provádí jedno průchod, aby se určila hodnota výplně.

      Všechny metody imputace zavádějí určité chyby nebo odchylky, ale vícenásobná imputace lépe simuluje proces generující data a rozdělení pravděpodobnosti dat.

      Obecný úvod do metod pro zpracování chybějících hodnot najdete v tématu Chybějící data: moderní stav. Schafer a Můžete, 2002.

      Upozornění

      Tuto možnost nelze použít u zcela prázdných sloupců. Takové sloupce musí být odebrány nebo předány do výstupu tak, jak jsou.

    • Vlastní hodnota nahrazení: Tuto možnost použijte k zadání zástupné hodnoty (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.

    • Nahradit střední hodnotou: Vypočítá střední hodnotu sloupce a použije střední hodnotu jako nahrazovanou hodnotu pro každou chybějící hodnotu ve sloupci.

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

    • Nahradit mediánem: Vypočítá hodnotu mediánu sloupce a použije hodnotu mediánu jako náhradu za chybějící hodnotu ve sloupci.

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

    • Nahradit režimem: Vypočítá režim sloupce a použije režim jako nahrazovanou hodnotu pro každou chybějící hodnotu ve sloupci.

      Platí pro sloupce, které mají datové typy Integer, Double, Boolean nebo Categorical. Další informace najdete v části Technické poznámky.

    • Odebrat celý řádek: Úplně 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ějící.

    • 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řipojení uloženou transformaci na levý vstupní port použití transformace.

    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.

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

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

  • Použití funkcevyč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 Description
Datová sada Tabulka dat Datová sada, která se má vyčistit

Parametry modulu

Name Rozsah Typ Výchozí Description
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 Description
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 Description
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