Hiányzó adatok törlése

Meghatározza, hogy az adatkészletből hiányzó értékek hogyan legyenek kezelve

Kategória: adatátalakítás/-manipuláció

Megjegyzés

Akövetkezőkre vonatkozik: Machine learning Studio (klasszikus)

Ez a tartalom csak a Studióra vonatkozik (klasszikus). Hasonló drag and drop-modulok lettek hozzáadva a Azure Machine Learning Designerhez. Ebben a cikkben további információt talál a két verzió összehasonlításávalkapcsolatban.

Modul áttekintése

Ez a cikk azt ismerteti, hogyan használható a tiszta hiányzó adatmodul a Azure Machine learning Studio (klasszikus), a hiányzó értékek eltávolítására, cseréjére vagy következtetésekre való kivonására.

Az adatszakértők gyakran tekintik meg a hiányzó értékek adatait, majd különböző műveleteket hajtanak végre az adatok kijavításához vagy új értékek beszúrásához. Az ilyen tisztítási műveletek célja, hogy megakadályozza a modell betanításakor felmerülő hiányzó adatok által okozott problémákat.

Ez a modul több típusú műveletet támogat a "tisztítás" hiányzó értékekhez, beleértve a következőket:

  • Hiányzó értékek cseréje helyőrző, középérték vagy más értékre
  • A hiányzó értékeket tartalmazó sorok és oszlopok teljes eltávolítása
  • Statisztikai módszerek alapján kikövetkeztetett értékek

Tipp

Új a gépi tanuláshoz? Ez a cikk jó magyarázatot nyújt arra, hogy miért érdemes a hiányzó értékek helyett a különböző módszereket használni: a hiányzó értékek kezelésére szolgáló metódusok .

A modul használata nem módosítja a forrás adatkészletet. Ehelyett létrehoz egy új adatkészletet a munkaterületen, amelyet a következő munkafolyamatban használhat. Azt is megteheti, hogy újra felhasználja az új, megtisztított adatkészletet.

Ez a modul a hiányzó értékek tisztításához használt átalakítás definícióját is megjeleníti. Ezt az átalakítást újrahasználhatja más, azonos sémával rendelkező adatkészleteken az átalakítási modul alkalmazása lehetőség használatával.

A tiszta hiányzó adatértékek használata

Ez a modul lehetővé teszi a tisztítási művelet definiálását. A tisztítási műveletet úgy is mentheti, hogy később új adatként is alkalmazható legyen. A takarítási folyamat létrehozásának és mentésének leírását az alábbi hivatkozásokon tekintheti meg:

Fontos

A hiányzó értékek kezelésére használt tisztítási módszer jelentősen befolyásolhatja az eredményeket. Javasoljuk, hogy kísérletezzen különböző módszerekkel. Vegye fontolóra egy adott módszer használatának indoklását, valamint az eredmények minőségét.

Hiányzó értékek cseréje

