paint-brush
Sử dụng Monte Carlo để giải thích tại sao bạn không thắng các trận bóng chày tưởng tượng hàng ngàytừ tác giả@courtneyperigo
1,677 lượt đọc
1,677 lượt đọc

Sử dụng Monte Carlo để giải thích tại sao bạn không thắng các trận bóng chày tưởng tượng hàng ngày

từ tác giả Courtney Perigo 2022/06/15
Read on Terminal Reader
Read this story w/o Javascript

dài quá đọc không nổi

Mùa hè này, tôi muốn kiểm tra kỹ năng nghiên cứu hoạt động của mình về một vấn đề đang làm tôi khó chịu. Trong các môn thể thao tưởng tượng, bạn chọn một đội hình gồm 8 người chơi ở vị trí và 2 người ném bóng; và lương của họ không thể vượt quá giới hạn lương của giải đấu. Mô phỏng sẽ sử dụng kết quả thực tế cho các cầu thủ bóng chày của các giải đấu lớn từ năm 2018 đến trước trận đấu mà chúng tôi đang mô phỏng. Nó có thể thực hiện một cuộc tìm kiếm mệt mỏi, được sửa đổi bằng cách tuyên truyền hạn chế mới, để tìm ra đội hình hoạt động tốt nhất.

Company Mentioned

Mention Thumbnail
featured image - Sử dụng Monte Carlo để giải thích tại sao bạn không thắng các trận bóng chày tưởng tượng hàng ngày
Courtney Perigo  HackerNoon profile picture

Không, bạn có thể sẽ không thắng trò chơi thể thao giả tưởng hàng ngày mà bạn muốn thử. Đây là lý do tại sao.


Mùa hè này, tôi muốn kiểm tra kỹ năng nghiên cứu hoạt động của mình về một vấn đề đang làm tôi khó chịu. Tại sao tôi chơi bóng chày tưởng tượng trực tuyến hàng ngày quá tệ?


Nếu bạn đang đọc điều này, bạn có thể biết tôi đang nói về điều gì. Tôi cho rằng bạn là kiểu người muốn thực hiện một nghiên cứu nhỏ và có thể tình cờ xem bài đăng trên blog khoa học dữ liệu này để tìm kiếm các mẹo về cách xây dựng nhóm của bạn.


Spoiler Alert: Tôi có tin xấu cho bạn.


Trong blog này, bạn sẽ tìm hiểu lý do tại sao các môn thể thao tưởng tượng trực tuyến lại khó. Bạn sẽ thấy rằng nền kinh tế được tạo ra bởi các nhà cung cấp trò chơi trực tuyến này là hiệu quả và bạn sẽ cần phải dành nhiều thời gian nếu muốn chơi hệ thống.

Bóng chày ảo trực tuyến là gì?

Nếu bạn không quen thuộc với bất cứ điều gì tôi đang nói thì đoạn này là dành cho bạn. Theo một trang web cờ bạc trực tuyến sẽ vô danh, cá cược thể thao ảo trực tuyến là một ngành công nghiệp trị giá 48 tỷ đô la. Trong các môn thể thao tưởng tượng, bạn chọn những người chơi đang chơi ngày hôm đó và xem liệu họ có thể kiếm tiền cho bạn bằng cách thể hiện tốt hay không. Trong phiên bản bóng chày, bạn chọn một đội hình gồm 8 cầu thủ vị trí và 2 cầu thủ ném bóng; và lương của họ không thể vượt quá giới hạn lương của giải đấu. Màn trình diễn của họ ngày hôm đó quyết định số điểm bạn ghi được. Bạn không phải làm bất cứ điều gì ngoài việc chọn ra những cầu thủ xuất sắc nhất ngày hôm đó.


Đơn giản, phải không?


Hình ảnh của tác giả: Bóng chày tưởng tượng (quy tắc cổ điển)

Tại sao tôi rất tệ khi chơi bóng chày ảo trực tuyến?

