Fantasy-GA เป็นโมดูล Python และเครื่องมือบรรทัดคำสั่งที่ใช้อัลกอริทึมทางพันธุกรรมเพื่อสร้างรุ่นแฟนตาซีกีฬา แพลตฟอร์มและลีกที่รองรับในปัจจุบันมีดังนี้
เอ็นบีเอ | NFL | MLB | NHL | |
---|---|---|---|---|
การร่าง |
การพึ่งพา: numpy
PIP ติดตั้ง Fantasy-GA
คลาส LineupGenerator
รองรับไฟล์ CSV ที่ส่งออกจากแพลตฟอร์มกีฬาแฟนตาซีรายวันสำหรับการแข่งขันที่กำหนด
จาก Fantasy_ga นำเข้า lineUpgeneratorfrom fantasy_ga.configs ไซต์นำเข้า, ลีก, modelconfig, การแข่งขัน cotchconfigdata_path = "ตัวอย่าง/draftkings/nba/dksalaries.csv" export_path = "ตัวอย่าง/draftkings/nba/export.csv NBA) MC = ModelConfig (# ประชากรเริ่มต้นของผู้เล่นตัวจริงแบบสุ่ม = 1,000# จำนวนการวิวัฒนาการในการทำซ้ำการผสมพันธุ์และการกลายพันธุ์ forn_gen = 16# จำนวนผู้เล่นตัวจริงที่จะเลือกจากสอง lineupsn_breed = 30# จำนวนการกลายพันธุ์แบบสุ่มสำหรับแต่ละ evolutionn_mutate = 30# จำนวนการวิวัฒนาการสารประกอบที่มีการสุ่มเพิ่มเติม lineupsn_compound = 5) รุ่น = lineUpgenerator (cc, mc) model.read_csv (data_path) model.fit ()# ถ้าไม่ได้ระบุ top_n มันจะบันทึกสูงสุด (500 จำนวนผู้เล่นตัวจริงทั้งหมด) เรียงลำดับโดย scoresmodel.export_csv (export_path, top_n = 3) ผู้เล่นตัวจริง, คะแนน = model.get_top_n_lineups (1) พิมพ์ (f "" [ผู้เล่นตัวจริงที่ดีที่สุด] ผู้เล่น: {[model.id_to_name [id] สำหรับ id ใน lineups [0]]] } เงินเดือนรวม: {sum ([model.id_to_salary [id] สำหรับ id ใน lineups [0]])} fpts ที่คาดหวัง: {คะแนน [0]} "" ")
numpy.array
สำหรับข้อมูลผู้เล่นที่กำหนดเอง อีกทางเลือกหนึ่งคุณสามารถให้ numpy.array
ที่คอลัมน์ 3 แรกแรกสอดคล้องกับ ID ผู้เล่น, เงินเดือน, จุดแฟนตาซี (FPTs) ตามด้วยข้อมูลตำแหน่ง ตัวอย่างเช่นคอลัมน์สอดคล้องกับ id,salary,fpts,PG,SG,SF,PF,C,G,F,UTIL
สำหรับบาสเกตบอลแฟนตาซี
หากคุณต้องการใช้อาร์เรย์ NumPy ที่กำหนดเองสำหรับเมทริกซ์ข้อมูลแทนไฟล์ CSV คุณสามารถทำได้โดยใช้เมธอด 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, 0, 1, 1] [2, 3000, 4.38538, 1, 1, 0, 0, 0, 0, 1, 0, 1] [3, 5000, 27.175564, 0, 0, 0, 0, 1, 0, 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, 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, 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