Programmering

Kaggle: Hvor dataforskere lærer og konkurrerer

Datavidenskab er typisk mere kunst end videnskab på trods af navnet. Du starter med beskidte data og en gammel statistisk forudsigelig model og prøver at gøre det bedre med maskinlæring. Ingen kontrollerer dit arbejde eller prøver at forbedre det: Hvis din nye model passer bedre end den gamle, vedtager du det og går videre til det næste problem. Når dataene begynder at drive, og modellen holder op med at arbejde, opdaterer du modellen fra det nye datasæt.

At udføre datalogi i Kaggle er helt anderledes. Kaggle er et online maskinlæringsmiljø og samfund. Det har standard datasæt, som hundreder eller tusinder af enkeltpersoner eller teams prøver at modellere, og der er et leaderboard for hver konkurrence. Mange konkurrencer tilbyder pengepræmier og statuspoint, og folk kan forfine deres modeller, indtil konkurrencen lukkes, for at forbedre deres score og klatre op ad stigen. Små procentdele gør ofte forskellen mellem vindere og andenpladser.

Kaggle er noget, som professionelle dataforskere kan lege med i deres fritid, og håbefulde dataforskere kan bruge til at lære at opbygge gode maskinlæringsmodeller.

Hvad er Kaggle?

Set i større grad er Kaggle et online community for dataforskere, der tilbyder maskinlæringskonkurrencer, datasæt, notesbøger, adgang til træningsacceleratorer og uddannelse. Anthony Goldbloom (CEO) og Ben Hamner (CTO) grundlagde Kaggle i 2010, og Google købte virksomheden i 2017.

Kaggle-konkurrencer har forbedret tilstanden for maskinlæringskunst på flere områder. Den ene kortlægger mørkt stof; en anden er HIV / AIDS-forskning. Ser man på vinderne af Kaggle-konkurrencer, vil du se masser af XGBoost-modeller, nogle Random Forest-modeller og et par dybe neurale netværk.

Kaggle konkurrencer

Der er fem kategorier af Kaggle-konkurrence: Kom godt i gang, Legeplads, Udvalgt, Forskning og rekruttering.

Kom godt i gang konkurrencer er semi-permanente og er beregnet til at blive brugt af nye brugere, der bare får deres fod i døren inden for maskinlæring. De tilbyder ingen præmier eller point, men har rigelige tutorials. Kom godt i gang konkurrencer har to måneders rullende ranglister.

Legepladskonkurrencer er et trin over Kom godt i gang i vanskeligheder. Præmier spænder fra kudos til små pengepræmier.

Fremhævede konkurrencer er maskinindlæringsudfordringer i fuld skala, der udgør vanskelige forudsigelsesproblemer, generelt med et kommercielt formål. Udvalgte konkurrencer tiltrækker nogle af de mest formidable eksperter og hold og tilbyder præmiepuljer, der kan være så høje som en million dollars. Det lyder måske nedslående, men selvom du ikke vinder en af ​​disse, lærer du af at prøve og af at læse andres løsninger, især de højt rankede løsninger.

Forskningskonkurrencer involverer problemer, der er mere eksperimentelle end udvalgte konkurrenceproblemer. De tilbyder normalt ikke præmier eller point på grund af deres eksperimentelle karakter.

I rekrutteringskonkurrencer konkurrerer enkeltpersoner om at opbygge maskinlæringsmodeller til udformede udfordringer. Ved afslutningen af ​​konkurrencen kan interesserede deltagere uploade deres CV til overvejelse af værten. Prisen er (potentielt) et jobinterview hos det firma eller den organisation, der er vært for konkurrencen.

Der er flere formater til konkurrencer. I en standard Kaggle-konkurrence kan brugerne få adgang til de komplette datasæt i starten af ​​konkurrencen, downloade dataene, bygge modeller på dataene lokalt eller i Kaggle Notebooks (se nedenfor), generere en forudsigelsesfil og derefter uploade forudsigelserne som en indsendelse på Kaggle. De fleste konkurrencer på Kaggle følger dette format, men der er alternativer. Et par konkurrencer er opdelt i etaper. Nogle er kodekonkurrencer, der skal indsendes fra en Kaggle Notebook.

Kaggle datasæt

Kaggle er vært for over 35 tusind datasæt. Disse findes i en række forskellige publikationsformater, herunder kommaseparerede værdier (CSV) til tabeldata, JSON til trælignende data, SQLite-databaser, ZIP- og 7z-arkiver (ofte brugt til billeddatasæt) og BigQuery-datasæt, som er flere -terabyte SQL-datasæt hostet på Googles servere.