Minden alkalommal, amikor a tiszta hiányzó adatmodult alkalmazza egy adathalmazra, a rendszer az összes kiválasztott oszlopra alkalmazza ugyanazt a tisztítási műveletet. Ezért ha eltérő módszerekkel kell megtisztítani a különböző oszlopokat, használja a modul különálló példányait.

  1. Vegye fel a tiszta hiányzó adatmodult a kísérletbe, és kapcsolja össze a hiányzó értékekkel rendelkező adatkészletet.

  2. A tisztítani kívánt oszlopok esetében válassza ki azokat az oszlopokat, amelyek tartalmazzák a hiányzó értékeket. Több oszlopot is kiválaszthat, de az összes kijelölt oszlopban ugyanazt a helyettesítő metódust kell használnia. Ezért általában a sztring oszlopokat és a numerikus oszlopokat külön kell megtisztítani.

    Például a hiányzó értékek kereséséhez az összes numerikus oszlopban:

    1. Nyissa meg az oszlop-választót, és válassza a szabályokkal lehetőséget.

    2. A kezdéshez válassza a nincs oszlop lehetőséget.

      Az összes OSZLOPOT is elindíthatja, majd kihagyhatja az oszlopokat. Kezdetben a szabályok nem jelennek meg, ha először a minden oszlop elemre kattint, de a nem oszlopok elemre kattint, majd a minden oszlop újra elemre kattintva elindíthatja az összes oszlopot, majd kiszűrheti (kizárhatja) az oszlopokat a név, az adattípus vagy az oszlopok indexe alapján.

    3. A include (Belefoglalás) mezőben válassza ki az oszlop típusát a legördülő listából, majd válassza a numerikus lehetőséget, vagy egy konkrétabb numerikus típust.

    Minden kiválasztott tisztítási vagy helyettesítési módszernek a kijelölés összes oszlopára érvényesnek kell lennie. Ha valamelyik oszlopban lévő adatok nem kompatibilisek a megadott művelettel, a modul hibát ad vissza, és leállítja a kísérletet.

  3. A minimális hiányzó érték aránynál határozza meg a művelet végrehajtásához szükséges hiányzó értékek minimális számát.

    Ezt a kapcsolót a hiányzó értékek maximális arányával együtt használva definiálhatja azokat a feltételeket, amelyekben a tisztítási művelet elvégzése történik az adatkészleten. Ha túl sok vagy túl kevés sor hiányzik az értékek közül, a művelet nem hajtható végre.

    A beírt szám a hiányzó értékek arányát jelöli az oszlopban lévő összes értékre. Alapértelmezés szerint a hiányzó érték arány tulajdonság értéke 0. Ez azt jelenti, hogy a hiányzó értékek akkor is törlődnek, ha csak egy hiányzó érték van megadva. A beállítás használatának példáját a következő témakörben tekintheti meg: a küszöbérték beállítása a tisztítási műveletekhez.

    Figyelmeztetés

    Ezt az állapotot minden egyes oszlopnak teljesítenie kell ahhoz, hogy a megadott művelet vonatkozzon. Tegyük fel például, hogy három oszlopot jelölt ki, majd a hiányzó értékek minimális arányát .2 (20%) értékre állítja, de csak egy oszlop ténylegesen 20% hiányzó értéket tartalmaz. Ebben az esetben a karbantartási művelet csak az oszlopra vonatkozik, amely több mint 20% hiányzó értéket tartalmaz. Ezért a többi oszlop változatlan marad.

    Ha kétségei vannak, hogy a hiányzó értékek módosultak-e, válassza a hiányzó érték jelző oszlop létrehozása lehetőséget. Az adatkészlethez egy oszlop kerül, amely jelzi, hogy az egyes oszlopok megfelelnek-e a minimális és a maximális tartományhoz megadott feltételeknek.

  4. A hiányzó érték maximális arányához határozza meg a művelet végrehajtásához szükséges hiányzó értékek maximális számát.

    Előfordulhat például, hogy a hiányzó érték-helyettesítést csak akkor szeretné végrehajtani, ha a sorok 30%-a vagy annál kevesebb értéket tartalmaz, de az értékeket a következőképpen hagyja, ha a sorok több mint 30%-a hiányzó értékkel rendelkezik.

    A számot a hiányzó értékek arányát adja meg az oszlopban lévő összes értékhez. Alapértelmezés szerint a hiányzó értékek maximális arányának értéke 1. Ez azt jelenti, hogy a hiányzó értékek akkor is törlődnek, ha az oszlopban szereplő értékek 100%-a hiányzik.

    Megjegyzés

    Ha a küszöbértéket a hiányzó érték vagy a maximális hiányzó érték lehetőség használatával állítja be, akkor a tisztítási művelet nem hajtható végre, ha a kijelölt oszlopok közül még egy sem felel meg a feltételeknek.

  5. A tisztítási mód beállításnál válassza a következő lehetőségek egyikét a hiányzó értékek lecseréléséhez vagy eltávolításához:

    • Lecserélés az egerek használatával: minden hiányzó érték esetén ez a beállítás egy új értéket rendel hozzá, amelyet a statisztikai szakirodalom "többváltozós imputálási használatával" vagy "több imputálási által láncolt egyenletek" használatával számít ki. A több imputálási módszer esetében a hiányzó adatokkal rendelkező változók a hiányzó értékek kitöltése előtt az adatokban szereplő többi változóval együtt vannak modellezve. Ezzel szemben egyetlen imputálási metódusban (például a hiányzó értéknek egy oszloppal való lecserélése) egyetlen Pass-t kell átadni az adaton a kitöltési érték meghatározásához.

      Az összes imputálási-metódus valamilyen hibát vagy torzítást mutat be, de több imputálási jobban szimulálja a folyamatot, és az adatmennyiség eloszlását.

      A hiányzó értékek kezelésére szolgáló metódusok általános bevezetését a hiányzó adatok: a művészet állapota című részben találja. Schafer és Graham, 2002.

      Figyelmeztetés

      Ez a beállítás nem alkalmazható teljesen üres oszlopokra. Ezeket az oszlopokat el kell távolítani, vagy át kell adni a kimenetnek.

    • Egyéni helyettesítési érték: ezzel a beállítással megadhat egy helyőrző értéket (például 0 vagy na), amely az összes hiányzó értékre vonatkozik. A helyettesítőként megadott értéknek kompatibilisnek kell lennie az oszlop adattípusával.

    • Csere az Mean kifejezéssel: kiszámítja az oszlop középértékét, és a középértéket használja az oszlopban szereplő összes hiányzó értékhez tartozó helyettesítő értékként.

      Csak olyan oszlopokra vonatkozik, amelyek egész, dupla vagy logikai adattípussal rendelkeznek. További információt a technikai megjegyzések című szakaszban talál.

    • Lecserélés közepes értékre: kiszámítja az oszlop középértékét, és a középértéket használja az oszlopban szereplő hiányzó értékek pótlására.

      Csak olyan oszlopokra vonatkozik, amelyek egész vagy dupla adattípussal rendelkeznek. További információt a technikai megjegyzések című szakaszban talál.

    • Csere a következő módra: kiszámítja az oszlop módját, és a módot használja helyettesítő értékként az oszlopban szereplő összes hiányzó értékhez.

      Egész, dupla, logikai vagy kategorikus adattípusú oszlopokra vonatkozik. További információt a technikai megjegyzések című szakaszban talál.

    • Teljes sor eltávolítása: teljesen eltávolítja az adatkészlet bármely olyan sorát, amely egy vagy több hiányzó értéket tartalmaz. Ez akkor lehet hasznos, ha a hiányzó érték véletlenszerűen van megadva.

    • Teljes oszlop eltávolítása: teljesen eltávolítja az adatkészlet minden olyan oszlopát, amely egy vagy több hiányzó értékkel rendelkezik.

    • Váltás a valószínűségi PCA használatával: a hiányzó értékeket egy lineáris modell váltja fel, amely elemzi az oszlopok közötti korrelációkat, és becsléseket készít az adatok alacsony dimenziós közelítéséről, amelyből a teljes adatok újraépítése történik. Az alapul szolgáló dimenzióját-csökkentés a fő összetevő-elemzés (PCA) egy valószínűségi formája, amely a Royal statisztikai társaság (3), az 611 – 622 és a püspöki sorozat által javasolt modell egy változatát valósítja meg.

      A többi lehetőséghez képest, mint például a láncolt egyenleteket használó több imputálási, ez a beállítás azzal az előnnyel jár, hogy az egyes oszlopokhoz nem szükséges a prediktív alkalmazás használata. Ehelyett megközelíti a teljes adatkészlet közötti eltérést. Ezért jobb teljesítményt biztosíthat olyan adatkészletek esetében, amelyek számos oszlopban hiányoznak az értékek.

      Ennek a módszernek a legfontosabb korlátai az, hogy kiterjesztik a kategorikus oszlopokat számszerű mutatókba, és kiszámítják az eredményül kapott adatok sűrűn variancia-mátrixát. Emellett nem a ritka ábrázolásokra van optimalizálva. Ezen okok miatt a nagy számú oszloppal és/vagy nagy kategorikus tartománnyal rendelkező adatkészletek (több tízezer) nem támogatottak a tiltó lemezterület-használat miatt.

      Tipp

      Ne feledje, hogy a kiválasztott módszer a kijelölés összes oszlopára vonatkozik. Így ha egyes oszlopokban nullákkal rendelkező hiányzó értékeket kíván cserélni, de a helyőrzőket más oszlopba szúrja be, akkor az adatkészletben válassza az Oszlopok kiválasztása lehetőséget az adatok elkülönítéséhez és a tiszta hiányzó adatmodul különböző példányainak használatához.

  6. Ha a beállítás, az Egyéni helyettesítési érték lehetőség van kiválasztva, a lehetőség helyettesítő értéke elérhető. Írjon be egy új értéket, amelyet helyettesítő értékként kíván használni az oszlopban található összes hiányzó értékhez.

    Vegye figyelembe, hogy ezt a beállítást csak egész számmal, dupla, logikai vagy dátum adattípusú oszlopokban használhatja. A Date oszlopokban a helyettesítő érték a 100 – ns kullancsok számaként is megadható a 1/1/0001 12:00 óra óta

  7. Hiányzó érték jelző oszlop létrehozása: válassza ezt a beállítást, ha azt szeretné, hogy az oszlopban szereplő értékek megfelelnek a hiányzó érték tisztításának feltételeinek. Ez a beállítás különösen akkor hasznos, ha új tisztítási műveletet állít be, és szeretné meggyőződni arról, hogy az a tervezett módon működik-e.

  8. Futtassa a kísérletet, vagy válassza ki a hiányzó adatmodult, majd kattintson a kijelölt futtatása elemre.

