Ohjelmointi

Kaggle: Missä datatutkijat oppivat ja kilpailevat

Datatiede on tyypillisesti enemmän taidetta kuin tiede, nimestä huolimatta. Aloitat likaisista tiedoista ja vanhasta tilastollisesta ennakoivasta mallista ja yrität pärjätä paremmin koneoppimisessa. Kukaan ei tarkista tai yritä parantaa sitä: Jos uusi mallisi sopii paremmin kuin vanha, otat sen käyttöön ja siirryt seuraavaan ongelmaan. Kun tiedot alkavat kulkeutua ja malli lakkaa toimimasta, päivität mallin uudesta tietojoukosta.

Datatieteen tekeminen Kagglessa on melko erilaista. Kaggle on online-koneoppimisympäristö ja -yhteisö. Siinä on vakiotietojoukot, joita sadat tai tuhannet yksilöt tai joukkueet yrittävät mallintaa, ja jokaiselle kilpailulle on tulostaulukko. Monet kilpailut tarjoavat rahapalkintoja ja statuspisteitä, ja ihmiset voivat parantaa mallejaan kilpailun päättymiseen saakka parantamaan pisteitään ja nousemaan tikkaita. Pienet prosenttiosuudet tekevät usein eron voittajien ja toiseksi tulevien välillä.

Kaggle on jotain, jota ammattitietotieteilijät voivat pelata vapaa-ajallaan, ja pyrkivät tiedon tutkijat voivat oppia rakentamaan hyviä koneoppimismalleja.

Mikä on Kaggle?

Tarkemmin tarkasteltuna Kaggle on datatieteilijöiden verkkoyhteisö, joka tarjoaa koneoppimiskilpailuja, tietoaineistoja, muistikirjoja, pääsyn koulutuksen kiihdyttimiin ja koulutusta. Anthony Goldbloom (toimitusjohtaja) ja Ben Hamner (CTO) perustivat Kagglen vuonna 2010, ja Google osti yrityksen vuonna 2017.

Kaggle-kilpailut ovat parantaneet koneoppimisen taitoa useilla alueilla. Yksi on pimeän aineen kartoitus; toinen on HIV / aids-tutkimus. Kun tarkastellaan Kaggle-kilpailujen voittajia, näet paljon XGBoost-malleja, joitain Random Forest -malleja ja muutamia syviä hermoverkkoja.

Kaggle-kilpailut

Kaggle-kilpailussa on viisi luokkaa: Aloittaminen, Leikkikenttä, Esittelyssä, Tutkimus ja Rekrytointi.

Aloittelukilpailut ovat puoliksi pysyviä, ja ne on tarkoitettu uusien käyttäjien käyttöön, jotka ovat vain saamassa jalkansa oveen koneoppimisen alalla. Ne eivät tarjoa palkintoja tai pisteitä, mutta niillä on runsaasti opetusohjelmia. Aloittelukilpailuilla on kahden kuukauden liukuvat tulostaulukot.

Leikkikenttäkilpailut ovat yksi askel vaikeuksissa olevien aloituspisteiden yläpuolella. Palkinnot vaihtelevat kunniasta pieniin rahapalkintoihin.

Esitetyt kilpailut ovat täysimittaisia ​​koneoppimisen haasteita, jotka aiheuttavat vaikeita ennustamisongelmia, yleensä kaupallisella tarkoituksella. Esitetyt kilpailut houkuttelevat joitain uhkaimpia asiantuntijoita ja joukkueita ja tarjoavat palkintopotteja, jotka voivat olla jopa miljoona dollaria. Se saattaa kuulostaa masentavalta, mutta vaikka et voita yhtä näistä, opit kokeilemalla ja lukemalla muiden ratkaisuja, etenkin korkealle luokiteltuja ratkaisuja.

Tutkimuskilpailuihin liittyy ongelmia, jotka ovat kokeellisempia kuin kilpailuun liittyvät ongelmat. Ne eivät yleensä tarjoa palkintoja tai pisteitä kokeellisen luonteensa vuoksi.

Rekrytointikilpailuissa yksilöt kilpailevat rakentamaan koneoppimismalleja yritysten kuratoimiin haasteisiin. Kilpailun lähellä kiinnostuneet osallistujat voivat ladata ansioluettelonsa isännän harkittavaksi. Palkinto on (mahdollisesti) työhaastattelu kilpailun isännöivässä yrityksessä tai organisaatiossa.

Kilpailuja on useita formaatteja. Tavallisessa Kaggle-kilpailussa käyttäjät voivat käyttää kaikkia tietojoukkoja kilpailun alussa, ladata tietoja, rakentaa malleja tietoihin paikallisesti tai Kaggle-muistikirjoissa (katso alla), luoda ennakointitiedoston ja ladata sitten ennusteet lähetyksenä päällä Kaggle. Useimmat Kaggle-kilpailut seuraavat tätä muotoa, mutta on olemassa vaihtoehtoja. Muutama kilpailu on jaettu vaiheisiin. Jotkut ovat koodikilpailuja, jotka on lähetettävä Kaggle-muistikirjasta.

Kaggle-tietojoukot

Kaggle isännöi yli 35 tuhatta tietoaineistoa. Nämä ovat useissa julkaisumuodoissa, mukaan lukien pilkulla erotetut arvot (CSV) taulukkotiedoille, JSON puumaisille tiedoille, SQLite-tietokannat, ZIP- ja 7z-arkistot (käytetään usein kuvajoukkoihin) ja BigQuery-tietojoukot -tuumatavun SQL-tietojoukot, joita isännöidään Googlen palvelimilla.

