Tweet Megosztás Megosztás

Most frissítve: 2020. augusztus 17.

A gépi tanulás prediktív modellezési teljesítménye csak annyira jó, mint az adatai, és az adatai csak annyira jók, mint amennyire előkészíti őket a modellezéshez.

Az adatelőkészítés leggyakoribb megközelítése az adathalmaz tanulmányozása és a gépi tanulási algoritmusok elvárásainak áttekintése, majd a legmegfelelőbb adatelőkészítési technikák gondos kiválasztása a nyers adatok átalakításához, hogy azok a lehető legjobban megfeleljenek az algoritmus elvárásainak. Ez lassú, költséges és rengeteg szakértelmet igényel.

Az adatelőkészítés alternatív megközelítése az, hogy a nyers adatokra rácson keresünk egy sor gyakori és általánosan hasznos adatelőkészítési technikát. Ez az adatelőkészítés alternatív filozófiája, amely az adattranszformációkat a modellező csővezeték egy másik hiperparamétereként kezeli, amelyet keresni és hangolni kell.

Ez a megközelítés kevesebb szakértelmet igényel, mint az adatelőkészítés hagyományos kézi megközelítése, bár számításigényes. Előnye, hogy segíthet olyan nem intuitív adatelőkészítési megoldások felfedezésében, amelyek jó vagy legjobb teljesítményt érnek el egy adott prediktív modellezési probléma esetén.

Ezzel a bemutatóval felfedezheti, hogyan használhatja a rácsos keresési megközelítést az adatelőkészítéshez táblázatos adatokkal.

A bemutató elvégzése után tudni fogja:

  • A rácsos keresés alternatív megközelítést nyújt a táblázatos adatok adatelőkészítéséhez, ahol a transzformációkat a modellező csővezeték hiperparamétereiként próbáljuk ki.
  • Hogyan használhatja a rácskeresés módszerét az adatelőkészítéshez, hogy javítsa a modell teljesítményét egy alapvonalhoz képest egy standard osztályozási adathalmaz esetében.
  • Hogyan használhatja az adatelőkészítési módszerek rácskeresési szekvenciáit a modell teljesítményének további javítása érdekében.

Kezdje el projektjét az új könyvemmel Data Preparation for Machine Learning, amely lépésről lépésre bemutató útmutatókat és az összes példa Python forráskódfájlját tartalmazza.

Kezdjük el.

How to Grid Search Data Preparation Techniques
Photo by Wall Boat, some rights reserved.

Tananyag áttekintése

Ez a tananyag három részre oszlik; ezek a következők:

  1. Rácsos keresési technika az adatelőkészítéshez
  2. Adatkészlet és teljesítményalap
    1. Borosztályozási adatkészlet
    2. Bázismodell teljesítmény
  3. Rácsos keresési megközelítés az adatelőkészítéshez

Rácsos keresési technika az adatelőkészítéshez

Az adatelőkészítés kihívást jelenthet.

A leggyakrabban előírt és követett megközelítés az adatállomány elemzése, az algoritmusok követelményeinek áttekintése és a nyers adatok átalakítása, hogy azok a lehető legjobban megfeleljenek az algoritmusok elvárásainak.

Ez hatékony lehet, de lassú is, és mélyreható szakértelmet igényelhet az adatelemzés és a gépi tanulási algoritmusok terén.

Egy alternatív megközelítés a bemeneti változók előkészítését a modellező csővezeték hiperparamétereként kezeli, és az algoritmus és az algoritmus-konfigurációk kiválasztásával együtt hangolja.

Ez lehet olyan adattranszformáció, amelynek “nem kellene működnie” vagy “nem kellene megfelelőnek lennie az algoritmus számára”, mégis jó vagy nagy teljesítményt eredményez. Alternatívaként ez lehet egy olyan adattranszformáció hiánya egy bemeneti változóhoz, amelyet “feltétlenül szükségesnek” tartanak, mégis jó vagy nagy teljesítményt eredményez.

