Kaggle: Dove i data scientist imparano e competono

La scienza dei dati è in genere più un'arte che una scienza, nonostante il nome. Inizi con dati sporchi e un vecchio modello predittivo statistico e cerchi di fare meglio con l'apprendimento automatico. Nessuno controlla il tuo lavoro o cerca di migliorarlo: se il tuo nuovo modello si adatta meglio del vecchio, lo adotti e passi al problema successivo. Quando i dati iniziano a spostarsi e il modello smette di funzionare, aggiorna il modello dal nuovo set di dati.

Fare scienza dei dati in Kaggle è molto diverso. Kaggle è un ambiente e una community di machine learning online. Ha set di dati standard che centinaia o migliaia di individui o team cercano di modellare e c'è una classifica per ogni competizione. Molti concorsi offrono premi in denaro e punti status e le persone possono perfezionare i loro modelli fino alla chiusura del concorso, per migliorare i loro punteggi e scalare la scala. Piccole percentuali spesso fanno la differenza tra i vincitori e i secondi classificati.

Kaggle è qualcosa con cui i data scientist professionisti possono giocare nel loro tempo libero e gli aspiranti data scientist possono utilizzare per imparare a costruire buoni modelli di machine learning.

Cos'è Kaggle?

Considerata in modo più completo, Kaggle è una comunità online per data scientist che offre gare di machine learning, set di dati, notebook, accesso ad acceleratori di formazione e istruzione. Anthony Goldbloom (CEO) e Ben Hamner (CTO) hanno fondato Kaggle nel 2010 e Google ha acquisito la società nel 2017.

Le competizioni Kaggle hanno migliorato lo stato dell'arte del machine learning in diverse aree. Uno è la mappatura della materia oscura; un altro è la ricerca sull'HIV / AIDS. Guardando i vincitori delle competizioni Kaggle, vedrai molti modelli XGBoost, alcuni modelli Random Forest e alcune reti neurali profonde.

Competizioni Kaggle

Sono disponibili cinque categorie di gare Kaggle: Guida introduttiva, Parco giochi, In primo piano, Ricerca e Reclutamento.

Le gare introduttive sono semi-permanenti e sono pensate per essere utilizzate dai nuovi utenti che stanno solo mettendo piede nel campo dell'apprendimento automatico. Non offrono premi o punti, ma hanno ampi tutorial. Le competizioni introduttive hanno classifiche a rotazione di due mesi.

Le competizioni nei parchi giochi sono un gradino sopra la Guida introduttiva in difficoltà. I premi vanno dai complimenti ai piccoli premi in denaro.

Le competizioni in primo piano sono sfide di apprendimento automatico su vasta scala che pongono difficili problemi di previsione, generalmente con uno scopo commerciale. Le competizioni in primo piano attirano alcuni dei più formidabili esperti e team e offrono montepremi che possono arrivare fino a un milione di dollari. Potrebbe sembrare scoraggiante, ma anche se non vinci uno di questi, imparerai provando e leggendo le soluzioni di altre persone, in particolare le soluzioni di alto livello.

I concorsi di ricerca comportano problemi più sperimentali dei problemi di concorrenza in primo piano. Di solito non offrono premi o punti a causa della loro natura sperimentale.

Nelle competizioni di reclutamento, le persone competono per costruire modelli di apprendimento automatico per le sfide curate dall'azienda. Al termine del concorso, i partecipanti interessati possono caricare il proprio curriculum per essere preso in considerazione dall'host. Il premio è (potenzialmente) un colloquio di lavoro presso l'azienda o l'organizzazione che ospita il concorso.

Esistono diversi formati per le competizioni. In una competizione Kaggle standard, gli utenti possono accedere ai set di dati completi all'inizio della competizione, scaricare i dati, creare modelli sui dati localmente o in Kaggle Notebooks (vedi sotto), generare un file di previsione, quindi caricare le previsioni come invio su Kaggle. La maggior parte delle competizioni su Kaggle segue questo formato, ma ci sono alternative. Alcune competizioni sono suddivise in fasi. Alcuni sono concorsi di codice che devono essere inviati dall'interno di un taccuino Kaggle.

Set di dati Kaggle

Kaggle ospita oltre 35mila set di dati. Questi sono in una varietà di formati di pubblicazione, inclusi valori separati da virgola (CSV) per dati tabulari, JSON per dati ad albero, database SQLite, archivi ZIP e 7z (spesso utilizzati per set di dati di immagini) e set di dati BigQuery, che sono multi -terabyte di set di dati SQL ospitati sui server di Google.