Results (Eredmények)

A modul két kimenetet ad vissza:

  • Tisztított adatkészlet: a kijelölt oszlopokból álló adatkészlet, amely a megadott módon kezelt, hiányzó értékekkel, valamint egy kijelző oszlopával együtt, ha ezt a beállítást választotta.

    A tisztításra kijelölt oszlopok is áthaladnak.

  • Tisztító transzformáció: a tisztításhoz használt adatátalakítás, amely a munkaterületre menthető, és később is alkalmazható az új adataira.

Mentett tisztítási művelet alkalmazása új adatértékre

Ha gyakran kell megismételni a tisztítási műveleteket, javasoljuk, hogy mentse a receptet Adattisztításra átalakításként, hogy újra ugyanazzal az adatkészlettel használja fel őket. A takarítási transzformáció mentése különösen akkor hasznos, ha gyakran újra kell importálni, majd törölni kell az azonos sémával rendelkező információkat.

  1. Adja hozzá az átalakítási modul alkalmazása a kísérlethez lehetőséget.

  2. Adja hozzá a tisztítani kívánt adatkészletet, és kapcsolja össze az adatkészletet a jobb oldali bemeneti porthoz.

  3. Bontsa ki az átalakítások csoportot a Studio (klasszikus) bal oldali ablaktábláján. Keresse meg a mentett átalakítást, és húzza a kísérletbe.

  4. Kapcsolja össze a mentett átalakítást az alkalmazás átalakításánakbal oldali bemeneti portjával.

    Ha mentett transzformációt alkalmaz, nem választhatja ki azokat az oszlopokat, amelyekre az átalakítást alkalmazni szeretné. Ennek oka, hogy az átalakítás már definiálva van, és automatikusan az eredeti műveletben megadott adattípusokra vonatkozik.

    Tegyük fel azonban, hogy létrehozott egy átalakítást a numerikus oszlopok egy részhalmazán. Ezt az átalakítást alkalmazhatja vegyes oszlop típusú adathalmazra anélkül, hogy hibát kellene felvennie, mert a hiányzó értékek csak a megfelelő numerikus oszlopokban változnak.

  5. Futtassa a kísérletet.

