Problem #184
Författare:Carina Brebenaru
Svårighetsgrad
Din bästa poäng
Ej tillgänglig
I det avlägsna Galactic Wars-universumet befinner sig två lika starka arméer i ständig konflikt: Jedai och Imperialerna (Calmtroopers).
En av de mäktigaste Jedai-riddarna, Anaklyn Groundwalker, är fast i ett uppdrag med många strider som han denna gång inte är säker på att han kommer att överleva. Palme, hans vän, ber om din hjälp och vill förutsäga om Anaklyn kommer att segra baserat på olika faktorer i striderna, såsom vapen, rustning, styrka, men även det moraliska tillståndet (självförtroende).
Till din lycka har en Calmtrooper (från Imperialernas sida) tappat en uppsättning av sin utrustning, och du kan bygga en modell som kan förutsäga Anaklyns seger.
Du har hittat två filer:
train.csv - data om tidigare strider, som innehåller vinnarentest.csv - data om framtida strider, utan kännedom om vinnaren| Namn | Typ | Beskrivning |
|---|---|---|
| FightID | int | Unikt ID för striden |
| weapon_jedai | object | Jedai-vapen |
| armour_jedai | object | Jedai-rustningsskydd (%) |
| weapon_calmtrooper | object | Calmtrooper-vapen |
| armour_calmtrooper | object | Calmtrooper-rustningsskydd (%) |
| injuries | object | Skadad kämpe |
| number_of_fights | float | Antal utkämpade strider |
| force_level | float | Motståndarens styrka |
| accuracy_calmtrooper | float | Calmtrooperns träffsäkerhet |
| fight_planet | object | Planet där striden sker |
| weather_conditions | object | Väderförhållanden |
| surprise_attack | bool | Överraskningsattacker |
| moral_jedai | float | Jedai moraliskt tillstånd |
| moral_calmtrooper | float | Calmtrooper moraliskt tillstånd |
| winner | int | Vinnare av striden |
Palme, som är känd för att vara kräsen (och eftersom hon har märkt att du är skicklig), ber dig att lösa 4 uppgifter.
Subtask 1 och 2 innebär analys och bearbetning av dataseten.
Subtask 3 och 4 utvärderar prestandan för modellen för etikettilldelning respektive klassificering.
För att utrusta sig väl för strid behöver Anaklyn veta hur han ska klä sig.
Beräkna hur många strider i test.csv som äger rum på planeter av typen "Nabira" och där väderförhållandena (weather_conditions) är av typen snö Snow.
Du har upptäckt att Calmtroopers har lagt ut en fälla för dig och att de i själva verket inte längre använder de vapen som Anaklyn kände till:
Ersätt alla förekomster av vapnet Experimental Weapon med Double Blaster i datasetet train.csv och visa hur många värden du var tvungen att ersätta.
(För följande subtasks har denna ersättning redan gjorts i test.csv)
Genom att analysera tidigare strider har Anaklyn märkt att dessa kan delas in i 3 stridsstilar (0, 1, 2) med hjälp av Jedai-riddarens och motståndarens färdigheter (styrka, moral, rustning, erfarenhet, etc.).
Bestäm motsvarande stridsstil för varje strid i test.csv.
Utvärderingsmått
För att utvärdera klassificeringen av striderna används Adjusted Rand Index (ARI), som mäter likheten mellan de två uppdelningarna, justerat för slumpmässig matchning.
ARI-koefficienten för två uppdelningar definieras som:
ARI = (RI - E[RI]) / (max(RI) - E[RI])
där:
Om det erhållna talet är nära 1 betyder det att uppdelningen i stridstyper har gjorts skickligt och att gränserna mellan stridernas egenskaper har identifierats korrekt. Anaklyns liv beror på kunskapen om dessa stridstyper, därför ges maximal poäng för denna subtask endast om det erhållna värdet för utvärderingsmåttet är >= 0.95.
Bygg en klassificeringsmodell som förutsäger resultatet av striden för varje rad i test.csv med hjälp av datasetet som beskriver de enskilda striderna mellan Jedai och Calmtrooper.
Målvariabeln är: winner (0 - Calmtrooper vinner / 1 - Jedai vinner).
Utvärderingen görs med F1-makropoäng.
F1-makropoäng beräknas enligt följande:
Detta mått behandlar båda klasserna lika och straffar modeller som endast förutsäger majoritetsklassen korrekt.
Tröskelvärden för utvärdering:
Den slutliga inlämningen måste vara en CSV-fil med namnet submission.csv som innehåller exakt 3 kolumner:
subtaskID - numret på deluppgiften (1, 2, 3, 4)datapointID - ID för varje stridanswer - lämpligt svar för respektive subtask och datapointIDObs: För Subtask 1 och 2, som kräver ett enda svar, ska en enda rad visas för varje subtask, med datapointID lika med 1 respektive 2.