Hình ảnh của Tác giả. Logo bóng chày tưởng tượng của tôi.


Tham gia nhóm tưởng tượng của tôi, Chicago Red Line Hustlers. Có, tôi đã xây dựng một logo cho đội tin của mình. Nó là cái gì của bạn?


Chúng tôi không tốt như vậy. Tôi đã chơi được một tháng hoặc lâu hơn và đội của tôi đã thua lỗ. Không phải là nhiều, tôi không đặt một loạt vào hàng. Tuy nhiên, tôi không thể bỏ công việc hàng ngày của mình; và tôi muốn biết tại sao.

Mô phỏng Monte Carlo giúp chúng ta đánh giá rủi ro trong các môn thể thao giả tưởng

Để hiểu tại sao tôi lại chơi trò chơi này rất tệ, tôi đã tìm đến bộ công cụ phân tích quyết định của mình và loại bỏ công cụ phân tích danh mục đầu tư cũ đã được thử nghiệm và thực sự - mô phỏng Monte Carlo. Mô phỏng sẽ giúp tôi hiểu rủi ro trong các quyết định về nhân sự - cụ thể là 10 cầu thủ nào nên được chọn do hạn chế của chúng tôi là thấp hơn giới hạn lương của giải đấu.


Mô phỏng sẽ sử dụng các kết quả thực tế cho các cầu thủ bóng chày của các giải đấu lớn từ năm 2018 đến một ngày trước trận đấu mà chúng tôi đang mô phỏng. Tôi đạt được điều đó bằng cách thu thập số liệu thống kê hàng ngày từ API công khai của MLB.com cho tất cả những người giải trí lớn đang hoạt động. (Lưu ý: kỹ thuật dữ liệu nằm ngoài phạm vi của blog này.)


Khi số liệu thống kê được thu thập, chúng tôi phải thu thập những người chơi đủ điều kiện tham gia vào trò chơi giả tưởng mà chúng tôi muốn mô phỏng. Tôi đạt được điều đó bằng cách tương tác với API công khai của một nhà điều hành cờ bạc thể thao trực tuyến chuyên về các môn thể thao tưởng tượng hàng ngày. (Lưu ý: kỹ thuật dữ liệu nằm ngoài phạm vi của blog này.)


Sau khi dữ liệu được thu thập và những người chơi đủ điều kiện được xác định, mô phỏng có thể thực hiện một tìm kiếm mệt mỏi, được sửa đổi bằng cách tuyên truyền hạn chế mới, để tìm ra đội hình hoạt động tốt nhất; hoặc người dùng có thể xác định một đội hình và đánh giá hiệu suất của nó.

Hàm mục tiêu

Mục tiêu của mô phỏng là mô phỏng kết quả tiềm năng của các trận bóng chày được chơi bởi đội hình gồm 2 vận động viên ném bóng và 8 người chơi ở vị trí. Những kết quả đó được tính điểm bằng cách sử dụng các quy tắc cổ điển của cuộc thi bóng chày tưởng tượng hàng ngày của nhà cung cấp trực tuyến.

Hình ảnh của Tác giả: Mẫu tính điểm cổ điển điển hình được các nhà cung cấp bóng chày tưởng tượng trực tuyến sử dụng.

Mô phỏng Monte Carlo

Với dữ liệu có sẵn, chúng tôi có thể thử nghiệm và lập mô hình kết quả mong đợi từ dữ liệu trong thế giới thực của chúng tôi. Mục tiêu của chúng tôi là xác định điểm số tưởng tượng cho 8 cầu thủ vị trí (đại diện cho tất cả 8 vị trí cầm bóng trong bóng chày) và 2 vận động viên ném bóng. Mô hình của chúng tôi sẽ cần giải quyết vị trí của cầu thủ và người ném bóng, một cách riêng biệt.

Mô phỏng đánh bóng: Vật chất xuất hiện mảng