Ez elérhető az adatelőkészítési technikák és/vagy az adatelőkészítési technikák szekvenciáinak hálózatos keresésével a csővezetékekben. Ez magában foglalhatja az egyes eljárások értékelését egyetlen kiválasztott gépi tanulási algoritmuson vagy egy sor gépi tanulási algoritmuson.

Ez a megközelítés előnye, hogy mindig olyan modellező csővezetékekre vonatkozó javaslatokat eredményez, amelyek relatíve jó eredményeket adnak. Ami a legfontosabb, hogy a nem nyilvánvaló és nem intuitív megoldásokat is felszínre hozhatja a szakemberek számára anélkül, hogy mély szakértelemre lenne szükségük.

Egy kidolgozott példán keresztül vizsgálhatjuk meg az adatelőkészítés ezen megközelítését.

Mielőtt belemerülnénk egy kidolgozott példába, először válasszunk ki egy standard adatkészletet, és alakítsuk ki a teljesítmény alapvonalát.

El akarja kezdeni az adatelőkészítést?

Vegye fel a 7 napos ingyenes e-mailes gyorstalpaló tanfolyamomat most (mintakóddal).

Kattintson a feliratkozáshoz, és kapja meg a tanfolyam ingyenes PDF Ebook változatát is.

Töltse le az INGYENES minitanfolyamát

Adatkészlet és teljesítmény-alapvonal

Ebben a részben először kiválasztunk egy standard gépi tanulási adatkészletet, és ezen az adatkészleten megállapítjuk a teljesítmény alapvonalát. Ez biztosítja a hátteret a következő szakaszban az adatelőkészítés rácsos keresési módszerének vizsgálatához.

Borosztályozási adatállomány

A borosztályozási adatállományt fogjuk használni.

Ez az adatállomány 13 bemeneti változóval rendelkezik, amelyek a borminták kémiai összetételét írják le, és megköveteli, hogy a bort három típus egyikébe soroljuk.

Az adatkészletről itt tudhat meg többet:

  • Bor adatkészlet (wine.csv)
  • Bor adatkészlet leírása (wine.names)

Nem szükséges letölteni az adatkészletet, mivel azt automatikusan letöltjük a munkapéldák részeként.

Nyissa meg az adatkészletet, és tekintse meg a nyers adatokat. Az első néhány adatsor az alábbiakban látható.

Láthatjuk, hogy egy többosztályos osztályozási prediktív modellezési problémáról van szó numerikus bemeneti változókkal, amelyek mindegyike különböző skálájú.

Az alábbi példa betölti az adatállományt, és felosztja azt a bemeneti és kimeneti oszlopokra, majd összegzi az adatsorokat.

A példa futtatásával láthatjuk, hogy az adatállomány helyesen lett betöltve, és hogy 179 adatsor van 13 bemeneti változóval és egyetlen célváltozóval.

1
(178, 13) (178,)

A következőkben értékeljük ki a modellt ezen az adathalmazon, és határozzuk meg a teljesítmény alapszintjét.

A modell alapteljesítménye

Egy modell kiértékelésével a nyers bemeneti adatokon megállapíthatunk egy alapteljesítményt a borosztályozási feladatban.

Ez esetben egy logisztikus regressziós modellt fogunk kiértékelni.

Először definiálhatunk egy függvényt az adatállomány betöltésére, és elvégezhetünk néhány minimális adatelőkészítést, hogy a bemenetek numerikusak, a cél pedig címkekódolt legyen.

A modellt az ismételt rétegzett k-szeres keresztvalidálás arany standardjával fogjuk értékelni, 10 hajtással és három ismétléssel.

Ezután meghívhatjuk a függvényt az adathalmaz betöltésére, definiálhatjuk a modellünket, majd kiértékelhetjük azt, jelentve az átlagos és szóráspontosságot.

Ezt összekapcsolva, a logisztikus regressziós modell kiértékelésének teljes példája a nyers borosztályozási adathalmazon az alábbiakban található.

A példa futtatása kiértékeli a modell teljesítményét, és jelenti az átlagos és a szórás szerinti osztályozási pontosságot.

