Pertimbangkan lingkaran terbesar yang dapat ditampung dalam kotak mulai dari $\mathbb{R}^2$ di atas $[-1, 1]^2$. Lingkaran memiliki jari-jari 1, dan luas $\pi$. Persegi memiliki luas $2^2$ = 4. Rasio antara area mereka adalah $\pi/4$ Show
Kita dapat memperkirakan nilai π menggunakan metode Monte Carlo menggunakan prosedur berikut
Kita dapat mensimulasikan prosedur ini dalam NumPy dengan menggambar angka acak dari distribusi seragam antara -1 dan 1 untuk mewakili posisi $x$ dan $y$ butir beras kita, dan memeriksa apakah titik tersebut berada di dalam lingkaran menggunakan teorema Pythagoras. Prosedur ini merupakan adaptasi dari apa yang disebut masalah jarum Buffon, setelah ahli matematika Prancis abad ke-18, Count of Button. Itu milik topik yang disebut probabilitas geometris Untuk tutorial hari ini, kita akan menjelajahi dasar-dasar di balik algoritme komputasi populer yang disebut simulasi Monte Carlo dan bagaimana Anda dapat menerapkannya ke data sepak bola menggunakan Python Di akhir tutorial ini, Anda akan mendapatkan ide bagus tentang hal berikut
Apa itu simulasi Monte Carlo?Simulasi Monte Carlo pada intinya adalah teknik sederhana yang menggunakan pengambilan sampel acak untuk mensimulasikan fenomena dunia nyata Intinya, metode Monte Carlo digunakan ketika kita tertarik pada masalah yang pada prinsipnya bisa deterministik tetapi sulit untuk mengetahui jawaban pastinya. Oleh karena itu, kami memanfaatkan keacakan (dan komputer) untuk memperkirakan jawaban kami Mari kita mulai dengan contoh sederhana untuk mengilustrasikan ide tersebut Bayangkan teman Anda Bob menawarkan Anda untuk berpartisipasi dalam permainan di mana dia melempar sepuluh dadu secara bersamaan. Jika jumlah dadu antara empat puluh dan lima puluh, dia memberi Anda sepuluh dolar; Haruskah Anda memainkan game ini? Untuk memutuskan apakah akan bermain, pertama-tama Anda harus mencari tahu kemungkinan memenangkan sejumlah uang. Ya, Anda bisa menghitung kemungkinan memenangkan permainan dengan tangan; Di sinilah metode Monte Carlo bisa berguna. Mari kita lanjutkan dan selesaikan masalah menggunakan Python Jika Anda tidak tahu, baru-baru ini saya meluncurkan program keanggotaan berbayar di mana komunitas dapat mendukung peningkatan dan konten yang tersedia di situs web. Salah satu keuntungan menjadi anggota adalah Anda mendapatkan akses awal ke tutorial – jadi jika Anda secara konsisten mendapatkan manfaat dari situs ini, saya akan sangat menghargai jika Anda mempertimbangkan untuk bergabung dengan kami Pelajari lebih lanjut tentang keanggotaan 🗒️ Jika Anda bukan anggota berbayar, jangan khawatir, postingan ini akan tersedia untuk umum pada tanggal 18 November 2022 🤖 Semua kode yang digunakan dalam tutorial ini dan pustaka yang diperlukan dapat ditemukan di buku catatan yang disertakan Mari kita mulai dengan menulis program Python yang mereplikasi kejadian kita – lemparan sepuluh dadu acak
Manis, sekarang setelah kita menentukan fungsi itu, kita dapat menulis beberapa kode yang memanggil fungsi ini jutaan kali dan kemudian menghitung seberapa sering kita akan memenangkan sejumlah uang
Menarik. Sepertinya kita memiliki peluang 20% untuk memenangkan sepuluh dolar dan peluang 80% untuk kehilangan dua dolar, yang berarti permainan ini sedikit menguntungkan kita dalam hal nilai yang diharapkan. \[\begin{align*} \text{Nilai yang diharapkan} &= 10 \times 20\% -2 \times 80\%\\ &= 0. 39 \end{sejajarkan*}\](Sepertinya Bob tidak tahu tentang simulasi Monte Carlo 😉) Hal penting yang perlu diperhatikan di sini adalah bahwa meskipun kami memiliki nilai harapan yang positif, kemungkinan besar jika kami hanya bermain sekali, kami akan kehilangan sejumlah uang. Jadi mari kita bayangkan skenario alternatif di mana kami meyakinkan Bob untuk mengizinkan kami memainkan game ini lima puluh kali berturut-turut, dan di akhir putaran, kami membagikan pembayaran. Berapa banyak jalan yang akan membawa kita pada keuntungan? Ayo gunakan Monte Carlo sekali lagi untuk mendapatkan hasilnya Kita mulai dengan mendefinisikan fungsi kita yang menghitung pembayaran total setelah \(k\) lemparan
Kemudian, kami melakukan Monte Carlo dengan mensimulasikan seratus ribu jalur alternatif dan menghitung beberapa statistik deskriptif dasar dengan hasilnya _Mari kita lihat apa yang bisa terjadi jika kita memainkan game ini Histogram hasil permainan dadu
Lumayan untuk kerja seharian 📝 RekapSimulasi Monte Carlo adalah algoritma komputasi yang memanfaatkan keacakan untuk memperkirakan solusi untuk masalah yang bersifat deterministik atau yang memiliki interpretasi probabilistik Untuk melakukan simulasi Monte Carlo, Anda harus
Sekarang setelah kita membahasnya, mari lanjutkan dan terapkan konsep ini ke beberapa data sepak bola Menerapkan Simulasi Monte Carlo ke Data Sepak BolaAda aplikasi yang tak terhitung jumlahnya untuk simulasi Monte Carlo dalam ruang sepak bola. Dalam tutorial ini, kita akan fokus pada pemecahan masalah sederhana secara mendetail sehingga Anda dapat memahami dasar-dasarnya dan kemudian menerapkan konsep ini ke dalam analisis Anda sendiri Masalah yang akan kita fokuskan terdiri dari memperkirakan probabilitas bahwa tim tertentu menang, kalah, atau seri dalam pertandingan tertentu berdasarkan kualitas peluang yang diciptakan – hasilnya harus memberikan penilaian yang baik tentang kinerja tim, dan seberapa beruntungnya 💡 Perhatikan bahwa karena kami mensimulasikan skenario di mana peluang telah dibuat, solusi kami tidak memiliki nilai prediktif. Ini hanya memberikan penilaian pasca-pertandingan kinerja tim Mari kita mulai dengan mendefinisikan masalahnya Pertama-tama, mari kita asumsikan bahwa xG (gol yang diharapkan) dari sebuah tembakan sama dengan probabilitas bahwa tembakan itu menghasilkan gol. Kemudian, untuk pertandingan apa pun, kami dapat mengulangi setiap tembakan dan melakukan uji coba Bernoulli untuk mensimulasikan apakah tembakan tersebut menghasilkan gol atau meleset. 🎯 Uji coba Bernoulli pada dasarnya adalah "balik koin", dengan parameter p yang menunjukkan probabilitas keberhasilan. Dalam kasus kita, sukses sama dengan gol, dan p sama dengan xG tembakan Untuk penyederhanaan, kami berasumsi bahwa semua bidikan tidak bergantung satu sama lain. Ini penting – dan mungkin tidak sepenuhnya benar – karena memungkinkan kami menyimpulkan hasil eksperimen tanpa harus mengkhawatirkan korelasi antara peristiwa Dengan memutar ulang simulasi ini beberapa kali, kami kemudian dapat menggunakan hasilnya untuk memperkirakan probabilitas setiap hasil dalam pertandingan tersebut Kedengarannya bagus? Mari kita uji dengan beberapa data aktual, dan simulasikan probabilitas setiap pertandingan selama penyisihan grup untuk melihat hasil mana yang paling tidak mungkin Memuat dataSaya telah menyediakan kumpulan data yang berisi semua bidikan yang diambil di babak Grup Liga Champions UEFA
Selain data tembakan, kami juga memiliki kumpulan data info pertandingan yang berisi semua informasi terkait pertandingan. Ini akan berguna untuk menilai dan mengulangi hasil kami _
Simulasi pertandinganOk, sekarang saatnya untuk turun ke seluk beluk. Menulis kode yang mensimulasikan percobaan acak tunggal dari kecocokan kita Perhatikan baik-baik fungsi di bawah ini, dan coba pahami fungsinya. Namun, jangan khawatir jika kurang jelas, kami akan menjelaskannya sebentar lagi _Inilah yang dilakukan kode
Memperkirakan probabilitasBesar. Sekarang kita dapat membuat skor acak, saatnya melakukan simulasi Monte Carlo Untuk melakukan ini, kami menghasilkan sejumlah besar garis skor acak dan menghitung berapa kali setiap hasil (kemenangan kandang, seri, dan kemenangan tandang) terjadi. Kemudian, kami membagi angka tersebut dengan total garis skor yang dihasilkan Sederhana, bukan? Ayo tulis kodenya _0Sebagai contoh, mari kita lakukan 10.000 simulasi pada pertandingan Ajax vs. Pertandingan Rangers ( _0 ) 1 2Keren. Sepertinya pertandingan itu telah diputar ulang 10.000 kali Ajax akan menang 88% dari waktu – mereka benar-benar memenangkan pertandingan itu 4 - 0 Membungkus barangSekarang kita memiliki fungsi yang memutar ulang pertandingan k kali dan mengembalikan perkiraan probabilitas, mari kita simulasikan semua pertandingan di babak grup untuk menemukan hasil yang paling tidak mungkin (ini bisa memakan waktu beberapa menit, jadi ini alasan yang bagus untuk mengambil secangkir kopi ☕️) _3Setelah selesai, kami mengonversi hasil kami menjadi 9 dan menggabungkannya dengan kumpulan data 2 kami _4Outputnya akan terlihat seperti ini _5Menilai hasilUntuk mengevaluasi kinerja setiap tim, kami akan melakukan uji statistik untuk melihat hasil mana yang paling tidak mungkin. Untuk ini, kami akan menggunakan fungsi Brier Score yang dirancang untuk menghitung keakuratan prediksi probabilistik. Meskipun kami tidak memperkirakan apa pun di sini, ini akan menunjukkan hasil mana yang paling tidak mungkin Definisi BS adalah \[\text{BS} = (P_h - o_h)^2 + (P_d - o_d)^2 + (P_a - o_a)^2\] di mana. \(P\) masing-masing menunjukkan probabilitas kemenangan kandang, seri, dan kemenangan tandang; Inilah kode untuk mencapainya 6 7Akhirnya, kami melihat dua puluh hasil yang paling tidak mungkin _820 hasil yang paling tidak mungkin di UCL. WOW. Empat dari pertandingan Atlético Madrid masuk dalam tujuh pertandingan teratas yang paling tidak mungkin – meskipun beberapa di antaranya menguntungkan mereka Jadi begitulah, itulah salah satu contoh bagaimana Anda dapat menerapkan simulasi Monte Carlo ke data sepakbola. Semoga Anda mempelajari sesuatu yang baru dari tutorial ini dan saya akan menyusul Anda nanti 😎 📝 Latihan OpsionalJika Anda ingin menguji keterampilan Anda, saya sarankan Anda memperluas contoh di atas dan mensimulasikan peluang setiap tim untuk lolos ke babak enam belas Bagaimana Anda menggunakan metode Monte Carlo dengan Python?Integrasi Monte Carlo adalah proses penyelesaian integral yang memiliki banyak nilai untuk diintegrasikan. Proses Monte Carlo menggunakan teori bilangan besar dan sampling acak untuk memperkirakan nilai yang sangat dekat dengan solusi integral yang sebenarnya. Ini bekerja pada rata-rata fungsi yang dilambangkan dengan .
Untuk apa model Monte Carlo digunakan?Metode Monte Carlo adalah teknik matematika terkomputerisasi yang memungkinkan orang memperhitungkan risiko secara kuantitatif dalam peramalan dan pengambilan keputusan . Pada intinya, metode Monte Carlo adalah cara menggunakan sampel parameter acak untuk mengeksplorasi perilaku sistem yang kompleks.
Bisakah Anda menjalankan simulasi Monte Carlo dengan Python?Pendekatan Integral MC. Implementasi Python
. this integral can be obtained using Monte Carlo simulation by calculating this amount 10000 times and taking the mean of these values.
Bagaimana Monte Carlo digunakan dalam pembelajaran mesin?Program machine learning memungkinkan pengguna menjalankan simulasi Monte Carlo yang rumit sebagai algoritme pemrosesan data berkode . Pustaka panda di Python dapat digunakan untuk membuat model sederhana seperti spreadsheet. Ini adalah cara termudah untuk menjalankan simulasi Monte Carlo berbasis pembelajaran mesin. |