fantasy ga
0.4.3
Fantasy-gaは、Pythonモジュールであり、遺伝的アルゴリズムを使用してファンタジースポーツラインナップの生成を自動化するコマンドラインツールです。現在サポートされているプラットフォームとリーグは次のとおりです。
NBA | NFL | MLB | NHL | |
---|---|---|---|---|
DraftKings | ✅ | ✅ | ✅ | ✅ |
依存関係: numpy
PIPインストールファンタジーガ
LineupGenerator
クラスは、特定のコンテストのために毎日のファンタジースポーツプラットフォームからエクスポートされたCSVファイルをサポートしています。
Fantasy_gaからfantasy_ganeratorator from fantasy_ga.configsインポートサイト、League、modelconfig、contestconfigdata_path = "Examples/draftkings/nba/dksalaries.csv" export_path = "examples/draftkings/nba/export.csv" = contestconfig(site.dk、League。 nba)mc = modelconfig(#ランダムラインナップの初期人口= 1000#反復繁殖と突然変異forn_gen = 16#2つの最高のlineupsn_breed = 30から選択する子供の数#16#evolutionn_mutate = 30#30#30のランダム変異の数追加のランダムなlineupsn_compound = 5)モデル= lineupgenerator(cc、mc)model.read_csv(data_path)model.fit()#sop_nが指定されていない場合、最大(500、合計ラインナップ数)ラインナップを節約します。 scoresmodel.export_csv(export_path、top_n = 3)ラインナップ、scores = model.get_top_lineups(1)print(f "" "[best lineup] players:{[model.id_to_name [id] for id in lineup [0]] }給与合計:{sum([model.id_to_salary [id] for in in linups [0]])}予想fpts:{scores [0]} "" ")
numpy.array
を使用しますまたは、最初の3列がプレーヤーID、給与、ファンタジーポイント(FPTS)に対応し、その後に位置情報が続くnumpy.array
を提供できます。たとえば、列はid,salary,fpts,PG,SG,SF,PF,C,G,F,UTIL
に対応しています。
CSVファイルの代わりにデータマトリックスにカスタムNumpy配列を使用する場合は、 set_matrix()
メソッドを使用してそうすることができます。例えば
cc = contestconfig(site.dk、league.nba)mc = modelconfig()#defaultm = np.array( [ [0、6600、36.46503、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、1、0、0、1]、 [10、5700、33.98281、0、0、0、1、1、0、1、1]、 ] )モデル= lineupgenerator(cc、mc)model.set_matrix(m)model.fit()
LineupGenerator
クラスには、最適化されたラインナップを返す2つのコアメソッドがあります。 breed()
Methodは、有効なポジションを持つファンタジーポイントの合計に従って最高の2つのラインナップを選択し、プレーヤーをランダムに交換します(子供のラインナップを作成します)。 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