Misiunea Juditis - 11/12
Author: Catalin Chiru
Context
În urma unui fenomen cosmic denumit Convergența Haosului, personaje din mai multe universuri de benzi desenate au fost reunite într-o singură realitate. Agenția Interdimensională de Monitorizare a Eroilor (AIME) a centralizat date despre acești eroi pentru a putea analiza rapid profilurile lor și pentru a lua decizii automate.
Datele înregistrate descriu atât caracteristici generale ale personajelor, cât și abilități și statistici numerice asociate acestora. Analiza acestor date este importantă pentru:
- extragerea rapidă a unor statistici descriptive despre dataset;
- reconstruirea unor informații lipsă pentru personaje noi;
- clasificarea unor abilități pe baza celorlalte trăsături disponibile.
Pentru rezolvarea problemei veți avea la dispoziție două fișiere:
train.csv– conține exemple etichetate, folosite pentru analiză și antrenarea modelelor;test.csv– conține aceleași variabile, dar nu include coloanelepowerstats__combatșiSuper Strength, care trebuie prezise în Task 3 și Task 4.
Universurile eroilor
În setul de date apar personaje provenite din mai multe universuri editoriale, de exemplu:
- Marvel Comics
- DC Comics
- Dark Horse Comics
- Image Comics
- Shueisha
- George Lucas
- Microsoft
- J. K. Rowling
În această problemă, noțiunea de "univers" corespunde valorii din coloana Publisher.
Descrierea setului de date
Fiecare linie din fișierele train.csv și test.csv corespunde unui personaj.
Setul de date conține:
- un identificator unic:
id; - variabile descriptive despre personaj;
- variabile binare care indică prezența sau absența unor abilități;
- variabile numerice continue de tip
powerstats__...; - coloane suplimentare cu informații despre eroi.
Exemple de coloane:
| Column | DType | Descriere |
|---|---|---|
| id | int | Identificator unic al personajului |
| name | object | Numele personajului |
| Publisher | object | Publisher / univers editorial |
| Gender | object | Genul personajului |
| Race | object | Specia / rasa |
| Eye color | object | Culoarea ochilor |
| Hair color | object | Culoarea părului |
| Height | float | Înălțimea personajului |
| Weight | float | Greutatea personajului |
| Alignment | object | Aliniament: good, bad, neutral sau - |
| powerstats__intelligence | float | Nivelul de inteligență |
| powerstats__strength | float | Nivelul de forță |
| powerstats__speed | float | Nivelul de viteză |
| powerstats__durability | float | Nivelul de rezistență |
| powerstats__power | float | Nivelul general de putere |
| powerstats__combat | float | Nivelul de luptă (doar în train.csv) |
| Super Strength | int | Abilitate binară: super-forță (doar în train.csv) |
| Agility | int | Abilitate binară: agilitate |
| Flight | int | Abilitate binară: zbor |
Cerințe
Task 1 - Numărul universurilor distincte (10 puncte)
Folosind datele din fișierul train.csv, determinați câte valori distincte apar în coloana Publisher.
Task 2 - Publisher-ul cu cei mai mulți eroi pozitivi (10 puncte)
Folosind datele din fișierul train.csv, considerați doar personajele pentru care Alignment = good.
Determinați care este publisher-ul care conține cei mai mulți eroi pozitivi.
În caz de egalitate, se alege publisher-ul care este primul în ordine alfabetică.
Task 3 - Predicția lui powerstats__combat (40 puncte)
Pe baza datelor din fișierul train.csv, antrenați un model capabil să prezică valorile atributului powerstats__combat pentru fiecare personaj din test.csv.
Task 4 - Predicția abilității Super Strength (40 puncte)
Pe baza datelor din fișierul train.csv, antrenați un model capabil să prezică valorile atributului Super Strength, pentru fiecare personaj din test.csv.
Valorile permise sunt (predicțiile trebuie să fie etichete binare finale, nu probabilități):
0.0
1.0
Formatul fișierului de submisie
Fișierul de submisie trebuie să fie în format csv și să conțină următoarele coloane:
| Column | Descriere |
|---|---|
| id | Identificatorul entității evaluate |
| subtaskID | Identificatorul task-ului pentru care se trimite răspunsul |
| answer | Valoarea calculată sau prezisă |
Valorile posibile pentru subtaskID sunt:
| subtaskID | Task |
|---|---|
| task1 | Numărul universurilor distincte |
| task2 | Publisher-ul cu cei mai mulți eroi pozitivi |
| task3 | Predicția lui powerstats__combat |
| task4 | Predicția abilității Super Strength |
Pentru Task 1 și Task 2, răspunsul este global și se transmite folosind valoarea specială GLOBAL în coloana id.
Exemplu de fișier submission.csv
id,subtaskID,answer
GLOBAL,task1,1
GLOBAL,task2,Cartoon Network
43,task3,2.57
50,task3,5.17
1,task4,0.0
4,task4,1.0
Evaluare
Punctajul total este de 100 de puncte.
Task 1 (10 puncte)
Evaluarea se face prin comparație exactă între valoarea trimisă și răspunsul corect.
Task 2 (10 puncte)
Evaluarea se face prin comparație exactă între valoarea trimisă și răspunsul corect.
Task 3 (40 puncte)
Pentru Task 3 se utilizează metrica MAE (Mean Absolute Error).
Punctajul se acordă astfel:
- dacă
MAE ≤ 12.0, se acordă 40 puncte; - dacă
MAE ≥ 30.0, se acordă 0 puncte; - pentru valori intermediare, punctajul se interpolează liniar.
Formula utilizată este:
score_task3 = 40 × (30 - MAE) / (30 - 12), pentru 12 < MAE < 30
Task 4 (40 puncte)
Pentru Task 4 se utilizează metrica Accuracy.
Punctajul se acordă astfel:
- dacă
Accuracy ≥ 0.90, se acordă 40 puncte; - dacă
Accuracy ≤ 0.55, se acordă 0 puncte; - pentru valori intermediare, punctajul se interpolează liniar.
Formula utilizată este:
score_task4 = 40 × (Accuracy - 0.55) / (0.90 - 0.55), pentru 0.55 < Accuracy < 0.90