Programování

Kaggle: Kde se vědci o datech učí a soutěží

Věda o datech je obvykle navzdory jménu spíše uměním než vědou. Začnete se špinavými daty a starým statistickým prediktivním modelem a pokusíte se lépe se strojovým učením. Nikdo nekontroluje vaši práci ani se ji nepokouší vylepšit: Pokud váš nový model vyhovuje lépe než ten starý, přijmete jej a přejdete k dalšímu problému. Když se data začnou pohybovat a model přestane fungovat, aktualizujete model z nové datové sady.

Věda o datech v Kaggle je úplně jiná. Kaggle je online prostředí a komunita pro strojové učení. Má standardní datové sady, které se snaží modelovat stovky nebo tisíce jednotlivců nebo týmů, a pro každou soutěž existuje žebříček. Mnoho soutěží nabízí peněžní ceny a stavové body a lidé mohou své modely vylepšovat, dokud se soutěž neuzavře, aby si vylepšili skóre a vyšplhali se po žebříčku. Malá procenta často dělají rozdíl mezi vítězi a finalisty.

Kaggle je něco, s čím si profesionální datoví vědci mohou hrát ve svém volném čase, a začínající datoví vědci se mohou naučit, jak vytvořit dobré modely strojového učení.

Co je Kaggle?

Podíváme-li se na to komplexněji, Kaggle je online komunita pro datové vědce, která nabízí soutěže v strojovém učení, datové sady, notebooky, přístup k akcelerátorům školení a vzdělávání. Anthony Goldbloom (CEO) a Ben Hamner (CTO) založili Kaggle v roce 2010 a Google tuto společnost získal v roce 2017.

Soutěže Kaggle zlepšily stav umění strojového učení v několika oblastech. Jedním z nich je mapování temné hmoty; dalším je výzkum HIV / AIDS. Při pohledu na vítěze soutěží Kaggle uvidíte spoustu modelů XGBoost, několik modelů Random Forest a několik hlubokých neuronových sítí.

Kaggle soutěže

Existuje pět kategorií soutěží Kaggle: Začínáme, Hřiště, Vybrané, Výzkum a Nábor.

Soutěže Začínáme jsou semipermanentní a jsou určeny k tomu, aby je využili noví uživatelé, kteří v oblasti strojového učení začínají nohama. Nenabízejí žádné ceny ani body, ale mají dostatek návodů. Soutěže Začínáme mají dvouměsíční průběžné tabulky.

Soutěže na hřištích jsou o krok výše než Začínáme v obtížnosti. Ceny se pohybují od sláva až po malé peněžní ceny.

Vybrané soutěže jsou komplexní výzvy strojového učení, které představují obtížné problémy s predikcí, obvykle s komerčním účelem. Vybrané soutěže přitahují některé z nejpůsobivějších odborníků a týmů a nabízejí ceny, které mohou dosahovat až jednoho milionu dolarů. To může znít odrazující, ale i když jedno z nich nevyhrajete, poučíte se ze zkoušení a ze čtení řešení jiných lidí, zejména vysoce hodnocených řešení.

Výzkumné soutěže zahrnují problémy, které jsou experimentálnější než problémy s vybranými soutěžemi. Obvykle nenabízejí ceny ani body kvůli své experimentální povaze.

V náborových soutěžích soutěží jednotlivci o vytvoření modelů strojového učení pro výzvy vyřízené korporacemi. Na konci soutěže mohou účastníci, kteří mají zájem, nahrát svůj životopis ke zvážení hostitelem. Cenou je (potenciálně) pracovní pohovor ve společnosti nebo organizaci, která soutěž pořádá.

Existuje několik formátů pro soutěže. Ve standardní soutěži Kaggle mohou uživatelé na začátku soutěže získat přístup k úplným datovým sadám, stáhnout data, vytvářet modely na datech místně nebo v poznámkových blocích Kaggle (viz níže), vygenerovat soubor predikcí a poté předpovědi nahrát jako příspěvek na Kaggle. Většina soutěží na Kaggle sleduje tento formát, ale existují alternativy. Několik soutěží je rozděleno do etap. Některé jsou soutěže o kód, které je třeba odeslat z Kaggle Notebooku.

Kaggle datové sady

Kaggle hostí více než 35 tisíc datových sad. Jedná se o různé formáty publikací, včetně hodnot oddělených čárkami (CSV) pro tabulková data, JSON pro data podobná stromům, databáze SQLite, archivy ZIP a 7z (často používané pro datové sady obrázků) a datové sady BigQuery, které jsou více -terabajtové datové sady SQL hostované na serverech Google.