Megjegyzés: Az Ön eredményei eltérhetnek az algoritmus vagy az értékelési eljárás sztochasztikus jellege, illetve a numerikus pontosság eltérései miatt. Fontolja meg a példa többszöri futtatását, és hasonlítsa össze az átlagos eredményt.

Ez esetben láthatjuk, hogy a nyers bemeneti adatokra illesztett logisztikus regressziós modell körülbelül 95,3 százalékos átlagos osztályozási pontosságot ért el, ami egy alapszintű teljesítményt biztosít.

1
pontosság: 0.953 (0.048)

A következőkben vizsgáljuk meg, hogy az adatelőkészítés rácsos keresésen alapuló megközelítésével javíthatjuk-e a teljesítményt.

Rácsos keresésen alapuló megközelítés az adatelőkészítésben

Ebben a szakaszban megvizsgálhatjuk, hogy az adatelőkészítés rácsos keresésen alapuló megközelítésével javíthatjuk-e a teljesítményt.

Az első lépés egy sor kiértékelendő modellezési csővezeték definiálása, ahol minden egyes csővezeték egy (vagy több) adatelőkészítési technikát definiál, és egy modellel végződik, amely a transzformált adatokat veszi fel bemenetként.

Egy függvényt fogunk definiálni, amely ezeket a csővezetékeket tuple-ek listájaként hozza létre, ahol minden tuple definiálja a csővezeték rövid nevét és magát a csővezetéket. Ki fogunk értékelni egy sor különböző adatskálázási módszert (pl. MinMaxScaler és StandardScaler), elosztási transzformációt (QuantileTransformer és KBinsDiscretizer), valamint dimenziócsökkentő transzformációkat (PCA és SVD).

Ezt a függvényt meg tudjuk hívni, hogy megkapjuk a transzformációk listáját, majd mindegyiket felsoroljuk, kiértékeljük és menet közben jelentjük a teljesítményt.

A futtatás végén létrehozhatunk egy box and whisker plotot minden egyes pontszámkészlethez, és vizuálisan összehasonlíthatjuk az eredmények eloszlását.

1
2
3
4

# ábrázoljuk az eredményt
pyplot.boxplot(results, labels=names, showmeans=True)
pyplot.show()

Az alábbiakban a rácsos keresési adatelőkészítési technikák teljes példája a borosztályozási adathalmazon.

A példa futtatása kiértékeli az egyes csővezetékek teljesítményét, és jelenti az osztályozási pontosság átlagát és szórását.

Megjegyzés: Az Ön eredményei eltérhetnek az algoritmus vagy az értékelési eljárás sztochasztikus jellege, illetve a numerikus pontosság eltérései miatt. Fontolja meg a példa többszöri futtatását, és hasonlítsa össze az átlagos eredményt.

Ez esetben látható, hogy a bemeneti változók standardizálása és a kvantilis transzformáció használata egyaránt a legjobb eredményt éri el, körülbelül 98-as osztályozási pontossággal.7 százalékot, ami javulást jelent az adatelőkészítés nélküli alapvonalhoz képest, amely 95,3 százalékos osztályozási pontosságot ért el.

A get_pipelines() függvényhez hozzáadhatja saját modellező pipeline-eit, és összehasonlíthatja azok eredményét.

Sikerülhet jobb eredményt elérni?
Tudja meg nekem az alábbi megjegyzésekben.

1
2
3
4
5
6

>norm: 0.976 (0.031)
>std: 0.987 (0.023)
>quan: 0.987 (0.023)
>kbins: 0.968 (0.045)
>pca: 0.963 (0.039)
>svd: 0,953 (0,048)

Ez az ábra az egyes adatelőkészítési technikák osztályozási pontossági pontszámainak eloszlását összefoglaló doboz- és whisker-diagramokat mutatja. Láthatjuk, hogy a standardizálás és a kvantilis transzformáció pontszámok eloszlása kompakt és nagyon hasonló, és van egy kiugró érték. Láthatjuk, hogy a többi transzformáció esetében a pontszámok szórása nagyobb és lefelé ferde.

