Kaggle: Gdje znanstvenici podataka uče i natječu se

Znanost o podacima obično je više umjetnost nego znanost, unatoč imenu. Počinjete s prljavim podacima i starim statističkim prediktivnim modelom i pokušavate bolje raditi sa strojnim učenjem. Nitko ne provjerava vaš rad niti ga pokušava poboljšati: ako vaš novi model bolje stoji od starog, usvojite ga i prijeđite na sljedeći problem. Kada podaci počnu odmicati i model prestane raditi, model ažurirate iz novog skupa podataka.

Bavljenje naukom o podacima u Kaggleu sasvim je drugačije. Kaggle je mrežno okruženje i zajednica za strojno učenje. Ima standardne skupove podataka koje stotine ili tisuće pojedinaca ili timova pokušavaju modelirati, a za svako natjecanje postoji ploča s najboljim rezultatima. Mnoga natjecanja nude novčane nagrade i statusne bodove, a ljudi mogu usavršavati svoje modele dok se natjecanje ne zatvori, kako bi poboljšali svoje rezultate i popeli se na ljestvici. Mali postoci često čine razliku između pobjednika i drugoplasiranih.

Kaggle je nešto s čime se profesionalni znanstvenici podataka mogu igrati u slobodno vrijeme, a ambiciozni znanstvenici podataka mogu naučiti kako izgraditi dobre modele strojnog učenja.

Što je Kaggle?

Sveobuhvatno gledano, Kaggle je internetska zajednica za znanstvenike podataka koja nudi natjecanja u strojnom učenju, skupove podataka, bilježnice, pristup akceleratorima obuke i obrazovanje. Anthony Goldbloom (izvršni direktor) i Ben Hamner (CTO) osnovali su Kaggle 2010. godine, a Google je tvrtku stekao 2017. godine.

Kaggle natjecanja poboljšala su stanje tehnike strojnog učenja na nekoliko područja. Jedan je mapiranje tamne materije; drugo je istraživanje HIV / AIDS-a. Gledajući pobjednike Kaggle natjecanja, vidjet ćete puno XGBoost modela, neke Random Forest modele i nekoliko dubokih neuronskih mreža.

Kaggle natjecanja

Postoji pet kategorija Kaggle natjecanja: Početak rada, Igralište, Istaknuto, Istraživanje i Regrutiranje.

Natjecanja za početak rada su polu trajna, a namijenjena su novim korisnicima koji će tek zakoračiti u polje strojnog učenja. Ne nude nagrade ili bodove, ali imaju dovoljno tutorijala. Natjecanja za početak imaju dvomjesečne ljestvice poretka.

Natjecanja na igralištu jedan su korak iznad Početak rada u poteškoćama. Nagrade se kreću od pohvale do malih novčanih nagrada.

Istaknuta natjecanja predstavljaju izazove strojnog učenja koji stvaraju teške probleme s predviđanjem, uglavnom s komercijalnom svrhom. Istaknuta natjecanja privlače neke od najstrašnijih stručnjaka i timova i nude nagradne fondove koji mogu doseći i milijun dolara. To bi moglo zvučati obeshrabrujuće, ali čak i ako ne osvojite jedno od njih, učit ćete iz pokušaja i čitanja tuđih rješenja, posebno visoko rangiranih rješenja.

Natjecanja u istraživanju uključuju probleme koji su više eksperimentalni od istaknutih problema. Zbog eksperimentalne prirode obično ne nude nagrade ili bodove.

Na natjecanjima za zapošljavanje pojedinci se natječu u stvaranju modela strojnog učenja za izazove koji su korporacijski korporativni. Po završetku natjecanja, zainteresirani sudionici mogu poslati svoj životopis na razmatranje domaćinu. Nagrada je (potencijalno) razgovor za posao u tvrtki ili organizaciji koja je domaćin natjecanja.

Postoji nekoliko formata za natjecanja. U standardnom Kaggle natjecanju korisnici mogu pristupiti kompletnim skupovima podataka na početku natjecanja, preuzeti podatke, graditi modele na podacima lokalno ili u Kaggle bilježnicama (vidi dolje), generirati datoteku predviđanja, a zatim učitati predviđanja kao podnesak na Kaggleu. Većina natjecanja na Kaggleu slijedi ovaj format, ali postoje alternative. Nekoliko natjecanja podijeljeno je u faze. Neka su kodna natjecanja koja se moraju prijaviti iz Kaggle bilježnice.

Kaggle skupovi podataka

Kaggle hostira preko 35 tisuća skupova podataka. To su u raznim formatima publikacija, uključujući vrijednosti odvojene zarezom (CSV) za tablične podatke, JSON za podatke slične stablu, SQLite baze podataka, ZIP i 7z arhive (često korištene za skupove podataka slike) i BigQuery skupovi podataka, koji su -terabajtni SQL skupovi podataka hostirani na Googleovim poslužiteljima.

