Migliora le competenze della tua organizzazione in ML/IA con Kaggle

1. Introduzione

47566e1490c16443.png

Ultimo aggiornamento: 10/05/2024

Che cos'è Kaggle?

Kaggle è la più grande community di AI e ML, la piattaforma definitiva per gli appassionati di data science e machine learning di tutti i livelli per salire di livello con le tecniche e le tecnologie più recenti. Scopri un vasto repository di set di dati, notebook e modelli pre-addestrati per dare il via al tuo prossimo progetto. Partecipa a concorsi, segui corsi e entra in contatto con una community diversificata di oltre 18 milioni di utenti in tutto il mondo. Che tu sia un principiante o un professionista esperto, Kaggle è il posto ideale per affinare le tue competenze, rimanere al passo con i tempi e collaborare a progetti all'avanguardia.

Cosa creerai

In questo codelab creerai, configurerai e lancerai un concorso Kaggle. Esplorerai l'esperienza dei concorrenti e comprenderai le best practice per organizzare un concorso coinvolgente.

Cosa imparerai a fare

  • Comprendere come creare e gestire un concorso Kaggle dal punto di vista dell'host
  • Esplorare l'esperienza dei concorrenti, dall'esplorazione all'invio
  • Imparare le best practice per organizzare un concorso coinvolgente

Questo codelab si concentra sulla creazione rapida di un concorso e sfrutta la crescente libreria di concorsi di Kaggle.

Che cosa ti serve

  • Un browser web recente
  • Conoscenze di base di Python

2. Preparazione

Creare un account Kaggle

Visita il sito web di Kaggle (https://www.kaggle.com/) e fai clic su "Registrati" per creare un account senza costi.

Verificare l'account

  1. Nell'angolo in alto a destra della pagina, fai clic sull'immagine del profilo
  2. Fai clic su "Il tuo profilo"
  3. Fai clic sul pulsante "Impostazioni" sul lato destro dei contenuti del profilo
  4. In "Verifica telefonica", segui le istruzioni per verificare il tuo account

3. Creare il primo concorso

Presentazione dei modelli di concorso generati dall'AI

I concorsi generati dall'AI sono una nuova funzionalità di Kaggle che consente agli utenti di creare concorsi di machine learning in modo rapido e semplice. Sfrutta l'AI per generare set di dati sintetici che imitano le proprietà statistiche dei set di dati esistenti senza contenere informazioni che consentono l'identificazione personale.

Ecco come funziona:

  1. Scegli un modello: seleziona un modello da un elenco in base a diverse attività di machine learning (ad es. classificazione, regressione).
  2. L'AI genera un set di dati: l'AI di Kaggle crea un nuovo set di dati per il tuo concorso in base al modello scelto. Questo set di dati è simile all'originale, ma utilizza un sottoinsieme di funzionalità e ha distribuzioni di funzionalità leggermente diverse.
  3. Personalizza il concorso: inserisci i dettagli di base, come il nome, la descrizione e la sequenza temporale del concorso. Puoi anche scegliere le impostazioni della privacy per il concorso.
  4. Lancia: dopo aver finalizzato i dettagli e impostato un lancio, puoi lanciare il concorso.

Questa funzionalità semplifica la procedura di creazione dei concorsi, rendendola accessibile a un maggior numero di utenti e consentendo loro di concentrarsi sugli aspetti di machine learning anziché sulla preparazione dei set di dati.

Creare un concorso

Vai all'indirizzo https://www.kaggle.com/competitions/new e seleziona "New AI Generated Competition" (Nuovo concorso generato dall'AI).

2629bf77a282a46c.png