Példák

Tekintse át, hogyan használják ezt a modult a Azure AI Galleryban:

Technikai megjegyzések

Ez a szakasz a megvalósítás részleteit, valamint az ismert problémákat és a gyakran feltett kérdéseket ismerteti.

  • Hiba akkor fordul elő, ha a középérték vagy a medián beállítás minden karakterlánc-oszlop kijelölésekor használatos. Ha különböző adattípusú oszlopokat kell feldolgoznia, hozzon létre két, tiszta hiányzó adattal rendelkező példányt.

  • Ha a hiányzó értékeket a logikai, az egész, a DateTime vagy a TimeSpan adattípusú oszlopokban lévő középérték értékre váltja, az oszlop először lebegőpontos számokra lesz konvertálva, a középérték számít, majd az eredmény az eredeti adattípushoz tartozó legközelebbi értékre lesz kerekítve.

  • A helyettesítő érték beírásakor az értéknek kompatibilisnek kell lennie a kijelölt oszlopban szereplő adattípussal.

  • A, a és a értékének értéke olyan NaN Inf –Inf oszlopokhoz engedélyezett, amelyeknél az adattípus Double típusú.

  • Az egerek módszer használatakor a rendszer a behelyettesítési értéket a betanított egér-modell használatával Jósolja meg.

  • A tiszta hiányzó adattípusok használatával más típusú oszlopok is visszaállíthatók a szolgáltatásba. Ha az adatok más típusú oszlopokat is tartalmaznak, például címkéket, használja a metaadatok szerkesztése lehetőséget az oszlopok típusának kijavítani.