Postoji nekoliko načina pronalaska Kaggle skupova podataka. Na Kaggle početnoj stranici pronaći ćete popis "vrućih" skupova podataka i skupova podataka koje su prenijeli ljudi koje pratite. Na stranici skupova podataka Kaggle pronaći ćete popis skupova podataka (u početku ih je poredalo "najtoplije", ali s ostalim mogućnostima naručivanja) i filtar za pretraživanje. Oznake i stranice oznaka možete koristiti i za lociranje skupova podataka, na primjer //www.kaggle.com/tags/crime.

Na Kaggleu možete stvoriti javne i privatne skupove podataka s lokalnog računala, URL-ova, GitHub spremišta i izlaza Kaggle Notebook. Možete postaviti skup podataka stvoren od URL-a ili GitHub-ovog spremišta za povremeno ažuriranje.

Trenutno Kaggle ima podosta podataka, izazova i bilježnica za COVID-19. Već je nekoliko doprinosa zajednice nastojalo razumjeti ovu bolest i virus koji je uzrokuje.

Kaggle bilježnice

Kaggle podržava tri vrste prijenosnika: skripte, RMarkdown skripte i Jupyter bilježnice. Skripte su datoteke koje sve sekvencijalno izvršavaju kao kod. Bilježnice možete pisati na R ili Pythonu. Koderi R i ljudi koji predaju kod za natjecanja često koriste skripte; Python koderi i ljudi koji rade istraživačku analizu podataka uglavnom preferiraju Jupyterove bilježnice.

Prijenosna računala bilo koje pruge mogu po želji imati besplatni GPU (Nvidia Tesla P100) ili TPU akceleratore i mogu koristiti usluge Google Cloud Platform, ali postoje kvote koje se primjenjuju, na primjer 30 sati GPU-a i 30 sati TPU-a tjedno. U osnovi, nemojte koristiti GPU ili TPU u bilježnici, osim ako ne trebate ubrzati duboko učenje. Korištenje usluga Google Cloud Platform može naplatiti vaš račun Google Cloud Platform ako premašite dozvole za besplatni nivo.

Skupove podataka Kaggle možete dodati u prijenosnike Kaggle u bilo kojem trenutku. Također možete dodati skupove podataka o Natjecanju, ali samo ako prihvatite pravila natjecanja. Ako želite, možete lančiće povezati lancima dodavanjem rezultata jedne bilježnice podacima druge bilježnice.

Prijenosna računala rade u jezgri, koja su u osnovi Dockerovi spremnici. Inačice svojih bilježnica možete spremati dok ih razvijate.

Možete tražiti bilježnice pomoću upita za ključne riječi web mjesta i filtra na bilježnicama ili pregledavanjem početne stranice Kaggle. Također možete koristiti popis Bilježnica; poput skupova podataka, redoslijed bilježnica na popisu prema zadanim postavkama je "vrućina". Čitanje javnih bilježnica dobar je način da naučite kako ljudi rade znanost o podacima.

Na bilježnici možete surađivati ​​s drugima na više načina, ovisno o tome je li bilježnica javna ili privatna. Ako je javno, možete dodijeliti povlastice uređivanja određenim korisnicima (svi mogu pregledavati). Ako je privatno, možete dodijeliti povlastice pregledavanja ili uređivanja.

Kaggle javni API

Uz izgradnju i pokretanje interaktivnih bilježnica, s Kaggleom možete komunicirati i pomoću naredbe Kaggle s lokalnog računala, koja poziva Kaggle javni API. Možete instalirati Kaggle CLI pomoću instalacijskog programa Python 3 pipi ovjeriti svoj stroj preuzimanjem API tokena s Kaggle stranice.

Kaggle CLI i API mogu komunicirati s natjecanjima, skupovima podataka i prijenosnicima (kernelima). API je otvorenog koda i hostiran je na GitHubu na //github.com/Kaggle/kaggle-api. Datoteka README tamo pruža potpunu dokumentaciju za alat naredbenog retka.

Kaggle zajednica i obrazovanje

Kaggle je domaćin forumima za zajednicu i mikro-tečajevima. Teme foruma uključuju sam Kaggle, početak rada, povratne informacije, pitanja i odgovore, skupove podataka i mikro-tečajeve. Mikrotečajevi pokrivaju vještine relevantne za znanstvenike podataka za nekoliko sati: Python, strojno učenje, vizualizacija podataka, Pande, inženjering značajki, dubinsko učenje, SQL, geoprostorna analiza itd.

Sve u svemu, Kaggle je vrlo koristan za učenje znanosti o podacima i za natjecanje s drugima u izazovima u znanosti o podacima. Također je vrlo koristan kao spremište za standardne javne skupove podataka. Međutim, to nije zamjena za plaćene usluge znanosti o oblaku ili za vlastitu analizu.