Đối với những người chơi vị trí, việc ghi bàn rất lệch với kết quả đánh bóng. Đối với những người chơi vị trí, trọng tâm của chúng tôi sẽ là mô phỏng sự xuất hiện của tấm và kết quả tiềm năng tương ứng của sự xuất hiện của tấm đó.


Chúng tôi đạt được điều này bằng cách mô phỏng kết quả của hành vi phạm tội và chúng tôi chỉ quan tâm đến sự xuất hiện của chiếc đĩa vì đây là cơ hội duy nhất để người chơi có thể tác động đến trò chơi giả tưởng. Lưu đồ mô phỏng của chúng tôi cho thấy mô hình của chúng tôi sẽ tiến hành như thế nào để xác định sự xuất hiện của tấm và kết quả tiềm năng của chúng.


Hình ảnh của Tác giả: Lưu đồ mô phỏng đánh bóng

Hình dạng mảng

Người chơi có thể có nhiều lần xuất hiện đĩa trong mỗi trò chơi, và nó chủ yếu được liên kết với thứ tự xuất hiện của họ trong đội hình. Một cầu thủ ở vị trí phía sau của đội hình có xu hướng ít xuất hiện hơn một cầu thủ ở phía trên (đầu) của đội hình. Mô hình của chúng tôi có quyền truy cập vào số lần xuất hiện của một người chơi trong lịch sử nhưng không có quyền truy cập vào thứ tự trong đội hình mà họ xuất hiện trong trò chơi đó. Đó là hạn chế đầu tiên đối với độ chính xác của mô phỏng của chúng tôi. Tôi mô hình hóa các lần xuất hiện đĩa dựa trên kết quả lịch sử chứ không dựa trên kỳ vọng thực tế dựa trên thứ tự đánh bóng cho trò chơi sắp tới.


Để hoàn thành mô phỏng của mình, chúng tôi lấy mẫu theo kinh nghiệm các lần xuất hiện đĩa từ các trò chơi trước đây bằng cách sử dụng trình tạo số ngẫu nhiên để chọn các lần xuất hiện đĩa từ danh sách có thứ tự các lần xuất hiện đĩa trong lịch sử cho từng người chơi ở vị trí.


Hình ảnh của Tác giả: Mã Python để trả lại sự xuất hiện của tấm


Đối với mỗi trò chơi được mô phỏng, lựa chọn ngẫu nhiên về các lần xuất hiện đĩa này được thực hiện. Phương pháp này rất chính xác để so khớp các kết quả mong đợi cho từng người chơi.


Hình ảnh của Tác giả: Tấm xuất hiện hiệu suất thực tế so với hiệu suất mô phỏng.

Kết quả xuất hiện mảng

Sau khi các lần xuất hiện đĩa được mô phỏng, bây giờ chúng ta cần xác định mô hình để xác định kết quả nào có thể xảy ra và tận dụng xác suất lồng nhau để chọn một kết quả đại diện cho những gì người chơi dự kiến sẽ đạt được. Điểm dừng đầu tiên trong xác suất lồng nhau hoặc theo chuỗi của chúng tôi là lấy mẫu từ khả năng của người chơi để biến hình dạng đĩa thành kết quả tấn công. Tỷ lệ này có thể được áp dụng cho các lần xuất hiện đĩa của mô phỏng để xác định có bao nhiêu kết quả mà người chơi đạt được trong trò chơi đó.


Hình ảnh của Tác giả: Mã Python để trả về tỷ lệ kết quả


Với số lượng kết quả được xác định, sau đó chúng tôi có thể sử dụng kết quả lịch sử của người chơi đã đạt được để mô phỏng khả năng của người chơi đó. Ví dụ: nếu chúng ta đang mô phỏng một cầu thủ nổi tiếng với việc đánh nhiều lần về nhà - chúng ta sẽ thấy nhiều lần về nhà trong các màn trình diễn lịch sử của anh ấy.


Hình ảnh của Tác giả: Kết quả cho hai cầu thủ ở vị trí MLB khác nhau cho thấy một phân phối kết quả duy nhất.


