Adatok normalizálása

Fontos

A (klasszikus) Machine Learning Studio támogatása 2024. augusztus 31-én megszűnik. Javasoljuk, hogy addig térjen át az Azure Machine Learning használatára.

2021. december 1-től kezdve nem fog tudni létrehozni új (klasszikus) Machine Learning Studio-erőforrásokat. 2024. augusztus 31-ig továbbra is használhatja a meglévő (klasszikus) Machine Learning Studio-erőforrásokat.

A (klasszikus) ML Studio dokumentációjának kivezetése folyamatban van, és a jövőben nem várható a frissítése.

Numerikus adatok újraskálázása az adathalmaz értékeinek standard tartományra való korlátozásához

Kategória: Adatátalakítás / Skálázás és csökkentés

Megjegyzés

Csak a következőre vonatkozik: Machine Learning Studio (klasszikus)

Hasonló húzási modulok érhetők el Azure Machine Learning tervezőben.

A modul áttekintése

Ez a cikk azt ismerteti, hogyan alakíthat át egy adathalmazt normalizálással az Machine Learning Studio (klasszikus) Adatok normalizálása moduljának használatával.

A normalizálás olyan technika, amelyet gyakran alkalmaznak a gépi tanulásra való adat-előkészítés részeként. A normalizálás célja, hogy az adathalmaz numerikus oszlopainak értékeit úgy módosítsuk, hogy egy közös skálát használjanak anélkül, hogy torzítanák az értéktartományok eltéréseit vagy elveszítenék az információkat. Bizonyos algoritmusok esetében normalizálásra is szükség van az adatok helyes modellezéséhez.

Tegyük fel például, hogy a bemeneti adatkészlet tartalmaz egy oszlopot 0 és 1 közötti értékekkel, egy másikat pedig 10 000 és 100 000 közötti értékekkel. A számok skálájának nagy eltérése problémákat okozhat, amikor a modellezés során funkciókként próbálja egyesíteni az értékeket.

A normalizálás elkerüli ezeket a problémákat azáltal, hogy új értékeket hoz létre, amelyek megőrzik a forrásadatok általános eloszlását és arányait, miközben a modellben használt összes numerikus oszlopra alkalmazott skálán belül tartják az értékeket.

Ez a modul számos lehetőséget kínál a numerikus adatok átalakítására:

  • Az összes értéket módosíthatja 0-1 skálára, vagy átalakíthatja az értékeket úgy, hogy abszolút értékek helyett percentilis rangként jelöli őket.
  • A normalizálást alkalmazhatja egyetlen oszlopra, vagy ugyanazon adatkészlet több oszlopára is.
  • Ha meg kell ismételnie a kísérletet, vagy ugyanazokat a normalizálási lépéseket kell alkalmaznia más adatokra, a lépéseket normalizálási átalakításként mentheti, és alkalmazhatja azokat más, azonos sémával rendelkező adathalmazokra.

Figyelmeztetés

Egyes algoritmusok megkövetelik az adatok normalizálását a modell betanítása előtt. Más algoritmusok saját adatskálázást vagy normalizálást végeznek. Ezért amikor egy prediktív modell létrehozásához használandó gépi tanulási algoritmust választ, mindenképpen tekintse át az algoritmus adatkövetelményét, mielőtt normalizálást alkalmazna a betanítási adatokra.

Adatok normalizálásának konfigurálása

