fantasy ga
0.4.3
Fantasy-GA是一個Python模塊,也是一種使用遺傳算法來自動化幻想運動陣容的命令行工具。目前支持的平台和聯賽如下。
NBA | NFL | MLB | NHL | |
---|---|---|---|---|
草稿 | ✅ | ✅ | ✅ | ✅ |
依賴項: numpy
PIP安裝幻想GA
LineupGenerator
級別的類支持從每日幻想體育平台導出的CSV文件,以進行給定的比賽。
from fantasy_ga import LineupGeneratorfrom fantasy_ga.configs import Site, League, ModelConfig, ContestConfigdata_path = "examples/DraftKings/NBA/DKSalaries.csv"export_path = "examples/DraftKings/NBA/export.csv"cc = ContestConfig(Site.DK, League. NBA)MC = ModelConfig(#隨機陣容的初始種群= 1000#迭代育種和突變的演變數量的數量forn_gen = 16#兒童陣容數量可從兩個最佳陣容中選擇每個Evolutionn_mutate = 30#30#30#的最佳陣容= 30#帶有其他隨機陣容的複合演變數量= 5)型號= lineupgenerator(cc,mc)model.read_csv(data_path)mode.fit(data_path)node.fit()#如果未指定top_n,它將節省max(500,總陣容)陣容由scoresmodel.export_csv(export_path,top_n = 3)陣容,scores = model.get_top_n_n_lineups(1)print(f““” [“最佳陣容)播放器:{[model .iD.id_to_to_name [id scors in IN陣容[0]] [0]] }薪金總計:{sum([sum.id_to_to_salary [id] for eneSups [0]])}}預期fpts:{scores [0]} “”“”)
numpy.array
用於玩家數據另外,您可以提供一個numpy.array
,其中前3列對應於玩家ID,工資,幻想點(FPT),然後是位置信息。例如,這些列對應於id,salary,fpts,PG,SG,SF,PF,C,G,F,UTIL
。
如果您想將自定義的numpy數組用於數據矩陣而不是CSV文件,則可以使用set_matrix()
方法這樣做。例如
cc = vontyconfig(site.dk,legue.nba)mc = modelconfig()#use defaultm = np.array( [ [0,6600,36.46503,0,0,0,1,1,0,0,1,1], [1,4200,26.760368,0,0,1,1,0,0,0,1,1], [2,3000,4.38538,1,1,0,0,0,0,1,0,1], [3,5000,27.175564,0,0,0,0,0,1,0,0,0,1], [4,3400,16.734577,0,1,1,0,0,0,1,1,1], [5,5900,3.4382372,0,1,1,0,0,0,1,1,1], [6,3000,-0.18490964,1,1,0,0,0,0,1,0,1], [7,3000,11.075589,0,0,1,1,0,0,0,1,1], [8,3000,6.469783,0,0,0,0,1,0,0,0,1], [9,3000,8.459954,0,0,0,0,1,0,0,0,1], [10,5700,33.98281,0,0,0,1,1,1,0,1,1], 這是給出的 )model = lineupgenerator(CC,MC)model.set_matrix(M)Model.fit()
LineupGenerator
類有兩種核心方法,它們返回優化的陣容。 breed()
方法根據具有有效位置的幻想點和隨機交換玩家(創建兒童陣容)選擇最佳的兩個陣容。 mutate()
方法在適用的情況下隨機交換玩家。 fit()
方法圍繞這些方法包裹,以便使用其他隨機陣容多代進行這些操作。
作為Python模塊
$ 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
或CLI命令
$ 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
生成
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