Existuje několik způsobů, jak najít datové sady Kaggle. Na domovské stránce Kaggle najdete seznam „horkých“ datových sad a datových sad nahraných lidmi, které sledujete. Na stránce Kaggle datové sady najdete seznam datových sad (původně seřazený podle „nejžhavějších“, ale s dalšími možnostmi objednávání) a vyhledávací filtr. Značky a stránky značek můžete také použít k vyhledání datových sad, například //www.kaggle.com/tags/crime.

Veřejné a soukromé datové sady můžete na Kaggle vytvářet z místního počítače, adres URL, úložišť GitHub a výstupů Kaggle Notebook. Můžete nastavit datovou sadu vytvořenou z úložiště URL nebo úložiště GitHub, aby se pravidelně aktualizovala.

V tuto chvíli má Kaggle poměrně málo datových sad, výzev a notebooků COVID-19. Již několik komunitních příspěvků přispělo ke snaze porozumět této nemoci a viru, který ji způsobuje.

Notebooky Kaggle

Kaggle podporuje tři typy notebooků: skripty, skripty RMarkdown a notebooky Jupyter. Skripty jsou soubory, které provádějí vše jako kód postupně. Notebooky můžete psát v R nebo Pythonu. Programátoři R a lidé odesílající kód do soutěží často používají skripty; Kodéry Pythonu a lidé provádějící průzkumnou analýzu dat mají tendenci preferovat notebooky Jupyter.

Notebooky libovolného pruhu mohou volitelně mít zdarma GPU (Nvidia Tesla P100) nebo akcelerátory TPU a mohou využívat služby Google Cloud Platform, ale platí kvóty, například 30 hodin GPU a 30 hodin TPU za týden. V zásadě nepoužívejte GPU nebo TPU v notebooku, pokud nepotřebujete urychlit výcvik hlubokého učení. Používání služeb Google Cloud Platform může vést k účtování poplatků na váš účet Google Cloud Platform, pokud překročíte povolenou úroveň zdarma.

Datové sady Kaggle můžete do notebooků Kaggle přidat kdykoli. Můžete také přidat datové sady soutěže, ale pouze pokud přijmete pravidla soutěže. Pokud chcete, můžete notebooky zřetězit přidáním výstupu jednoho notebooku k datům jiného notebooku.

Notebooky běží v jádrech, což jsou v podstatě kontejnery Dockeru. Verze svých notebooků můžete ukládat, jak je vyvíjíte.

Poznámkové bloky můžete vyhledat pomocí dotazu na klíčové slovo webu a filtru poznámkových bloků, nebo procházením domovské stránky Kaggle. Můžete také použít výpis Notebooků; stejně jako datové sady je pořadí notebooků v seznamu ve výchozím nastavení podle „horkosti“. Čtení veřejných notebooků je dobrý způsob, jak se naučit, jak lidé vědí o datech.

Na notebooku můžete s ostatními spolupracovat několika způsoby, podle toho, zda je notebook veřejný nebo soukromý. Pokud je to veřejné, můžete udělit oprávnění k úpravám konkrétním uživatelům (může je zobrazit každý). Pokud je soukromý, můžete udělit oprávnění k prohlížení nebo úpravám.

Veřejné API Kaggle

Kromě vytváření a spouštění interaktivních poznámkových bloků můžete komunikovat s Kaggle pomocí příkazového řádku Kaggle z místního počítače, který volá veřejné API Kaggle. Kaggle CLI můžete nainstalovat pomocí instalačního programu Pythonu 3 pipa ověřte svůj počítač stažením tokenu API ze stránky Kaggle.

Kaggle CLI a API mohou komunikovat se soutěžemi, datovými sadami a poznámkovými bloky (jádra). API je open source a je hostováno na GitHubu na //github.com/Kaggle/kaggle-api. Soubor README tam poskytuje úplnou dokumentaci k nástroji příkazového řádku.

Komunita a vzdělávání Kaggle

Kaggle hostí komunitní diskusní fóra a mikrokurzy. Témata fóra zahrnují samotný Kaggle, úvod, zpětnou vazbu, otázky a odpovědi, datové sady a mikrokurzy. Mikrokurzy pokrývají dovednosti relevantní pro datové vědce za několik hodin: Python, strojové učení, vizualizace dat, Pandy, funkce, hluboké učení, SQL, geoprostorová analýza atd.

Celkově vzato je Kaggle velmi užitečný pro učení vědy o datech a pro soutěžení s ostatními v problémech vědy o datech. Je také velmi užitečné jako úložiště pro standardní veřejné datové sady. Není to však náhrada za placené cloudové datové vědecké služby nebo za vlastní analýzu.