Ezzel a modullal egyszerre csak egy normalizálási módszert alkalmazhat. Ezért a rendszer ugyanazt a normalizálási módszert alkalmazza az összes kiválasztott oszlopra. Különböző normalizálási módszerek használatához használja az Adatok normalizálása második példányát.

  1. Adja hozzá az Adatok normalizálása modult a kísérlethez. A modul a (klasszikus) Machine Learning Studióban, az Adatátalakítás területen, a Méretezés és csökkentés kategóriában található.

  2. Csatlakozás egy olyan adathalmazt, amely legalább egy oszlopot tartalmaz az összes számból.

  3. Az Oszlopválasztóval válassza ki a normalizálni kívánt numerikus oszlopokat. Ha nem választ ki különálló oszlopokat, alapértelmezés szerint a bemenet összes numerikus típusú oszlopa megjelenik, és ugyanazt a normalizálási folyamatot alkalmazza az összes kijelölt oszlopra.

    Ez furcsa eredményekhez vezethet, ha olyan numerikus oszlopokat tartalmaz, amelyeket nem szabad normalizálni! Mindig gondosan ellenőrizze az oszlopokat.

    Ha nem észlel numerikus oszlopokat, ellenőrizze az oszlop metaadatait annak ellenőrzéséhez, hogy az oszlop adattípusa támogatott numerikus típus-e.

    Tipp

    Ha meg szeretné győződni arról, hogy egy adott típusú oszlopok bemenetként vannak megadva, próbálja meg használni az Adathalmaz oszlopainak kijelölése modult az Adatok normalizálása előtt.

  4. Ha bejelöli az állandó oszlopokat, használja a 0 értéket: Akkor válassza ezt a beállítást, ha bármely numerikus oszlop egyetlen változatlan értéket tartalmaz. Ez biztosítja, hogy az ilyen oszlopok ne legyenek használatban a normalizálási műveletekben.

  5. Az Átalakítási módszer legördülő listában válasszon ki egyetlen matematikai függvényt, amely az összes kijelölt oszlopra alkalmazható.

    • Zscore: Az összes értéket z-pontszámmá alakítja.

      Az oszlop értékei a következő képlet használatával lesznek átalakítva:

      normalization using z-scores

      A középérték és a szórás kiszámítása minden oszlophoz külön történik. A statisztikai sokaság szórását használjuk.

    • MinMax: A min-max normalizátor lineárisan újraskáláz minden funkciót a [0,1] intervallumba.

      A [0,1] intervallumra való újraskálázás úgy történik, hogy az egyes jellemzők értékeit úgy toljuk el, hogy a minimális érték 0 legyen, majd elosztjuk az új maximális értékkel (ez az eredeti maximális és minimális értékek közötti különbség).

      Az oszlop értékei a következő képlet használatával lesznek átalakítva:

      normalization using the min-max function

    • Logisztikai: Az oszlop értékei az alábbi képlet használatával lesznek átalakítva:

      formula for normalization by logistic function

    • LogNormal: Ez a beállítás az összes értéket lognormális skálává alakítja.

      Az oszlop értékei a következő képlet használatával lesznek átalakítva:

      formula log-normal distribution

      Itt μ és σ az eloszlás paraméterei, amelyek empirikusan vannak kiszámítva az adatokból a maximális valószínűség becsléseként az egyes oszlopokra vonatkozóan.

    • TanH: Minden érték hiperbolikus tangenssé lesz konvertálva.

      Az oszlop értékei a következő képlet használatával lesznek átalakítva:

      normalization using the tanh function

  6. Futtassa a kísérletet, vagy kattintson duplán az Adatok normalizálása modulra, és válassza a Kijelölt futtatása lehetőséget.

Results (Eredmények)

Az Adatok normalizálása modul két kimenetet hoz létre:

  • Az átalakított értékek megtekintéséhez kattintson a jobb gombbal a modulra, válassza az Átalakított adathalmaz lehetőséget, majd kattintson a Vizualizáció parancsra.

    Alapértelmezés szerint az értékek a helyükön lesznek átalakítva. Ha össze szeretné hasonlítani az átalakított értékeket az eredeti értékekkel, az Oszlopok hozzáadása modullal újrakombinálja az adathalmazokat, és egymás mellett tekintheti meg az oszlopokat.

  • Ha menteni szeretné az átalakítást, hogy ugyanazt a normalizálási módszert egy másik hasonló adathalmazra is alkalmazza, kattintson a jobb gombbal a modulra, válassza az Átalakítás függvényt, majd kattintson a Mentés átalakításként parancsra.

    Ezután betöltheti a mentett átalakításokat a bal oldali navigációs ablak Átalakítások csoportjából, és alkalmazhatja őket egy azonos sémával rendelkező adathalmazra az Átalakítás alkalmazásával.

Példák

