Tweet Sdílet Sdílet

Poslední aktualizace 17. srpna 2020

Výkon prediktivního modelování pomocí strojového učení je tak dobrý, jak dobrá jsou vaše data, a vaše data jsou tak dobrá, jak dobře je připravíte pro modelování.

Nejběžnějším přístupem k přípravě dat je prostudování datové sady a přezkoumání očekávání algoritmů strojového učení, poté pečlivý výběr nejvhodnějších technik přípravy dat k transformaci surových dat tak, aby co nejlépe splňovala očekávání algoritmu. To je pomalé, nákladné a vyžaduje to obrovské množství odborných znalostí.

Alternativním přístupem k přípravě dat je mřížkové vyhledávání sady běžných a běžně užitečných technik přípravy dat na surová data. Jedná se o alternativní filozofii přípravy dat, která považuje transformace dat za další hyperparametr modelovacího potrubí, který je třeba prohledat a vyladit.

Tento přístup vyžaduje méně odborných znalostí než tradiční manuální přístup k přípravě dat, i když je výpočetně nákladný. Výhodou je, že může pomoci při objevování neintuitivních řešení přípravy dat, která dosahují dobrého nebo nejlepšího výkonu pro daný problém prediktivního modelování.

V tomto tutoriálu zjistíte, jak používat přístup prohledávání mřížky pro přípravu dat s tabulkovými daty.

Po dokončení tohoto tutoriálu budete vědět:

  • Prohledávání mřížky poskytuje alternativní přístup k přípravě dat pro tabulková data, kde se transformace zkouší jako hyperparametry modelovacího potrubí.
  • Jak použít metodu prohledávání mřížky pro přípravu dat ke zlepšení výkonnosti modelu oproti výchozímu stavu pro standardní klasifikační datovou sadu.
  • Jak prohledávat mřížkou sekvence metod přípravy dat k dalšímu zlepšení výkonnosti modelu.

Začněte svůj projekt s mou novou knihou Příprava dat pro strojové učení, která obsahuje výukové programy krok za krokem a zdrojové soubory jazyka Python pro všechny příklady.

Začněme.

Jak používat techniky přípravy dat pomocí mřížkového vyhledávání
Foto: Wall Boat, některá práva vyhrazena.

Přehled výukového kurzu

Tento výukový kurz je rozdělen do tří částí; jsou to:

  1. Technika síťového vyhledávání pro přípravu dat
  2. Soubor dat a základní výkon
    1. Soubor dat pro klasifikaci vína
    2. Základní výkon modelu
  3. Přístup síťového vyhledávání k přípravě dat

Technika síťového vyhledávání pro přípravu dat

Příprava dat může být náročná.

Přístup, který je nejčastěji předepsán a dodržován, spočívá v analýze datové sady, přezkoumání požadavků algoritmů a transformaci surových dat tak, aby co nejlépe splňovala očekávání algoritmů.

Tento přístup může být účinný, ale je také pomalý a může vyžadovat hluboké odborné znalosti analýzy dat a algoritmů strojového učení.

Alternativním přístupem je považovat přípravu vstupních proměnných za hyperparametr modelovacího potrubí a vyladit ji spolu s výběrem algoritmu a konfigurací algoritmu.

Může jít o transformaci dat, která „by neměla fungovat“ nebo „by neměla být vhodná pro algoritmus“, a přesto vede k dobrému nebo skvělému výkonu. Případně to může být absence transformace dat pro vstupní proměnnou, která je považována za „nezbytně nutnou“, a přesto vede k dobrému nebo skvělému výkonu.

Toho lze dosáhnout návrhem mřížkového vyhledávání technik přípravy dat a/nebo sekvencí technik přípravy dat v pipelinech. To může zahrnovat vyhodnocení každé z nich na jednom vybraném algoritmu strojového učení nebo na sadě algoritmů strojového učení.

Výhodou tohoto přístupu je, že vždy vede k návrhům modelovacích potrubí, které poskytují dobré relativní výsledky. A co je nejdůležitější, dokáže odhalit pro odborníky z praxe nezjevná a neintuitivní řešení, aniž by k tomu potřebovali hluboké odborné znalosti.

Tento přístup k přípravě dat můžeme prozkoumat na praktickém příkladu.

Než se ponoříme do praktického příkladu, vybereme nejprve standardní datovou sadu a vytvoříme základní výkonnostní úroveň.

Chcete začít s přípravou dat?

Zúčastněte se nyní mého bezplatného 7denního e-mailového rychlokurzu (s ukázkovým kódem).

Klikněte pro registraci a získejte také bezplatnou verzi kurzu ve formátu PDF Ebook.

Stáhněte si minikurz ZDARMA

Datová sada a výchozí výkonnost

