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