On olemassa useita tapoja löytää Kaggle-tietojoukot. Kaggle-kotisivulta löydät luettelon "kuumista" tietojoukoista ja seuraamiesi ihmisten lataamista aineistoista. Kaggle-tietojoukot -sivulta löydät tietoaineistoluettelon (alun perin järjestetty "kuumin", mutta muiden tilausvaihtoehtojen mukaan) ja hakusuodattimen. Voit etsiä tietojoukkoja myös tunnisteiden ja tagisivujen avulla, esimerkiksi //www.kaggle.com/tags/crime.

Voit luoda julkisia ja yksityisiä tietojoukkoja Kagglessa paikalliselta koneeltasi, URL-osoitteista, GitHub-arkistoista ja Kaggle Notebook -lähtöistä. Voit asettaa URL-osoitteesta tai GitHub-arkistosta luodun tietojoukon päivittymään säännöllisesti.

Tällä hetkellä Kagglella on melko paljon COVID-19-tietojoukkoja, haasteita ja muistikirjoja. Tämän taudin ja sen aiheuttavan viruksen ymmärtämisessä on jo ollut useita yhteisöpanoksia.

Kaggle-muistikirjat

Kaggle tukee kolmen tyyppisiä muistikirjoja: komentosarjoja, RMarkdown-komentosarjoja ja Jupyter-muistikirjoja. Komentosarjat ovat tiedostoja, jotka suorittavat kaiken koodina peräkkäin. Voit kirjoittaa muistikirjoja R- tai Python-muodossa. R-koodaajat ja kilpailuja varten koodin lähettävät ihmiset käyttävät usein komentosarjoja; Python-koodaajat ja tutkimustietoa analysoivat ihmiset suosivat yleensä Jupyter-muistikirjoja.

Kaikissa raidoissa olevissa muistikirjoissa voi olla vapaa GPU (Nvidia Tesla P100) tai TPU-kiihdytin ja ne voivat käyttää Google Cloud Platform -palveluita, mutta on olemassa kiintiöitä, joita sovelletaan, esimerkiksi 30 tuntia GPU: ta ja 30 tuntia TPU: ta viikossa. Periaatteessa, älä käytä GPU: ta tai TPU: ta muistikirjassa, ellet tarvitse nopeuttaa syvällistä oppimista. Google Cloud Platform -palveluiden käyttäminen saattaa veloittaa Google Cloud Platform -tililtäsi maksuja, jos ylität ilmaisen tason päästöoikeudet.

Voit lisätä Kaggle-tietojoukkoja Kaggle-muistikirjoihin milloin tahansa. Voit myös lisätä kilpailun aineistoja, mutta vain jos hyväksyt kilpailun säännöt. Halutessasi voit ketjuttaa muistikirjat lisäämällä yhden muistikirjan lähdön toisen muistikirjan tietoihin.

Muistikirjat toimivat ytimissä, jotka ovat lähinnä Docker-kontteja. Voit tallentaa muistikirjojen versioita kehittäessäsi niitä.

Voit etsiä muistikirjoja sivuston avainsanakyselyllä ja suodattimella muistikirjoista tai selaamalla Kaggle-kotisivua. Voit käyttää myös Muistikirja-luetteloa; kuten tietojoukot, muistikirjojen järjestys luettelossa on oletusarvoisesti "kuumuus". Julkisten muistikirjojen lukeminen on hyvä tapa oppia, miten ihmiset tekevät tietojenkäsittelyä.

Voit tehdä yhteistyötä muistikirjan muiden kanssa useilla tavoilla sen mukaan, onko muistikirja julkinen vai yksityinen. Jos se on julkinen, voit myöntää muokkausoikeudet tietyille käyttäjille (kaikki voivat nähdä). Jos se on yksityinen, voit myöntää katselu- tai muokkausoikeudet.

Kaggle julkinen sovellusliittymä

Vuorovaikutteisten muistikirjojen rakentamisen ja suorittamisen lisäksi voit olla vuorovaikutuksessa Kagglen kanssa käyttämällä paikallisen koneesi Kaggle-komentoriviä, joka kutsuu Kaggle-julkista sovellusliittymää. Voit asentaa Kaggle-käyttöliittymän Python 3 -asennusohjelmalla pipja todenna koneesi lataamalla API-tunniste Kaggle-sivustolta.

Kaggle CLI ja API voivat olla vuorovaikutuksessa kilpailujen, tietojoukkojen ja muistikirjojen (ytimien) kanssa. API on avoimen lähdekoodin ja sitä isännöidään GitHubissa osoitteessa //github.com/Kaggle/kaggle-api. Siellä oleva README-tiedosto tarjoaa täydelliset ohjeet komentorivityökalulle.

Kaggle-yhteisö ja koulutus

Kaggle isännöi yhteisöfoorumeita ja mikrokursseja. Foorumin aiheita ovat itse Kaggle, käytön aloittaminen, palaute, kysymykset ja vastaukset, tietojoukot ja mikrokurssit. Mikrokurssit käsittelevät datatieteilijöille tärkeitä taitoja muutamassa tunnissa: Python, koneoppiminen, tietojen visualisointi, pandat, piirustekniikka, syvällinen oppiminen, SQL, paikkatietojen analysointi ja niin edelleen.

Kaiken kaikkiaan Kaggle on erittäin hyödyllinen datatieteen oppimisessa ja kilpailussa muiden kanssa tietojenkäsittelyn haasteista. Se on myös erittäin hyödyllinen tavallisten julkisten tietojoukkojen arkistona. Se ei kuitenkaan korvaa maksettuja pilvitietotieteen palveluja tai oman analyysin tekemistä.