GalacticWars winner prediction
Autor: Carina Brebenaru
GalacticWars winner prediction
Context
In universul indepartat Galactic Wars sunt in permanenta in conflict doua armate la fel de puternice: Jedai si Imperialii ( Calmtroopers ).
Unul dintre cei mai puternici Jedai, Anaklyn Groundwalker, este prins intr-o misiune cu numeroase lupte din care de aceasta data nu este sigur ca va scapa. Palme, prietena lui, iti cere ajutorul si isi doreste sa prezica daca Anaklyn va fi victorios pe baza diferitor factori ale bataliilor, cum ar fi armele, armura, forta, dar si starea morala (increderea in sine).
Spre norocul tau, unui Calmtrooper (din tabara Imperialilor) i-a scapat un set cu echipamentul lui si poti construi un model care poate sa prezica victoria lui Anaklyn.
Ai gasit doua fisiere:
train.csv- date despre lupte precedente, ce contin castigatorultest.csv- date despre viitoare batalii, fara cunoasterea invingatorului
Setul de date
| Nume | Type | Descriere |
|---|---|---|
| FightID | int | ID unic al luptei |
| weapon_jedai | object | Arma Jedai |
| armour_jedai | object | Protectia armurii Jedai (%) |
| weapon_calmtrooper | object | Arma Calmtrooper |
| armour_calmtrooper | object | Protectia armurii Calmtrooper (%) |
| injuries | object | Luptator ranit |
| number_of_fights | float | Numarul de lupte purtate |
| force_level | float | Forta oponentului |
| accuracy_calmtrooper | float | Acuratetea tragerilor Calmtrooper-ului |
| fight_planet | object | Planeta pe care se lupta |
| weather_conditions | object | Conditiile vremii |
| surprise_attack | bool | Atacuri surpriza |
| moral_jedai | float | Starea morala Jedai |
| moral_calmtrooper | float | Starea morala Calmtrooper |
| winner | int | Castigatorul luptei |
Cerinte
Palme, cunoscuta drept pretentioasa ( si fiindca te-a observat priceput ), iti solicita sa rezolvi 4 task-uri.
Subtask-urile 1,2 implica analiza si prelucrarea seturilor de date.
Subtask-urile 3,4 evalueaza performanta modelului de atribuire a label-urilor, respectiv al celui de clasificare.
Subtask 1 - Echiparea adecvata pentru Nabira ( 5 puncte )
Pentru a se echipa bine de lupta, Anaklyn are nevoie sa stie cum sa se imbrace.
Calculeaza cate lupte din test.csv au loc pe planete de tip "Nabira" si conditiile vremii (weather_conditions) sunt de tip ninsoare Snow.
Subtask 2 - Inlocuirea armelor capcana ( 5 puncte )
Ai descoperit despre CalmTrooper ca ti a intins o capcana si ca ei, de fapt, nu mai folosesc armele pe care le cunostea Anaklyn:
Inlocuieste in setul de date train.csv toate aparitiile armelor Experimental Weapon cu Double Blaster si afiseaza cate valori a trebuit sa inlocuiesti.
( Pentru urmatoarele subtask-uri, in test.csv deja a fost efectuata aceasta inlocuire )
Subtask 3 - Incadrarea stilurilor de lupta ( 20 puncte )
Analizand luptele anterioare, Anaklyn a observat ca acestea pot fi incadrate in 3 stiluri de lupta (0,1,2), folosindu-se de abilitatile Jedai si ale oponentului ( forta, moral, armura, experienta,etc ).
Pentru fiecare lupta din test.csv, sa se determine stilul de lupta corespunzator.
Metrica de evaluare
Pentru evaluarea incadrarii luptelor se foloseste Adjusted Rand Index (ARI), care masoara similaritatea intre cele doua impartiri, ajustand pentru potrivirea aleatorie.
Coeficientul ARI pentru doua impartiri este definit ca:
ARI = (RI - E[RI]) / (max(RI) - E[RI])
unde:
- RI reprezinta indicele Rand intre cele doua impartiri;
- E[RI] este valoarea asteptata a indicelui Rand pentru impartiri aleatorii.
Daca numarul obtinut este aproape de 1, inseamna ca impartirea in tipuri de lupte a fost facuta cu pricepere si limitele dintre caracteristicile luptelor au fost identificate corect. Viata lui Anaklyn depinde de cunoasterea acestor tipuri de batalii, de aceea ofera punctajul maxim pentru acest subtask doar daca valoarea obtinuta pentru metrica de evaluare este >= 0.95.
- ARI >= 0.95 -> 20 puncte
- ARI <= 0.50 -> 0 puncte
- Intervalul dintre ele va primi punctaj partial, proportional
Subtask 4 - Predictia castigatorului fiecarei lupte ( 70 puncte )
Avand la dispozitie setul de date care descrie luptele individuale intre Jedai si Calmtrooper, sa se construiasca un model de clasificare care sa prezica rezultatul luptei pentru fiecare rand din test.csv.
Variabila tinta este: winner ( 0 - castiga Calmtrooperul / 1 - castiga Jedai).
Evaluarea se face folosind scorul F1 macro.
Scorul F1 macro se calculeaza astfel:
- Se calculeaza F1-score separat pentru fiecare clasa ( 0 si 1 )
- Se face media aritmetica a celor doua valori
Aceasta metrica trateaza ambele clase in mod egal si penalizeaza modele care prezic corect doar clasa majoritara.
Praguri de evaluare:
- F1 macro >= 0.95 -> 70 puncte
- F1 macro <= 0.80 -> 0 puncte
- Valorile intermediare primesc punctaj proportional
Submission Format
Submisia finala trebuie sa fie un fisier CSV numit submission.csv care sa contina exact 3 coloane:
subtaskID- numarul subtask-ului (1,2,3,4)datapointID- ID-ul fiecarei lupteanswer- raspunsul potrivit pentru respectivul subtask si datapointID
Nota: Pentru Subtask 1 si 2, ce necesita un singur raspuns, se va afisa o singura linie pentru fiecare subtask, avand datapointID egal cu 1, respectiv 2.