A tisztítási átalakítások használatának korlátozásai

A következő korlátozások érvényesek, ha mentett transzformációt használ (a tiszta hiányzó adatértékek alapján) az új adatértékekre:

  • A mentett átalakítás nem tud kijelző-értékeket előállítani, még akkor sem, ha ezt a beállítást az eredeti tisztítási művelet során használták. Új átalakítás tesztelésekor vegye figyelembe a mutatók értékeit.

  • Az átalakítás nem számít új értékeket az új adatkészlet alapján. Más szóval, ha az A adatkészletben tiszta, hiányzó adatokat használt, és 0,5-as középértéket generált, ugyanazt az értéket fogja alkalmazni a b adatkészletben lévő hiányzó értékek cseréjekor, függetlenül a b adatkészletben lévő tényleges értéktől.

  • Az új adatkészlet oszlopainak adattípusának meg kell egyeznie azon oszlopok adattípusával, amelyeken az átalakítás eredetileg létrejött. Hiba történik, ha az oszlopon olyan műveletek történnek, amelyek implicit módon változtatják meg az adattípust.

    Tegyük fel például, hogy egy középértéket hoz létre egy Integer adatoszlophoz [Col1], és menti az átalakítást. Most szeretné alkalmazni a karbantartási átalakítást a [Col1] egy olyan példányára, amelyet képlet használatával igazítottak ki, például ([Col1]/1,5). Annak érdekében, hogy az eredmény egész szám legyen, az eredményt felkerekítve, de a transzformáció alkalmazása során továbbra is hibaüzenetet kap. Ha azonban olyan képlettel módosítja az értéket, mint például ([Col 1] * 10), akkor nem történt hiba.

    Az ilyen problémák elkerüléséhez használja a metaadatok szerkesztése lehetőséget, hogy explicit módon állítsa vissza az adattípust Integer értékre. Általánosságban elmondható, hogy a matematikai műveleti modul alkalmazása a numerikus oszlopokat implicit módon változtatja meg double .

Küszöbértékek beállítása és értelmezése

Ha a tisztítási műveletek küszöbértékét a hiányzó értékek minimális aránya vagy a hiányzó értékek maximális száma alapján határozza meg, az eredmények váratlanok vagy zavaróak lehetnek. Annak szemléltetéséhez, hogy a maximális és a minimális hiányzó értékek beállításai hogyan működnek, néhány példát ismertetünk az autók árainak mintája alapján, amely sok oszlopot tartalmaz a hiányzó értékekkel.

Az alábbi táblázat az adatkészlet több oszlopának hiányzó értékeinek számát tartalmazza, az adatkészletre számított hiányzó értékek arányával együtt. A hiányzó értékek aránya (a jobb szélső oszlopban) az az érték, amelyet az adatkészlet a megadott küszöbértékek szerinti kiértékeléséhez fog használni.

Tegyük fel, hogy a minimális hiányzó érték 0,019-re van állítva, és a hiányzó érték maximális értéke 0,020. A következő táblázatban szereplő értékek miatt egyes oszlopok megfelelnek a küszöbértékre vonatkozó feltételeknek, néhányat azonban nem:

  • Az oszlopok bore és stroke a küszöbértékek megfelelnek a feltételeknek.
  • Az oszlopok normalized-losses és compression-ratio nem felelnek meg a küszöbérték feltételeinek.
Oszlop neve Hiányzó értékek száma Hiányzó értékek aránya
Normalizált – veszteségek 41 0,2
Viselte 4 0,019512195
Ecsetvonás 4 0,019512195
Tömörítési arány 0 0

