Vítej na Qminers Quant Hackathonu!
V tomto repozitáři najdeš vše potřebné k odladění tvého modelu, aby Tě odevzdávací systém ničím nepřekvapil.
Odevzdávací systém beží na webu hyperion.felk.cvut.cz.
problem_info.mdobsahuje detailní zadání úlohy včetně popisu dat, které doporučujeme důkladně pročíst než se pustíš do tvorby vlastního modelu.qqh-2024-env.ymlobsahuje stejné prostředí jaké používá odevzdávací systém.data/games.csvadata/players.csvobsahují trénovací data.src/environment.pyobsahuje evaluační smyčku, která běží v odevzdávacím systému.src/evaluate.pyskript pro spuštění lokáního vyhodnocení tvého modelu na trénovacích datech.src/model.pyobsahuje ukázkový model s metodouplace_bets.
Soubor qqh-2024-env.yml obsahuje balíčky, které budou dostupné při evaluaci. Vřele doporučujeme toto prostředí replikovat lokálně.
- Nainstaluj si nástroj miniconda: https://docs.anaconda.com/miniconda/
- Importuj environment:
conda env create -f qqh-2024-env.yml - Aktivuj enviroment:
conda activate qqh-2024
Pokud budeš mít problémy s importem environmentu pomocí uvedeného postupu (win/mac), zkus použít záložní příkaz
conda env create -f qqh-2024-env-barebone.yml. Ten bude trvat výrazně déle, ale měl by být univerzálnější. Pokud ani to nepomůže, můžeš si vytvořit vlastní prostředí a balíčky nainstalovat jednotlivě, podle toho zda je chceš používat.
conda create -n qqh-2024 python=3.12.4
conda activate qqh-2024
conda install -c conda-forge numpy pandas py-xgboost-cpu scikit-learn scipy statsmodels
conda install -c pytorch pytorch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 cpuonly
conda install pyg -c pygVývojová prostředí (IDE) často umí s conda environmenty pracovat (například PyCharm či VS Code).
Pro ověření funčnosti můžeš rovnou spustit evaluaci modelu, který sází náhodně: python src/evaluate.py
Třída, kterou budeš odevzdávat do odevzdávacího systému, se musí jmenovat Model a musí obsahovat implementaci metody place_bets(self, summary: pd.DataFrame, opps: pd.DataFrame, inc: tuple[pd.DataFrame, pd.DataFrame]). Ukázkový model náhodného sázkaře najdeš zde.
Bližší info najdeš v zadání.
Je zákázáno:
- Používat k ladění modelů jakákoliv jiná než námi dodaná data.
- Spolupracovat s jinými týmy.
- Manipulovat s odevzdávacím systémem.
- Jakkoliv dolovat data z odevzdávacího systému.
- Spouštět vlastní procesy, komunikovat přes síť a vytvářet soubory v odevzdávacím systému mimo složku
/tmp.
Porušení pravidel bude vést k vyloučení ze soutěže. Všechna odeslaná řešení se ukládají a mohou být zpětně přezkoumána.
Evaluace v odevzdávacím systému probíhá na skrytých (validačních) datech. Trénovací data obsahují zápasy a statistiky jednotlivých hráčů ze sezón 1975/76-1998/99. Validační data obsahují zápasy ze sezón 1999/00-2004/05. V první iteraci evaluační smyčky obdržíš jako inkrement všechna trénovací data.
V odevzdávacím systému budeš mít k dispozici pouze 1 cpu (1 vlákno) a 5 GB RAM. Současně může běžet pouze jedna evaluce tvého řešení.
Počet odevzdání je omezen, doporučujeme tedy kód pečlivě odladit na lokálním stroji.
V případě neúspěšného doběhnutí tvého programu se odevzdávací sytém pokouší napovědět příčinu pádu.
RTE= Runtime Error. Nejčastěji kód spadnul na vyjímku, jejíž jméno ti odevzdávací systém (po rozkliknutí testcasu) ukáže.MLE= Memory Limit Exceeded. Překročil jsi pamětový limit. (Může být rozpoznáno jako RTE)TLE= Time Limit Exceeded. Překročil jsi časový limit.