fantasy ga
0.4.3
Fantasy-Ga 는 유전자 알고리즘을 사용하여 판타지 스포츠 라인업의 생성을 자동화하는 Python 모듈 및 명령 줄 도구입니다. 현재 지원되는 플랫폼 및 리그는 다음과 같습니다.
NBA | NFL | MLB | NHL | |
---|---|---|---|---|
드래프트 킹 | ✅ | ✅ | ✅ | ✅ |
의존성 : numpy
PIP Fantasy-ga를 설치하십시오
LineupGenerator
클래스는 주어진 대회를 위해 Daily Fantasy Sports 플랫폼에서 내보낸 CSV 파일을 지원합니다.
Fantasy_GA에서 Fantasy_Ga.configs 가져 오기 사이트, 리그, ModelConfig, ConvastConfigData_Path = "예제/DraftKings/NBA/DKSALARIES.CSV"EXPORT_PATH = "예제/DRAFTKINGS/NBA/EXPORT.CSV"CANSTRONFIG (Site.DK, 리그. NBA) MC = ModelConfig (# 무작위 라인업의 초기 모집단# 1000# 반복적 인 번식 및 돌연변이에 대한 진화 수에 대한 숫자 forn_gen = 16# 2 개의 최고의 라인업에서 선택할 어린이 라인업 수 = 30# 각 Evolutionn_mutate = 30#에 대한 무작위 돌연변이 수 추가 임의의 라인업을 갖는 복합 진화 수 = 5) Model = LineupGenerator (CC, MC) Model.Read_CSV (Data_Path) Model.fit ()# TOP_N이 지정되지 않은 경우 최대 (500, 총 라인업 수) 라인업을 절약합니다. scoresmodel.export_csv (Export_path, top_n = 3) 라인업, scores = model.get_top_n_lineups (1) print (f "" "[최고의 라인업] 플레이어 : {[model.id_to_name [id] 라인업 [0]] } 급여 총 : {sum ([model.id_to_salary [id] 라인업의 ID]} 예상 FPTS : {scores [0]} "" ")
numpy.array
사용 또는 처음 3 개의 열이 플레이어 ID, 급여, 판타지 포인트 (FPT)에 해당하는 numpy.array
를 제공 할 수 있습니다. 예를 들어, 열은 id,salary,fpts,PG,SG,SF,PF,C,G,F,UTIL
for DraftKings 판타지 농구에 해당합니다.
CSV 파일 대신 Data Matrix에 사용자 정의 Numpy 배열을 사용하려면 set_matrix()
메소드를 사용하여 수행 할 수 있습니다. 예를 들어
cc = contestconfig (site.dk, league.nba) mc = modelconfig () # 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 = LineupGenerator (CC, MC) Model.set_matrix (M) Model.fit ()
LineupGenerator
클래스에는 최적화 된 라인업을 반환하는 두 가지 핵심 방법이 있습니다. breed()
메소드는 유효한 위치를 가진 판타지 포인트의 합계에 따라 최상의 2 라인업을 선택하고 플레이어를 무작위로 스왑합니다 ( 어린이 라인업 생성). mutate()
메소드는 해당되는 경우 플레이어를 무작위로 교환합니다. fit()
메소드는 해당 작업이 추가 임의의 라인업으로 여러 세대 동안 수행되도록 해당 방법을 감싸고 있습니다.
파이썬 모듈로
$ 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