V této části nejprve vybereme standardní datovou sadu pro strojové učení a stanovíme výchozí výkonnost na této datové sadě. To nám poskytne kontext pro zkoumání metody mřížkového vyhledávání při přípravě dat v následující části.

Datová sada pro klasifikaci vína

Použijeme datovou sadu pro klasifikaci vína.

Tato datová sada má 13 vstupních proměnných, které popisují chemické složení vzorků vína, a vyžaduje, aby bylo víno klasifikováno jako jeden ze tří typů.

Další informace o datasetu naleznete zde:

  • Dataset pro víno (wine.csv)
  • Popis datasetu pro víno (wine.names)

Dataset není třeba stahovat, protože jej stáhneme automaticky jako součást našich pracovních příkladů.

Otevřete dataset a prohlédněte si surová data. Níže je uvedeno několik prvních řádků dat.

Vidíme, že se jedná o problém prediktivního modelování s klasifikací více tříd s číselnými vstupními proměnnými, z nichž každá má jinou váhu.

Následující příklad načte datovou sadu a rozdělí ji na vstupní a výstupní sloupce, poté shrne datová pole.

Po spuštění příkladu vidíme, že datová sada byla načtena správně a že existuje 179 řádků dat s 13 vstupními proměnnými a jednou cílovou proměnnou.

1
(178, 13) (178,)

Dále vyhodnotíme model na tomto souboru dat a stanovíme základní výkonnostní úroveň.

Základní výkonnost modelu

Základní výkonnost v úloze klasifikace vína můžeme stanovit vyhodnocením modelu na nezpracovaných vstupních datech.

V tomto případě vyhodnotíme model logistické regrese.

Nejprve můžeme definovat funkci pro načtení datové sady a provést minimální přípravu dat, abychom zajistili, že vstupy budou číselné a cíl bude mít kódování etiket.

Model vyhodnotíme pomocí zlatého standardu opakované stratifikované k-násobné křížové validace s 10 záhyby a třemi opakováními.

Poté můžeme zavolat funkci pro načtení datové sady, definovat náš model a poté jej vyhodnotit a uvést průměrnou přesnost a směrodatnou odchylku.

Kompletní příklad vyhodnocení modelu logistické regrese na nezpracovaném souboru dat pro klasifikaci vína je uveden níže.

Spuštěním příkladu se vyhodnotí výkonnost modelu a vykáže se průměrná přesnost a standardní odchylka klasifikace.

Poznámka: Vaše výsledky se mohou lišit vzhledem ke stochastické povaze algoritmu nebo postupu vyhodnocení nebo k rozdílům v číselné přesnosti. Zvažte několikeré spuštění příkladu a porovnejte průměrný výsledek.

V tomto případě vidíme, že logistický regresní model fitovaný na nezpracovaná vstupní data dosáhl průměrné klasifikační přesnosti přibližně 95,3 %, což poskytuje základní výkonnost.

1
Přesnost: 0.953 (0.048)

Dále prozkoumáme, zda můžeme zlepšit výkon pomocí přístupu k přípravě dat založeného na vyhledávání v mřížce.

Přístup k přípravě dat založený na vyhledávání v mřížce

V této části můžeme prozkoumat, zda můžeme zlepšit výkon pomocí přístupu k přípravě dat založeného na vyhledávání v mřížce.

Prvním krokem je definování řady modelovacích potrubí k vyhodnocení, kde každé potrubí definuje jednu (nebo více) technik přípravy dat a končí modelem, který přijímá transformovaná data jako vstup.

Definujeme funkci pro vytvoření těchto potrubí jako seznam tuplů, kde každý tupl definuje krátký název potrubí a samotné potrubí. Budeme vyhodnocovat řadu různých metod škálování dat (např. MinMaxScaler a StandardScaler), distribuční transformace (QuantileTransformer a KBinsDiscretizer) a také transformace pro redukci dimenzionality (PCA a SVD).

Tuto funkci můžeme zavolat, abychom získali seznam transformací, a pak každou z nich vyjmenovat, vyhodnotit a po cestě hlásit výkon.

Na konci běhu můžeme vytvořit krabicový a metkový graf pro každou sadu hodnocení a vizuálně porovnat rozdělení výsledků.

1
2
3
4

# vykreslete výsledek
pyplot.boxplot(results, labels=names, showmeans=True)
pyplot.show()

Kompletní příklad technik přípravy dat pro vyhledávání v mřížce na souboru dat pro klasifikaci vína je uveden níže.

Spuštěním příkladu se vyhodnotí výkonnost jednotlivých pipeline a uvede se průměrná klasifikační přesnost a směrodatná odchylka.

