Hide

Sprid vidare: försening!

Languages en sv
Not: du får skicka in som mest 8 gånger på detta problem. Detta beror på att det inte finns en publik/privat indelning av testdatan.

Zimmer simmaren har ett utmattande jobb: han arbetar som en förseningsvidarespridare. Det betyder att han måste simma mellan alla städer i Tyskland för att hålla dem informerade om potentiella förseningar i det nationella tågnätet. Även om Zimmer i allmänhet tycker om att simma har denna uppgift gått helt över styr de senaste åren, och Zimmer har tvingats leverera nyheter om förseningar mer effektivt än jultomten levererar presenter (trots att han - till skillnad från Herr Claus - inte har en magisk släde!!). Antalet förseningar har ökat under de senaste åren och Zimmer börjar nu ge upp arbetet som han en gång älskade. Tyvärr har Zimmer därför missat att märka ett par ($3\, 500\, 000$) förseningar under det senaste ett och ett halvt året. Zimmer vill att du skriver en AI-modell som, givet tågstationen och den planerade ankomsttiden för tåget till stationen, gissar tågets försening. För att hjälpa dig har han gett dig all annan data inklusive förseningarna för de som han inte missade att märka.
Det är inte säkert att dessa tåg faktiskt är försenade, de kan också vara tidiga!

Input

Attachments innehåller följande filer:

  • data.zip är en zip-fil som innehåller följande filer:

    • train.csv - träningsdatapunkter, med information om tågstation, tidpunkt när tåget skulle ha anlänt och hur stor den givna förseningen blev (i minuter).

    • test.csv - testdata, med information om endast tågstation och tidpunkt när tåget skulle ha anlänt.

    • license.txt - en licens vi måste ge för att få använda datan.

  • baseline.ipynb - En enkel grundlösning på problemet. Den lägger till sin egen källkod i slutet av inlämningen.

  • print_source_code.py - Ett hjälpskript för att skriva ut din källkod som en kommentar, användbart för att inkludera din lösning i inlämningsfilen. Fungerar inte i en Jupyter Notebook.

Output

För varje tåginformation (tågstation, tid) i test.csv, skriv ut en rad som innehåller ett enda heltal: den gissade förseningen för det tåget.

Scoring

Din lösning kommer att utvärderas baserat på hur exakt du gissade förseningarna jämfört med de faktiska.

Poängberäkningen görs enligt följande:

  • För varje tåg är ditt fel kvadraten på skillnaden mellan din gissning och den verkliga förseningen.

  • Mer exakt, anta att $x$ är din gissning och att $y$ är den verkliga förseningen. Ditt fel för det tåget är $(x-y)^2$.

  • Ditt övergripande fel $S$ är medelvärdet av alla individuella fel: det totala felet dividerat med antalet tåg.

Dina slutliga poäng bestäms genom att jämföra ditt fel $S$ med ett bas-fel (OBS: detta är INTE felet som baseline-lösningen får) och ett bästa fel:

  • Bas-fel: $90$

  • Bästa fel: $80$

Poängen beräknas med formeln:

\[ \text{Poäng} = 100 \cdot \max \left(0,\; \min \left(1,\; \frac{90 - S}{90 - 80} \right)\right) \]

Det innebär:

  • Om ditt fel $S$ är $\ge 90$ får du 0 poäng.

  • Om ditt fel $S$ är $\le 80$ får du 100 poäng.

  • Annars får du en poäng mellan 0 och 100 proportionell mot din förbättring jämfört med bas-felet.

Testning

Under tävlingen poängsätts din lösning på all testdata. Din poäng under tävlingen är densamma som din slutliga poäng.

Please log in to submit a solution to this problem

Log in