Mivel a kijelölés egyes oszlopai nem feleltek meg a megadott feltételeknek, semmilyen oszlopon nem végeztek tisztítási műveletet. Annak érdekében, hogy megtudja, mi történt, a modul a hamis értéket adja vissza a két kijelző oszlopaiban, bore_IsMissing és stroke_IsMissing .

Ha azonban a küszöbértéket az alapértelmezett 0 értékre módosítja a minimális hiányzó érték és az 1 érték között a hiányzó értékek maximális arányára, a rendszer a kijelölt oszlopokhoz tartozó jelző oszlopot adja vissza, és a megadott műveletet hajtja végre.

Tipp

Ha nem biztos abban, hogy a hiányzó érték tisztítása a várt módon működik-e, válassza a hiányzó érték jelző oszlop létrehozása lehetőséget.

Ismert problémák

Ha az egerek módszert használja az adatok törlésére, majd feldolgozza a hiányzó értékeket tartalmazó adatkészletet, a következő hibaüzenet jelenhet meg: "a AFx függvénytár-függvénytár kivétel: a modell nincs betanítva. (1000-es hiba) "

Ez a hiba csak akkor fordul elő, ha az egerek módszer van kiválasztva, és ha a betanítási adatkészlet nem tartalmaz hiányzó értékeket, de a teszt adatkészlet nem.

Várt bemenetek

Név Típus Leírás
Adathalmaz Adattábla Tisztítani kívánt adatkészlet

Modul paramétereinek

Name Tartomány Típus Alapértelmezett Leírás
Tisztítani kívánt oszlopok Bármelyik ColumnSelection Mind Válassza ki az oszlopokat a hiányzó értékek tisztítása művelethez.
Hiányzó érték minimális aránya [0.0; 1.0] Float 0,0 Csak a megadott érték feletti hiányzó értékkel rendelkező oszlop tisztítása az összes kijelölt oszlopból.
Hiányzó érték maximális aránya [0.0; 1.0] Float 1.0 Csak a megadott értéknél kevesebb oszlop törlése az összes kijelölt oszlopból.
Tisztítási mód Lista Kezelési szabályzat Egyéni helyettesítési érték Válassza ki a hiányzó értékek tisztításához használni kívánt algoritmust.
Helyettesítő érték Bármelyik Sztring 0 Írjon be egy értéket a hiányzó értékek helyére.

Ez az érték nem kötelező.
Cols az összes hiányzó értékkel Bármelyik ColumnsWithAllValuesMissing Eltávolítás Jelezze, hogy az összes hiányzó érték oszlopait meg kell-e őrizni a kimenetben.
Hiányzó érték jelző oszlopának előállítása Bármelyik Logikai hamis Olyan oszlop létrehozása, amely jelzi, hogy mely sorok lettek megtisztítva.
Ismétlések száma [1; 10] Egész szám 5 Az egerek használatakor megjelenő ismétlések számának megadása.
Ismétlések száma a PCA előrejelzéséhez [1; 50] Egész szám 10 A PCA-előrejelzés használatakor megjelenő iterációk számának megadása.

Kimenetek

Név Típus Leírás
Tisztított adatkészlet Adattábla Tisztított adatkészlet
Az átalakítás tisztítása ITransform felület Átalakítás, amelyet át kell adni az átalakítási modul alkalmazásának az új adattörléshez.

Kivételek

Kivétel Leírás
0002 hiba Kivétel fordul elő, ha egy vagy több paramétert nem lehetett elemezni, vagy a megadott típusról a cél metódus által megkövetelt típusra konvertálni.
0003 hiba Kivétel történik, ha egy vagy több bemeneti adatkészlet null értékű vagy üres.
0008 hiba Kivétel történik, ha egy paraméter nem a tartományba esik.
0013 hiba Kivétel történik, ha a modulnak átadott karcsúbb típusa érvénytelen.
0018 hiba Kivétel történik, ha a bemeneti adatkészlet érvénytelen.
0039-es hiba Kivétel történik, ha a művelet meghiúsul.

A Studio (klasszikus) modulokra vonatkozó hibák listáját itt tekintheti meg: Machine learning hibakódok.

Az API-kivételek listáját itt tekintheti meg: Machine Learning REST API hibakódok.

Lásd még

Manipuláció
Adatátalakítás
A-Z modulok listája