Fantasy-Ga ist ein Python-Modul und ein Befehlszeilen-Tool, das den genetischen Algorithmus verwendet, um die Generation von Fantasy-Sport-Aufstellungen zu automatisieren. Derzeit unterstützte Plattformen und Ligen sind wie folgt.
NBA | NFL | MLB | NHL | |
---|---|---|---|---|
DraftKings | ✅ | ✅ | ✅ | ✅ |
Abhängigkeiten: numpy
Pip installieren Sie Fantasy-Ga
LineupGenerator
-Klasse unterstützt CSV -Dateien, die für einen bestimmten Wettbewerb aus täglichen Fantasy -Sportplattformen exportiert wurden.
Aus Fantasy_ga importieren Sie LineupGeneratorfrom Fantasy_ga.configs Import Site, League, ModelConfig, ContestConFigData_Path = "Beispiele/DraftKings/NBA/dkSalaries.csv" export_path = "Beispiele/Drafts/nba/export.csv" cc = contestconfig (orts NBA) mc = modelConfig (# Initiale Population von zufälligen Lineeupsn_pop = 1000# Anzahl der Entwicklungen zur Iserdieren von Züchtung und Mutation FÜRN_GEN = 16# Anzahl der Kinderaufsätze zur Auswahl aus zwei besten Lineupsn_Breed = 30# Anzahl der zufälligen Mutationen für jede Evolutionn_Mutate = 30################ 30# Anzahl der zusammengesetzten Entwicklungen mit zusätzlichen zufälligen Lineeupsn_compound = 5) model = lineUpGenerator (CC, MC) modell.read_csv (data_path) model.fit ()# Wenn TOP_N nicht angegeben ist Sortiert nach ScoreModel.export_csv (export_path, top_n = 3) Aufstellungen, Scores = model.get_top_n_lineups (1) print (f "" "[Beste Lineup] Spieler: {[model.id_to_name [id] für id in lineups [0]] } Gehalt Gesamt: {sum ([model.id_to_Salary [ID] für ID in Aufstellungen [0]])} Erwartete FPTs: {Scores [0]} "")
numpy.array
für Spielerdaten Alternativ können Sie ein numpy.array
bereitstellen, bei dem die ersten drei Spalten der Spieler -ID, Gehalt, Fantasy -Punkte (FPTs) entsprechen, gefolgt von Positionsinformationen. Zum Beispiel entsprechen die Spalten id,salary,fpts,PG,SG,SF,PF,C,G,F,UTIL
für DraftKings Fantasy -Basketball.
Wenn Sie ein benutzerdefiniertes Numpy -Array für Datenmatrix anstelle von CSV -Dateien verwenden möchten, können Sie dies mit der Methode set_matrix()
verwenden. Zum Beispiel
cc = contestConfig (Site.dk, League.nba) MC = modelConfig () # Verwenden Sie defaultm = np.Array ( [ [0, 6600, 36.46503, 0, 0, 0, 1, 1, 0, 1, 1], [1, 4200, 26.760368, 0, 0, 1, 1, 0, 0, 1, 1], [2, 3000, 4,38538, 1, 1, 0, 0, 0, 1, 0, 1]. [3, 5000, 27.175564, 0, 0, 0, 0, 1, 0, 0, 1], [4, 3400, 16.734577, 0, 1, 1, 0, 0, 1, 1, 1], [5, 5900, 3.4382372, 0, 1, 1, 0, 0, 1, 1, 1]. [6, 3000, -0,18490964, 1, 1, 0, 0, 0, 1, 0, 1], [7, 3000, 11.075589, 0, 0, 1, 1, 0, 0, 1, 1]. [8, 3000, 6.469783, 0, 0, 0, 0, 1, 0, 0, 1], [9, 3000, 8.459954, 0, 0, 0, 0, 1, 0, 0, 1], [10, 5700, 33,98281, 0, 0, 0, 1, 1, 0, 1, 1], ] ) model = lineEpGenerator (CC, MC) Modell.set_matrix (M) model.fit ()
LineupGenerator
-Klasse verfügt über zwei Kernmethoden, die optimierte Aufstellungen zurückgeben. breed()
Methode wählt die besten zwei Aufstellungen gemäß der Summe der Fantasy -Punkte mit gültigen Positionen aus und wählt die Spieler zufällig aus (Schaffung von Kinderaufstellungen ). mutate()
methode, die die Spieler gegebenenfalls zufällig ausschüttet. fit()
-Methode um diese Methoden so, dass diese Vorgänge für mehrere Generationen mit zusätzlichen zufälligen Aufstellungen durchgeführt werden.
Als Python -Modul
$ python -m fantasy_ga --data_path=examples/DraftKings/NBA/DKSalaries.csv --export_path=examples/DraftKings/NBA/lineups.csv --site=DraftKings --league=NBA --n_pop=100 --n_gen=5 --n_breed=100 --n_mutate=100 --n_compound=10 --top_n_lineups=3
oder ein CLI -Befehl
$ fantasy-ga --data_path=examples/DraftKings/NBA/DKSalaries.csv --export_path=examples/DraftKings/NBA/lineups.csv --site=DraftKings --league=NBA --n_pop=100 --n_gen=5 --n_breed=100 --n_mutate=100 --n_compound=10 --top_n_lineups=3
was erzeugt
Saved top 3 lineups into "examples/DraftKings/NBA/lineups.csv". [Best Lineup] Players: ['Reggie Jackson', 'Max Strus', 'Anthony Edwards', "Royce O'Neale", 'Nikola Jokic', 'Dejounte Murray', 'John Collins', 'Jarrett Allen'] Salary Total: 50000 Expected FPTS: 268.13