Mô phỏng sẽ lấy mẫu theo kinh nghiệm từ việc phân phối kết quả mà người chơi đã đạt được trong quá khứ. Sau đó, kết quả có thể được tính theo thẻ điểm của nhà cung cấp ảo tưởng trực tuyến và được xử lý thêm để mô phỏng kết quả bổ sung dựa trên trạng thái của trò chơi khi kết quả đó xảy ra.


Hình ảnh của Tác giả: Mã Python để trả về kết quả của trình phát.

Mô phỏng trên trạng thái cơ bản và kết quả cuối cùng của bề ngoài mảng

Trạng thái trò chơi khi một kết quả xảy ra cũng sẽ ảnh hưởng đến ba kết quả cuối cùng mà mô phỏng của chúng tôi phải mô phỏng. Ba kết quả đó phụ thuộc vào các sự kiện xảy ra trước, trong và sau khi người chơi đạt được kết quả. Lớp cuối cùng của lưu đồ của chúng tôi hiển thị các lần chạy, cơ sở bị đánh cắp và RBI chỉ có thể thực hiện được khi một số kết quả nhất định xảy ra.


Ngoài ra, số lượng của ba sự kiện đó cũng bị ảnh hưởng bởi kết quả. Ví dụ: nếu một người chơi đạt được một đường chạy về nhà, họ sẽ được thưởng ít nhất một RBI và một lượt chạy. Họ cũng không có cơ hội đạt được căn cứ bị đánh cắp vì kết quả đó. Chúng tôi lập mô hình tất cả các quy tắc này trong một lớp xác suất lồng nhau bổ sung và được lấy mẫu theo kinh nghiệm dựa trên các màn trình diễn của người chơi trong quá khứ để mô phỏng các trạng thái trò chơi mà người chơi đã thực hiện. Dưới đây là ví dụ về một trong những kết quả này, các lần chạy mô hình.


Hình ảnh của Tác giả: Mã Python để trả về số lần chạy được ghi bởi người chơi.

Mô phỏng kết quả đánh bóng

Với tất cả các chức năng của chúng tôi được xác định, giờ đây tôi có thể mô phỏng các trò chơi không giới hạn cho bất kỳ người chơi nào với đủ các màn trình diễn mẫu để rút ra từ đó. Kết quả hoạt động rất tốt. Đây là một ví dụ về Trea Turner được mô phỏng từ LA Dodgers.


Hình ảnh của Tác giả: Trea Turner Simulation (2 trò chơi)


Hình ảnh của Tác giả: Boxplot of Trea Turner Fantasy Points (mô phỏng) Vs. màn trình diễn thực tế của anh ấy (50 trận)

Mô phỏng Pitcher: Các lượt chơi Pitched Matter

Với những người đánh bóng được tính đến trong mô phỏng, mô hình cũng phải có khả năng mô phỏng kết quả của người ném bóng. Tính điểm tưởng tượng cho những người ném bóng chỉ xem xét kết quả của các lần xuất hiện đĩa và kết quả của những người đánh bóng mà họ phải đối mặt.


Hình ảnh của Tác giả: Lưu đồ mô phỏng quảng cáo chiêu hàng.


Đối với người ném bóng, mô hình bắt đầu với việc mô phỏng các hiệp đấu được ném bóng. Điều này rất quan trọng vì nghiên cứu tiểu thuyết của riêng tôi cho thấy rằng những người ném bóng ném nhiều hiệp hơn có xu hướng hoạt động tốt hơn (bằng cách giảm số lần chạy, số lần đánh và cải thiện tỷ lệ thắng của họ khi trận đấu diễn ra, v.v.)


Hình ảnh của Tác giả: Xác suất chiến thắng của người chơi Pitcher theo các lượt chơi được ném bóng (làm tròn)


Quan sát này là trực quan vì người quản lý ít có khả năng kéo một người ném bóng mạnh có một trận đấu tốt ra khỏi trò chơi mà ưu tiên cho một người ném bóng khác.