Esistono diversi modi per trovare i set di dati Kaggle. Nella home page di Kaggle troverai un elenco di set di dati "caldi" e set di dati caricati dalle persone che segui. Nella pagina dei set di dati di Kaggle troverai un elenco di set di dati (inizialmente ordinato per "più caldo" ma con altre opzioni di ordinamento) e un filtro di ricerca. Puoi anche utilizzare tag e pagine di tag per individuare i set di dati, ad esempio //www.kaggle.com/tags/crime.

Puoi creare set di dati pubblici e privati ​​su Kaggle dal tuo computer locale, URL, repository GitHub e output di Kaggle Notebook. È possibile impostare un set di dati creato da un URL o da un repository GitHub per l'aggiornamento periodico.

Al momento, Kaggle ha diversi set di dati, sfide e notebook COVID-19. Ci sono già stati diversi contributi della comunità allo sforzo di comprendere questa malattia e il virus che la causa.

Quaderni Kaggle

Kaggle supporta tre tipi di notebook: script, script RMarkdown e notebook Jupyter. Gli script sono file che eseguono tutto come codice in sequenza. Puoi scrivere taccuini in R o Python. I programmatori R e le persone che inviano codice per le competizioni usano spesso script; I programmatori Python e le persone che fanno analisi esplorativa dei dati tendono a preferire i notebook Jupyter.

I notebook di qualsiasi stripe possono facoltativamente avere GPU (Nvidia Tesla P100) o acceleratori TPU gratuiti e possono utilizzare i servizi di Google Cloud Platform, ma ci sono quote applicabili, ad esempio 30 ore di GPU e 30 ore di TPU a settimana. Fondamentalmente, non utilizzare una GPU o una TPU in un notebook a meno che non sia necessario accelerare la formazione di deep learning. L'utilizzo dei servizi di Google Cloud Platform potrebbe comportare addebiti per il tuo account Google Cloud Platform se superi le quote del livello gratuito.

Puoi aggiungere set di dati Kaggle ai taccuini Kaggle in qualsiasi momento. Puoi anche aggiungere set di dati della competizione, ma solo se accetti le regole della competizione. Se lo desideri, puoi concatenare taccuini aggiungendo l'output di un taccuino ai dati di un altro taccuino.

I notebook vengono eseguiti nei kernel, che sono essenzialmente contenitori Docker. Puoi salvare le versioni dei tuoi taccuini mentre li sviluppi.

Puoi cercare taccuini con una query di parole chiave del sito e un filtro sui taccuini oppure sfogliando la home page di Kaggle. Puoi anche utilizzare l'elenco Notebook; Come i set di dati, l'ordine dei taccuini nell'elenco è "piccante" per impostazione predefinita. Leggere i taccuini pubblici è un buon modo per imparare come le persone fanno scienza dei dati.

È possibile collaborare con altri su un blocco appunti in diversi modi, a seconda che il blocco appunti sia pubblico o privato. Se è pubblico, puoi concedere privilegi di modifica a utenti specifici (tutti possono visualizzare). Se è privato, puoi concedere i privilegi di visualizzazione o modifica.

API pubblica Kaggle

Oltre a creare ed eseguire taccuini interattivi, puoi interagire con Kaggle utilizzando la riga di comando di Kaggle dal tuo computer locale, che chiama l'API pubblica di Kaggle. Puoi installare la Kaggle CLI utilizzando il programma di installazione di Python 3 pipe autenticare la tua macchina scaricando un token API dal sito Kaggle.

La CLI e l'API di Kaggle possono interagire con concorsi, set di dati e notebook (kernel). L'API è open source ed è ospitata su GitHub all'indirizzo //github.com/Kaggle/kaggle-api. Il file README fornisce la documentazione completa per lo strumento della riga di comando.

Comunità ed educazione Kaggle

Kaggle ospita forum di discussione della comunità e microcorsi. Gli argomenti del forum includono Kaggle stesso, come iniziare, feedback, domande e risposte, set di dati e microcorsi. I microcorsi coprono competenze rilevanti per i data scientist in poche ore ciascuno: Python, apprendimento automatico, visualizzazione dei dati, Panda, ingegneria delle funzionalità, apprendimento profondo, SQL, analisi geospaziale e così via.

Tutto sommato, Kaggle è molto utile per l'apprendimento della scienza dei dati e per competere con gli altri sulle sfide della scienza dei dati. È anche molto utile come repository per set di dati pubblici standard. Tuttavia, non è un sostituto per i servizi di data science su cloud a pagamento o per eseguire le proprie analisi.