Problem D
Vilse i Bergen
Languages
en
sv
Alexander har fått ett nytt intresse för botanik, och sedan han fick reda på apträdets existens har han planerat en resa till Anderna för att se dem. Tyvärr drabbades han under sin vandring av en överraskande snöstorm. Nu är han vilse och vill få ett räddningsteam att hitta honom. Alexander har inte möjlighet att kommunicera till räddningsteamet var han befinner sig, men han skickade dem all data han hade innan radion slutade fungera. Den data han skickade inkluderar hans höjd över havet från höjdmätaren och riktningen på stigen från hans kompassavläsning.
Räddningsteamet planerar nu att landa en helikopter och söka efter Alexander i ett cirkulärt område runt landningsplatsen tills de hittar honom. Du har fått i uppdrag att hitta den bästa landningsplatsen för helikoptern. För att säkerställa kvaliteten på din landningsplats måste du bevisa din lösnings noggrannhet i många simulerade scenarier.
För den här uppgiften är träningsdata givet och det är inte tillåtet att hitta egen träningsdata på internet.
Indata
Ladda ner zip-filen med träningsdata och testdata. Denna hittas längst ned vid "attachments". Du kommer få en zip fil som innehåller:
-
train.csv - Simulerad data med kända positioner samt deras instrumentsavläsningar (höjd över havet och kompassriktning)
-
test.csv - Alexanders instrumentsavläsningar från en okänd position i det simulerade landskapet.
Filen train.csv innehåller 4 kolumner:
-
x - Öst-Väst-position i meter
-
y - Nord-Syd-position i meter
-
elevation - Alexanders höjdmätaravläsning i meter
-
direction - Alexanders kompassavläsning i grader
Filen test.csv innehåller 2 kolumner:
-
elevation - Alexanders höjdmätaravläsning i meter
-
direction - Alexanders kompassavläsning i grader
Utdata
För varje rad i test.csv, skriv ut en rad med två mellanslagsseparerade tal: de förutsagda x- och y-koordinaterna i meter där du tror att Alexander befinner sig.
Exempel
Indata (test.csv):
elevation,direction 143.0,34.0 23.0,285.0
Utdata:
1822.46 -26938.65 -8647.97 6567.14
Poängsättning
Din lösning utvärderas baserat på hur nära dina förutsägelser är Alexanders faktiska positioner. Poängen mäter det genomsnittliga sökområdet som räddningsteamet skulle behöva täcka.
För varje testfall beräknas felområdet med formeln:
\[ \text{Fel} = \pi \times ((x_{\text{förutsagda}} - x_{\text{faktiska}})^2 + (y_{\text{förutsagda}} - y_{\text{faktiska}})^2) \]Detta representerar arean av en cirkel med radie lika med avståndet mellan din förutsägelse och den faktiska positionen.
Din slutgiltiga poäng beräknas med hjälp av en baslinje och en referens för bästa fall, där $\text{baseline} = 1700000000$ och $\text{best} = 1000000000$, enligt följande:
\[ \text{Poäng} = \max \left(0, \min \left(100, \frac{\text{baseline} - \text{mean error}}{\text{baseline} - \text{best}} \times 100\right)\right) \]där:
-
mean error är medelvärdet av felen över alla testfall
-
baseline är felet från en naiv baslinjelösning
-
best är felet från en stark referenslösning
Lägre fel i förutsägelserna resulterar i högre poäng. En poäng på 0 betyder att din lösning presterar lika bra eller sämre än baslinjen, medan en poäng på 100 betyder att du har matchat eller överträffat referenslösningen.
Vid slutet av tävlingen testas alla lösningar om på resterande 70% av datan. Din poäng i slutet av tävlingen är alltså endast poängen på de resterande 70% av datan, de 30% som du testats på hittills har ingen påverkan. Det är garanterat att de 30% som testas under tävlingen har valts uniformt slumpmässigt och är helt disjunkta från de 70% som du testas på i slutet. Därmed borde resultaten på de 30% som du testas på under tävlingen ses som en stark indikator på hur bra din lösning är. Samtidigt är det dåligt överanpassa (overfitta) din lösning till testdatan.