Lượt chơi đã đấu

Để hoàn thành mô phỏng của mình, chúng tôi lấy mẫu theo kinh nghiệm các lượt chơi được ném từ các trò chơi trước đây bằng cách sử dụng trình tạo số ngẫu nhiên để chọn các lượt chơi được ném từ danh sách có thứ tự các lượt chơi lịch sử được ném cho mỗi người ném bóng. Mã để đạt được điều này giống như chức năng xuất hiện tấm cho người đánh bóng. Đối với mỗi trò chơi được mô phỏng, lựa chọn ngẫu nhiên này được thực hiện. Phương pháp luận này rất chính xác để so khớp các hiệp đấu dự kiến được ném cho mỗi người ném bóng.


Hình ảnh của Tác giả: Các hiệp đấu được mô phỏng theo mô phỏng người ném bóng MLB so với thực tế.

Kết quả quảng cáo chiêu hàng

Kết quả của người chơi bóng được đánh giá dựa trên số lượt chơi được ném. Như tôi đã chỉ ra trước đây, tôi làm điều này vì hiệu suất của người chơi là khác nhau tùy thuộc vào mức độ sâu của trò chơi mà người ném bóng chơi.


Có ba kết quả mà chúng tôi quan tâm— đó là số trận thắng, số lần chạy, số lần trúng đích, số lần đi bộ và số lần ra đòn được thực hiện. Tôi mô phỏng những kết quả này bằng cách lấy mẫu theo kinh nghiệm cho các tập con dữ liệu về người ném bóng tương ứng với các lượt chơi được ném bóng. Quá trình này đảm bảo chúng tôi tôn trọng hiệu suất của người ném bóng như một chức năng của các lượt chơi ném bóng.


Hình ảnh của Tác giả: Mã Python để trả về số lần chạy kiếm được dưới dạng một hàm của các lượt chơi được ném bóng.


Kết quả cuối cùng là kiểm tra trạng thái mô phỏng sau mỗi lần chạy. Mô hình ghi điểm các trò chơi hoàn chỉnh bất cứ khi nào người ném bóng mô phỏng ném 9 lượt hoàn thành. Nó ghi công cho người ném bóng bằng việc kết thúc trò chơi hoàn toàn bất cứ khi nào người ném bóng mô phỏng ném 9 lượt hoàn thành và không có lượt chạy nào kiếm được. Cuối cùng, mô hình ghi nhận người ném bóng mô phỏng là người ném bóng không trúng đích nếu mô phỏng tạo ra người ném bóng hoàn thành tất cả 9 hiệp và không đạt được cú đánh nào.

Trò chơi mô phỏng Pitcher đã chơi

Với tất cả các chức năng ném bóng của chúng tôi được xác định, giờ đây tôi có thể mô phỏng các trò chơi không giới hạn cho bất kỳ người ném bóng nào với đủ dữ liệu mẫu. Dữ liệu mô phỏng rất giống với các màn trình diễn MLB thực tế của những người ném bóng mà chúng tôi đã lập mô hình.


Hình ảnh của Tác giả: Corbin Burnes mô phỏng các màn trình diễn ném bóng


Hình ảnh của Tác giả: Corbin Burnes Điểm tưởng tượng Thực tế so với Mô phỏng

Thử nghiệm tính toán và kết quả:

Mục tiêu của dự án này là đánh giá rủi ro trong việc lựa chọn đội hình cho một trò chơi thể thao giả tưởng hàng ngày. Để đạt được điều này, tôi đã xây dựng một chức năng điền ngẫu nhiên một đội hình hợp lệ bằng cách chi tiêu tối đa 50.000 đô la tiền lương được chỉ ra trong các quy tắc cổ điển của nhà cung cấp bóng chày tưởng tượng. Tôi đã làm điều này 500 lần để tạo ra 500 đội hình hợp lệ, ngẫu nhiên để mô phỏng. Mỗi người chơi trong đội hình hợp lệ được đưa vào mô phỏng của riêng họ - mô phỏng 50 trò chơi biểu diễn mỗi trận. Kết quả không đáng ngạc nhiên.