A normalizálás gépi tanulásban való használatával kapcsolatos példákért tekintse meg az Azure AI-katalógust:

  • Hitelkockázat előrejelzése: Ebben a mintában a normalizálást a rendszer az osztályoszlop és a hitelkockázati pontszám kivételével minden numerikus adatra alkalmazza. Ez a példa a tanh átalakítást használja, amely az összes numerikus jellemzőt 0-1 tartományon belüli értékekké alakítja.

Műszaki megjegyzések

Ez a modul csak a Útmutató szakaszban felsorolt standard normalizálási módszereket támogatja, és nem támogatja a mátrixnormalizálást vagy más összetett átalakításokat.

Ha egyéni normalizálási módszert kell létrehoznia, az átalakítás kiszámításához és alkalmazásához használhatja az R-szkript végrehajtása vagy Python szkript végrehajtása modult.

Normalizálást alkalmazó algoritmusok

Számos gépi tanulási algoritmus esetében általános követelmény a funkciók normalizálása, hogy közös skálát használjanak.

  • A lineáris besorolási algoritmusokban a példányok vektorokként jelennek meg a többdimenziós térben. Mivel a nyers adatok értékeinek tartománya széles körben változik, egyes objektív függvények normalizálás nélkül nem működnek megfelelően. Ha például az egyik jellemző értékek széles skálájával rendelkezik, a pontok közötti távolságokat ez az adott jellemző szabályozza.

    Ezért a numerikus jellemzőket normalizálni kell, hogy minden egyes jellemző arányosan járuljon hozzá a végső távolsághoz. Ez jelentős gyorsítási és pontossági előnyöket nyújthat.

  • A logisztikai regresszió és az átlagos perceptron algoritmusok használatakor alapértelmezés szerint a funkciók normalizálása a betanítás előtt történik.

További információk és források

Ha nem biztos abban, hogy milyen típusú normalizálás felel meg az adatainak, tekintse meg az alábbi forrásokat:

  • Modulok ajánlása az adataimhoz: Ez az Egyéni modul az Azure ML csapatának egy tagja kiértékeli az adathalmazt, és az adatok tisztításához és méretezéséhez szükséges lépéseket javasolja.

  • Funkcióskálázás: Ez a Cikk a Wikipédiában ismerteti a numerikus adatok normalizálásához használt alapvető módszereket.

  • Az adatbányászathoz való adat-előkészítés számos részletes adat-előkészítési lépéssel foglalkozik. Az adatnormalizálásról a 7. fejezetben olvashat.

Várt bemenetek

Név Típus Description
Adathalmaz Adattábla Bemeneti adatkészlet

Modulparaméterek

Name Tartomány Típus Alapértelmezett Description
Átalakítási módszer bármelyik TransformationMethods ZScore A skálázáshoz használt matematikai módszer kiválasztása
Átalakítandó oszlopok bármelyik ColumnSelection NumericAll Jelölje ki az összes oszlopot, amelyre a kijelölt átalakítást alkalmazni szeretné

Kimenetek

Név Típus Description
Átalakított adathalmaz Adattábla Átalakított adathalmaz
Transzformációs függvény ITransform-felület Az átalakítási függvény definíciója, amely más adathalmazokra is alkalmazható

Kivételek

Kivétel Description
0001-s hiba Kivétel akkor fordul elő, ha egy vagy több megadott adathalmaz-oszlop nem található.
0003-os hiba Kivétel akkor fordul elő, ha egy vagy több bemenet null értékű vagy üres.
0017-s hiba Kivétel akkor fordul elő, ha egy vagy több megadott oszlop típusa nem támogatott az aktuális modulban.
0020-ás hiba Kivétel akkor fordul elő, ha a modulnak átadott adathalmazok némelyikében túl kicsi az oszlopok száma.
0021-s hiba Kivétel akkor fordul elő, ha a modulnak átadott adathalmazok egy részének sorainak száma túl kicsi.

A Studio (klasszikus) modulokkal kapcsolatos hibák listáját Machine Learning hibakódok között találja.

Az API-kivételek listájáért lásd Machine Learning REST API hibakódjait.

Lásd még

Skálázás és csökkentés