Az eredmények arra utalhatnak, hogy az adatállomány standardizálása valószínűleg fontos lépés az adatelőkészítésben és a kapcsolódó transzformációkban, például a kvantilis transzformációban, sőt talán még a teljesítménytranszformáció is előnyökkel járhat, ha a standardizálással kombinálva egy vagy több bemeneti változó gaussosabbá tételével.

Box and Whisker Plot of Classification Accuracy for Different Data Transforms on the Wine Classification Dataset

A transzformációk sorozatait is megvizsgálhatjuk, hogy lássuk, nem nyújtanak-e emelést a teljesítményben.

Előfordulhat például, hogy a standardizációs transzformáció után RFE feature selectiont alkalmazunk, hogy lássuk, kevesebb bemeneti változóval (pl.pl. kisebb komplexitással).

Azt is megnézhetnénk, hogy az adatok skálázó transzformációjával megelőzött hatványtranszformáció jó teljesítményt érhet-e el az adathalmazon, mivel a kvantilis transzformáció sikerét tekintve úgy gondoljuk, hogy ez lehetséges.

A frissített get_pipelines() függvényt a transzformációk sorozataival az alábbiakban adjuk meg.

Ezt összekötve a teljes példa alább található.

A példa futtatása kiértékeli az egyes csővezetékek teljesítményét, és jelenti az osztályozási pontosság átlagát és szórását.

Megjegyzés: Az Ön eredményei eltérhetnek az algoritmus vagy az értékelési eljárás sztochasztikus jellege, illetve a numerikus pontosság eltérései miatt. Fontolja meg a példa többszöri futtatását, és hasonlítsa össze az átlagos eredményt.

Ez esetben láthatjuk, hogy a jellemzőválasztással történő szabványosítás további pontosságnövelést kínál 98,7 százalékról 98,9 százalékra, bár az adatok skálázása és a teljesítménytranszformáció nem nyújt további előnyt a kvantilis transzformációval szemben.

1
2

>std: 0.989 (0.022)
>teljesítmény: 0.987 (0.023)

Egy ábra készült, amely az egyes adatelőkészítési technikák osztályozási pontossági pontszámainak eloszlását összefoglaló box and whisker plotokat mutatja.

Látható, hogy az eredmények eloszlása mindkét transzformációs csővezeték esetében kompakt, a kiugró értékeken kívül nagyon kis szórással.

Box and Whisker Plot of Classification Accuracy for Different Sequences of Data Transforms on the Wine Classification Dataset

Further Reading

Ez a rész további forrásokat tartalmaz a témában, ha mélyebben szeretne elmélyülni.

Könyvek

  • Feature Engineering and Selection, 2019.
  • Feature Engineering for Machine Learning, 2018.

APIs

  • sklearn.pipeline.Pipeline API.

Összefoglaló

Ezzel a bemutatóval felfedezte, hogyan használhat rácsos keresési megközelítést táblázatos adatok adatelőkészítéséhez.

Közelebbről megtanulta:

  • A rácsos keresés alternatív megközelítést kínál a táblázatos adatok adatelőkészítéséhez, ahol a transzformációkat a modellező csővezeték hiperparamétereiként próbálják ki.
  • Hogyan használhatja a rácskeresés módszerét az adatelőkészítéshez, hogy javítsa a modell teljesítményét egy alapvonalhoz képest egy standard osztályozási adathalmaz esetében.
  • Hogyan használhatja az adatelőkészítési módszerek rácskeresési sorozatát a modell teljesítményének további javítása érdekében.

Kérdése van?
Tegye fel kérdéseit az alábbi megjegyzésekben, és igyekszem válaszolni.

Kezdje meg a modern adatelőkészítést!

Készítse elő a gépi tanulás adatait percek alatt

…mindössze néhány sor python kóddal

Fedezd fel, hogyan az új Ebookomban:
Adatelőkészítés a gépi tanuláshoz

Ez önképző tananyagokat tartalmaz teljes működő kóddal:
Ejellemzők kiválasztása, RFE, adattisztítás, adattranszformációk, skálázás, dimenziócsökkentés és még sok más…

Modern adatelőkészítési technikák alkalmazása
a gépi tanulási projektjeiben

Nézze meg, mi van benne

Tweet Megosztás Megosztás

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.