Difficoltà
Il tuo miglior punteggio
N/D
In un centro di ricerca per sistemi autonomi vengono testati diversi tipi di robot. Per questi esperimenti sono stati utilizzati vari tipi di arene e ogni robot segue una determinata strategia di esplorazione. Durante ogni esperimento, il robot è equipaggiato con un set di sensori e sistemi di monitoraggio che raccolgono informazioni sulla sua attività. I dati registrati descrivono diversi aspetti del comportamento del robot e dell'ambiente in cui opera.
Questi possono includere valori numerici (ad esempio, velocità media, distanza percorsa, numero di collisioni o oggetti raccolti), ma anche informazioni categoriali o descrittive (come il tipo di arena o le condizioni ambientali). Attraverso l'analisi di questi dati si possono osservare pattern nel modo in cui i robot si muovono, esplorano lo spazio, raccolgono oggetti o reagiscono agli ostacoli.
L'analisi di questi dati è importante per:
Per risolvere questo problema avrete a disposizione due file:
train.csv – contiene esempi etichettati, utilizzati per l'analisi e l'addestramento dei modelli;test.csv – contiene le stesse variabili, senza la colonna strategy_label, ed è utilizzato per generare le predizioni.Negli esperimenti vengono utilizzati quattro tipi di strategie:

Ogni riga nei file train.csv e test.csv corrisponde a un esperimento.
Il set di dati contiene colonne che descrivono diversi aspetti del comportamento del robot. Esempi di tali caratteristiche sono:
| Column | Type | Descrizione |
|---|---|---|
| robot_id | string | Identificatore unico dell'esperimento |
| arena_type | string | Tipo di arena in cui si è svolto l'esperimento |
| weather | string | Condizioni ambientali dell'esperimento |
| difficulty | int | Livello di difficoltà dell'arena |
| laps | int | Numero di giri completati |
| avg_speed_mps | float | Velocità media del robot (m/s) |
| distance_m | float | Distanza totale percorsa |
| battery_used_pct | float | Percentuale di batteria consumata |
| collisions | int | Numero di collisioni con ostacoli |
| unique_cells | float | Numero di zone distinte esplorate |
| items_collected | int | Numero di oggetti raccolti |
| pause_count | int | Numero di pause o fermate |
| turn_rate | float | Frequenza dei cambi di direzione |
| scan_accuracy | float | Accuratezza delle scansioni effettuate |
| return_time_s | float | Tempo necessario per tornare al punto di partenza |
| efficiency_score | float | Punteggio aggregato dell'efficienza del robot |
| coverage_ratio | float | Proporzione dell'arena esplorata |
| scan_turn_sync | float | Sincronizzazione tra scansioni e cambi di direzione |
| pickup_efficiency | float | Efficienza nella raccolta degli oggetti |
| detour_index | float | Indice delle deviazioni dal percorso |
| safety_margin | float | Margine di sicurezza dagli ostacoli |
| patrol_consistency | float | Coerenza nel pattugliamento di una zona |
| speed_burst | float | Intensità delle accelerazioni rapide |
| risk_index | float | Indice di rischio dello spostamento |
| strategy_label | string | Strategia del robot (solo in train.csv) |
Utilizzando i dati nel file train.csv, determina quanti valori distinti compaiono nella colonna arena_type.
Utilizzando i dati nel file train.csv, determina il massimo dei valori nella colonna avg_speed_mps.
Sulla base dei dati nel file train.csv, determina qual è il tipo di arena che compare più frequentemente nella colonna arena_type.
Sulla base dei dati nel file train.csv, determina il valore massimo della colonna items_collected.
Costruisci un modello che determini la strategia del robot per ogni esperimento in test.csv.
I valori possibili sono:
explorercollectorguardiansprinterIl file di sottomissione deve essere in formato csv e contenere le seguenti colonne:
| Column | Descrizione |
|---|---|
| robot_id | Identificatore del robot da test.csv |
| subtaskID | ID del task per cui si invia la risposta |
| answer | Valore calcolato o previsto per il rispettivo task |
I valori possibili per subtaskID sono:
| subtaskID | Task |
|---|---|
| 1 | Numero di tipi di arene |
| 2 | Velocità massima osservata |
| 3 | Arena utilizzata più frequentemente |
| 4 | Massima performance di raccolta |
| 5 | Strategia del robot |
Per il Task 1 – Task 4, il risultato è un valore calcolato globalmente sulla base dei dati in train.csv.
Nel file di sottomissione, questo deve essere inviato una sola volta, utilizzando il valore speciale GLOBAL per robot_id.
Per il Task 5, deve essere riportata la strategia prevista per ogni robot in test.csv.
I valori possibili sono:
explorercollectorguardiansprintersubmission.csvrobot_id,subtaskID,answerGLOBAL,1,10GLOBAL,2,4.31GLOBAL,3,forestGLOBAL,4,7TR_1000,5,explorerTR_1001,5,guardianTR_1002,5,collectorIl punteggio totale è di 100 punti.
Per i primi quattro task, le risposte sono determinate esclusivamente sulla base dei dati in train.csv.
La valutazione viene effettuata tramite confronto esatto (uguaglianza) tra il valore inviato nel file di sottomissione e il valore corretto calcolato da train.csv.
Per questo task viene valutata la correttezza delle strategie previste per i robot in test.csv.
Si utilizza la metrica Macro-F1, che calcola il punteggio F1 per ogni classe e poi fa la media di questi valori.
Per una classe c:

Il punteggio finale Macro-F1 è la media dei punteggi F1 per tutte le classi:

dove K è il numero di classi. In questo problema, K = 4.
Il punteggio assegnato per il Task 5 è:
score = 50 x MacroF1 (se MacroF1 < 0.93)score = 50 (se MacroF1 >= 0.93)