Der er flere måder at finde Kaggle datasæt på. På Kaggle-hjemmesiden finder du en liste over "hot" datasæt og datasæt uploadet af personer, du følger. På siden Kaggle datasæt finder du en datasætliste (oprindeligt ordnet efter “hottest”, men med andre bestillingsmuligheder) og et søgefilter. Du kan også bruge tags og tag-sider til at finde datasæt, for eksempel //www.kaggle.com/tags/crime.

Du kan oprette offentlige og private datasæt på Kaggle fra din lokale maskine, URL'er, GitHub-arkiver og Kaggle Notebook-udgange. Du kan indstille et datasæt, der er oprettet fra en URL eller GitHub-arkiv, til at opdatere med jævne mellemrum.

I øjeblikket har Kaggle en hel del COVID-19 datasæt, udfordringer og notesbøger. Der har allerede været flere bidrag fra samfundet til indsatsen for at forstå denne sygdom og den virus, der forårsager den.

Kaggle notesbøger

Kaggle understøtter tre typer notesbøger: scripts, RMarkdown-scripts og Jupyter Notebooks. Scripts er filer, der udfører alt som kode sekventielt. Du kan skrive notesbøger i R eller Python. R-kodere og personer, der indsender kode til konkurrencer, bruger ofte scripts; Python-kodere og folk, der laver sonderende dataanalyse, har en tendens til at foretrække Jupyter Notebooks.

Notebooks af enhver stribe kan valgfrit have gratis GPU (Nvidia Tesla P100) eller TPU-acceleratorer og kan bruge Google Cloud Platform-tjenester, men der er kvoter, der gælder, for eksempel 30 timers GPU og 30 timers TPU'er om ugen. Brug grundlæggende ikke en GPU eller en TPU i en notesbog, medmindre du har brug for at fremskynde dyb læringstræning. Brug af Google Cloud Platform-tjenester kan medføre gebyrer på din Google Cloud Platform-konto, hvis du overskrider gratis niveauer.

Du kan når som helst tilføje Kaggle-datasæt til Kaggle-notesbøger. Du kan også tilføje konkurrencedatasæt, men kun hvis du accepterer konkurrencereglerne. Hvis du ønsker det, kan du kæde notesbøger ved at tilføje output fra en notesbog til dataene på en anden notesbog.

Notebooks kører i kerner, som i det væsentlige er Docker-containere. Du kan gemme versioner af dine notesbøger, når du udvikler dem.

Du kan søge efter notesbøger med et forespørgsel om søgeordsnøgleord og et filter på notesbøger eller ved at gennemse Kaggle-hjemmesiden. Du kan også bruge Notebook-listen; ligesom datasæt er rækkefølgen af ​​notesbøger på listen som standard "hotness". Læsning af offentlige notesbøger er en god måde at lære, hvordan folk gør datalogi.

Du kan samarbejde med andre på en notesbog på flere måder, afhængigt af om den bærbare computer er offentlig eller privat. Hvis det er offentligt, kan du give redigeringsrettigheder til bestemte brugere (alle kan se). Hvis det er privat, kan du give visnings- eller redigeringsrettigheder.

Kaggle offentlig API

Ud over at opbygge og køre interaktive notesbøger kan du interagere med Kaggle ved hjælp af Kaggle-kommandolinjen fra din lokale maskine, der kalder Kaggle public API. Du kan installere Kaggle CLI ved hjælp af Python 3-installationsprogrammet pip, og godkend din maskine ved at downloade et API-token fra Kaggle-webstedet.

Kaggle CLI og API kan interagere med konkurrencer, datasæt og notesbøger (kerner). API'et er open source og hostes på GitHub på //github.com/Kaggle/kaggle-api. README-filen der indeholder den fulde dokumentation for kommandolinjeværktøjet.

Kaggle samfund og uddannelse

Kaggle er vært for diskussionsfora og mikrokurser i samfundet. Forumemner inkluderer Kaggle selv, at komme i gang, feedback, Q&A, datasæt og mikrokurser. Mikro-kurser dækker færdigheder, der er relevante for dataforskere på få timer hver: Python, maskinindlæring, datavisualisering, Pandaer, funktionsteknik, dyb læring, SQL, geospatial analyse osv.

Alt i alt er Kaggle meget nyttigt til at lære datalogi og til at konkurrere med andre om datalogiske udfordringer. Det er også meget nyttigt som lager for standard offentlige datasæt. Det er dog ikke en erstatning for betalte cloud data science-tjenester eller til at lave din egen analyse.