Poznámka: Vaše výsledky se mohou lišit vzhledem ke stochastické povaze algoritmu nebo postupu vyhodnocení nebo k rozdílům v číselné přesnosti. Zvažte několikanásobné spuštění příkladu a porovnejte průměrný výsledek.

V tomto případě vidíme, že standardizace vstupních proměnných i použití kvantilové transformace dosahují nejlepšího výsledku s klasifikační přesností přibližně 98 bodů.7 %, což je zlepšení oproti základní variantě bez přípravy dat, která dosáhla klasifikační přesnosti 95,3 %.

Můžete do funkce get_pipelines() přidat vlastní modelovací pipeline a porovnat jejich výsledek.

Dosáhnete lepších výsledků?
Dejte mi vědět v komentářích níže.

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:

Vytvořen obrázek zobrazující krabicové a metličkové grafy, které shrnují rozložení skóre přesnosti klasifikace pro jednotlivé techniky přípravy dat. Vidíme, že rozdělení skóre pro standardizaci a kvantilovou transformaci je kompaktní a velmi podobné a má odlehlou hodnotu. Vidíme, že rozložení skóre pro ostatní transformace je větší a zkosené směrem dolů.

Výsledky mohou naznačovat, že standardizace datové sady je pravděpodobně důležitým krokem při přípravě dat a souvisejících transformacích, jako je kvantilová transformace, a možná i mocninná transformace může nabídnout výhody, pokud se spojí se standardizací tím, že se jedna nebo více vstupních proměnných stane více Gaussovskou.

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

Můžeme také prozkoumat sekvence transformací, abychom zjistili, zda mohou nabídnout zvýšení výkonu.

Například bychom mohli chtít použít výběr příznaků RFE po standardizační transformaci, abychom zjistili, zda lze použít stejné nebo lepší výsledky s menším počtem vstupních proměnných (např.např. menší složitost).

Mohli bychom také chtít zjistit, zda silová transformace předcházející transformaci škálování dat může na souboru dat dosáhnout dobrého výkonu, jak se domníváme, že by mohla vzhledem k úspěchu kvantilové transformace.

Aktualizovaná funkce get_pipelines() se sekvencemi transformací je uvedena níže.

Kompletní příklad je uveden níže.

Spuštěním příkladu se vyhodnotí výkonnost jednotlivých pipeline a uvede se průměrná klasifikační přesnost a směrodatná odchylka.

Poznámka: Vaše výsledky se mohou lišit vzhledem ke stochastické povaze algoritmu nebo postupu vyhodnocení nebo k rozdílům v číselné přesnosti. Zvažte několikeré spuštění příkladu a porovnejte průměrný výsledek.

V tomto případě vidíme, že standardizace s výběrem příznaků nabízí dodatečné zvýšení přesnosti z 98,7 % na 98,9 %, ačkoli škálování dat a mocninná transformace nenabízí žádný další přínos oproti kvantilové transformaci.

1
2

>std: 0.989 (0.022)
>výkon: 0.987 (0.023)

Vytvořen je obrázek zobrazující krabicové a metličkové grafy, které shrnují rozložení výsledků přesnosti klasifikace pro jednotlivé techniky přípravy dat.

Vidíme, že rozložení výsledků pro obě pipeline transformací je kompaktní s velmi malým rozptylem kromě odlehlých hodnot.

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

Další čtení

Tato část obsahuje další zdroje k tématu, pokud chcete jít hlouběji.

Knihy

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

API

  • sklearn.pipeline.Pipeline API.

Shrnutí

V tomto výukovém kurzu jste zjistili, jak používat přístup mřížkového vyhledávání pro přípravu dat s tabulkovými daty.

Konkrétně jste se naučili:

  • Mřížkové vyhledávání poskytuje alternativní přístup k přípravě dat pro tabulková data, kde se transformace zkoušejí jako hyperparametry modelovacího potrubí.
  • Jak použít metodu prohledávání mřížky pro přípravu dat ke zlepšení výkonnosti modelu oproti výchozímu stavu pro standardní soubor klasifikačních dat.
  • Jak prohledávat mřížkou sekvence metod přípravy dat k dalšímu zlepšení výkonnosti modelu.

Máte nějaké dotazy?
Pokládejte své dotazy v komentářích níže a já se budu snažit odpovědět.

Získejte přehled o moderní přípravě dat!

Připravte si data pro strojové učení během několika minut

…s pouhými několika řádky kódu v jazyce Python

Objevte, jak na to, v mé nové elektronické knize:
Příprava dat pro strojové učení

Nabízí samostudijní návody s plně funkčním kódem na:
Výběr vlastností, RFE, čištění dat, transformace dat, škálování, redukci dimenzionality a mnoho dalšího….

Přineste moderní techniky přípravy dat do
svých projektů strojového učení

Podívejte se, co je uvnitř

Tweet Sdílet Sdílet

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.