Có vẻ như kết quả bóng chày có rất nhiều sự ngẫu nhiên trong đó.

Dưới đây là tóm tắt về hiệu suất mô phỏng của 10 đội hình ngẫu nhiên hàng đầu được chọn theo tỷ lệ điểm trên độ biến thiên - giống như Tỷ lệ Sharpe trong tài chính. Các đội hình này đại diện cho các lựa chọn ít rủi ro nhất, nhưng hiệu quả nhất.


Hình ảnh của Tác giả: Tỷ lệ Sharpe hàng đầu có được bởi đội hình ngẫu nhiên, hợp lệ (10 màn trình diễn hàng đầu đã xem)


Đây là hình ảnh tương tự nhưng chọn các đội hình hợp lệ có điểm số cao nhất.


Hình ảnh của Tác giả: Đội hình giả tưởng ngẫu nhiên, hợp lệ hàng đầu (10 màn trình diễn hàng đầu đã xem)


Những hình ảnh này hiển thị các đội hình hợp lệ với hiệu suất mạnh mẽ, nhưng tất cả các đội hình này đều có giá trị kỳ vọng rất gần nhau. Thông qua tìm kiếm rộng rãi này, chúng tôi không thể tìm thấy một đội hình nào vượt trội hơn đáng kể so với tất cả các đội hình khác. Mô phỏng của chúng tôi đã thành công khi cho thấy rằng các trò chơi bóng chày giả tưởng, không có phân tích và đánh giá chi tiết về người chơi, chỉ đơn giản là trò chơi may rủi.

Thảo luận và kết luận

Tóm lại, mô phỏng là một công cụ rất hữu ích để hiểu những rủi ro liên quan đến việc ra quyết định. Nó đã được ứng dụng thành công trong một loạt các ứng dụng bao gồm thiết kế sản phẩm, đào tạo phi công, nghiên cứu xếp hàng và giờ là thể thao giả tưởng.


Kết quả của mô phỏng cụ thể này cho thấy bóng chày trong ngắn hạn có rất nhiều ngẫu nhiên. Bất kỳ người chơi nào, vào bất kỳ ngày nào, đều có thể có một trận đấu hay hoặc dở. Các trận đấu có thể xuất hiện và các tình huống trong trò chơi có thể ảnh hưởng đến quyết định của người chơi.


Chúng tôi đã đạt được khả năng mô hình hóa một hệ thống rất phức tạp và thu được kết quả rất thực tế. Về lâu dài, tôi hy vọng mô phỏng của tôi sẽ tạo ra những người chơi hoạt động tương tự như những người đồng nghiệp ngoài đời thực của họ.


Các mô phỏng có thể được cải thiện. Ví dụ: chúng tôi không có dữ liệu về trạng thái trò chơi cho bất kỳ kết quả hiệu suất nào. Chúng tôi mô phỏng dựa trên những thành tích trong quá khứ, nhưng một mô hình cải tiến cũng sẽ mô phỏng trạng thái trò chơi. Đây sẽ là một bước quan trọng tiếp theo vì các quyết định của người chơi khác và trạng thái trò chơi sẽ ảnh hưởng đến khả năng tạo ra kết quả của người chơi. Ngoài ra, mô hình không thể mô phỏng các trận đấu - một chủ đề quan trọng trong các môn thể thao tưởng tượng. Những người đánh bóng hoạt động khác nhau tùy thuộc vào người ném bóng mà họ phải đối mặt hoặc đội họ đang chơi.


Cuối cùng, tôi hy vọng sẽ cài đặt các cải tiến mới để xem xét các trận đấu và thực hiện các cải tiến gia tăng đối với khả năng đánh giá hiệu suất người chơi ngắn hạn của tôi.


Cũng được xuất bản ở đây .