Seleziona il concorso "Regression with a Crab Age Dataset" (Regressione con un set di dati sull'età dei granchi).

Dettagli della competizione

2dd2228b9d686a6e.png

Inserisci un nome e un sottotitolo descrittivi. Ad esempio, potresti utilizzare "Concorso di prova sui granchi di <Your Names>" come titolo e "Creazione del mio primo concorso per vedere come funziona" come sottotitolo. Tieni presente che l'URL del concorso viene compilato automaticamente in base al titolo.

Visibilità e accesso

Ora dobbiamo impostare la visibilità e l'accesso al concorso.

5c7dcae412ddd574.png

Visibilità

  • Pubblico: il tuo concorso è visibile a chiunque su Kaggle. Verrà visualizzato nei risultati di ricerca, quindi chiunque sia interessato potrà partecipare.
  • Privato: il tuo concorso è nascosto dalla visualizzazione pubblica. Non verrà visualizzato nelle ricerche e solo le persone che inviti specificamente potranno partecipare.

Chi può partecipare

  • Chiunque: è come una politica di porte aperte. Chiunque su Kaggle può partecipare al tuo concorso.
  • Solo le persone con un link: è più esclusivo. Genererai un link speciale e solo le persone che lo hanno potranno partecipare.
  • Mailing list con limitazioni: è l'opzione più controllata. Fornisci un elenco di indirizzi email o domini specifici (ad es. @yourschool.edu) e solo le persone con questi indirizzi potranno partecipare.

Parleremo più approfonditamente dell'impostazione Enable Notebooks and Models (Attiva notebook e modelli) più avanti. Per ora, assicurati che sia attivata. Per il nostro concorso di esempio, imposta queste impostazioni su Private (Privato) e Only people with the link (Solo le persone con il link).

Leggi e accetta i termini e fai clic su "Create Competition".

4. Comprendere e configurare il concorso

Dietro le quinte, abbiamo creato un concorso completamente nuovo con un set di dati unico. Diamo una rapida occhiata alle impostazioni del concorso.

Scheda Host

La scheda Host contiene tutto ciò di cui hai bisogno come host per configurare correttamente il concorso. In particolare, consulta l'elenco delle pagine a destra della pagina:

bcedd6768cc4f32c.png

Dettagli di base

Questa sezione comprende:

  • Generale
  • Privacy, accesso e risorse
  • Sequenza temporale
  • Punteggio e team

Abbiamo trattato le sezioni Generale e Privacy durante il lancio del concorso.

Sequenza temporale

La data di fine del concorso è sensibile al fuso orario.

7141f4aea90bccb0.png

Punteggio e team

La sezione Punteggio e team ti consente di controllare quante persone possono partecipare a un team, quante volte possono inviare ogni giorno e quante delle loro invii devono scegliere per la valutazione finale.

5efb6387612db941.png

Google Immagini

Le immagini ti consentono di personalizzare il banner e la miniatura del concorso. Ciò influirà sulla home page della competizione e sulla voce della scheda della competizione.

6dfd442376a1c702.png

Conduttori

Qui puoi aggiungere altri utenti Kaggle come host per il tuo concorso. Gli altri host avranno accesso completo (incluso il lancio) al tuo concorso.

8f8c90eb6baa7747.png

Metrica di valutazione

La scheda Metrica di valutazione è il cuore del concorso. Quando crei una competizione da zero, devi riflettere attentamente su quale metrica di valutazione (o punteggio) utilizzare, caricare il file della soluzione, definire la suddivisione dei test pubblici/privati e fornire un invio di esempio. Tuttavia, poiché abbiamo utilizzato un concorso generato, non dobbiamo fare nulla di tutto ciò.

Metrica di punteggio

Determina il punteggio di un invio rispetto al file della soluzione. Per ogni metrica sono disponibili la documentazione e il codice effettivo.

File della soluzione

Poiché utilizziamo un concorso generato, questo file è univoco per il tuo concorso.

89fa1f42d177505a.png

Il campionamento della soluzione ti consente di modificare la quantità del file della soluzione utilizzata per assegnare un punteggio agli invii durante il concorso (la classifica pubblica) rispetto al numero di righe utilizzate per determinare la classifica finale. Durante il concorso, gli utenti potranno selezionare (in base all'impostazione Invii privati con punteggio) quali dei loro invii utilizzare per la classifica finale (denominata qui Classifica privata).

Questa procedura garantisce che i concorrenti non vengano premiati per l'overfitting o l'invio di un numero eccessivo di invii.

Invii sandbox

Consentono agli host del concorso di assicurarsi che l'assegnazione dei punteggi funzioni come previsto e di impostare invii di "benchmark" per i concorrenti da confrontare. Questi invii di benchmark verranno visualizzati nella classifica.

Team e invii

Durante il concorso, gli host possono scaricare tutti i punteggi e gestire i team. Prima dell'inizio del concorso, questa sezione è vuota.

Launch Checklist

Questo aspetto verrà trattato nella prossima sezione.

5. Lanciare il concorso

50b03df072c02e6a.png

Nella parte superiore della pagina del concorso, fai clic sul pulsante "Launch Checklist" (Elenco di controllo del lancio).

Launch Checklist

L'elenco di controllo del lancio mostra i passaggi necessari da eseguire prima di lanciare un concorso. Poiché abbiamo già iniziato da un modello di concorso, la maggior parte di questi passaggi è già stata completata. Rimangono solo due attività: impostare una scadenza e aggiornare le regole del concorso.

938b9ed7bc4e0597.png

Impostare la scadenza

Innanzitutto, fai clic sulla freccia accanto a Imposta scadenza. I concorsi di solito durano almeno un paio di mesi. La durata massima di un concorso è di un anno.

Modificare le regole

Prima del lancio, è necessario aggiornare le regole del concorso dal modello predefinito. Se stai organizzando questo concorso per una classe o un gruppo, questo è un buon posto per inserire informazioni sulle aspettative.

Lancio

È tutto pronto per il lancio. Procedi e lancia il concorso. Ora i concorrenti possono partecipare.

6. Esperienza dei concorrenti

Ora che hai lanciato il concorso, diamo un'occhiata all'esperienza dei concorrenti. Tratteremo la partecipazione al concorso e l'invio di una candidatura. Per questo, puoi partecipare al concorso demo di Google I/O qui: https://www.kaggle.com/competitions/google-io-demo-competition

Partecipare al concorso

Dopo aver visitato la home page della competizione, fai clic sul pulsante "Join Competition" (Partecipa alla competizione) in alto a destra, quindi leggi e accetta le regole.

Effettuare il primo invio

Vai alla scheda del codice e fai clic su "New Notebook" (Nuovo notebook). Si aprirà un notebook che ti consentirà di inviare il concorso.

Per prima cosa, leggeremo i dati di addestramento e di test

# read the test and train data

train = pd.read_csv('/kaggle/input/google-io-demo-competition/train.csv')

test = pd.read_csv('/kaggle/input/google-io-demo-competition/test.csv')

Diamo un'occhiata ai dati.

# take a look at some of the data

train.head()

Prepariamo i dati per l'addestramento. In questo caso, eliminiamo il sesso perché non è un valore numerico. (Suggerimento: capire come includerlo dovrebbe migliorare il rendimento del modello).

 # drop out the results from the test data

data = train.drop(columns=[‘Age', ‘Sex'])

answers = train[‘Age']

Quindi creiamo un modello. In questo caso, stiamo utilizzando un modello di foresta casuale.

# imports for the model

from sklearn.model_selection import train_test_split

from sklearn.ensemble import RandomForestRegressor

from sklearn.metrics import mean_absolute_error

model = RandomForestRegressor()

​​# train the model

model.fit(data, answers)

Creare un invio:

predictions = model.predict(test.drop(columns=[‘Sex']))

submission = pd.DataFrame({‘id': test[‘id'], ‘Age': predictions})

submission.to_csv(‘submission.csv', index=False)

Poi puoi inviare alla competizione selezionando "Submit to Competition" (Invia alla competizione) nel menu laterale a destra.

1cf17449cae53abe.png

Suggerimenti per organizzare un concorso di successo

  1. Assicurati di includere un notebook di avvio che effettui un invio di base
  2. Incoraggia l'utilizzo delle discussioni e la condivisione dei notebook all'inizio del concorso
  3. Divertiti.