Memprediksi Berabad-abad — Model Dasar – Menuju AI

Memprediksi Berabad-abad — Model Dasar – Menuju AI

Pengarang: Arslan Shahid

Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda sedang membangun produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan untuk menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.

MoneyBalling Cricket: Memprediksi Berabad-abad — Model Dasar

Persiapan data & pemodelan klasifikasi biner berabad-abad dalam kriket

Gambar dari Pexel. Gambar oleh Mahafuzur Rehman

Berabad-abad adalah acara yang dirayakan dalam kriket, biasanya menghasilkan babak pemenang pertandingan oleh batsman. Sebagai penggemar statistik, rasanya seperti masalah besar untuk model karena tidak hanya sangat menarik, kebaruan masalah memang membuatnya menantang. Bagian ini menjelaskan alasan di balik bagaimana saya menyiapkan data, model apa yang saya gunakan, dan kriteria evaluasi.

Data

Sebelum memulai, sedikit informasi tentang sumber data dan verifikasi.

Sumber Data: Semua data bersumber dari cricsheet.org. Mereka menawarkan data bola demi bola dari ODI, T20, dan pertandingan Uji. Saya tidak memiliki datanya, tetapi data cribsheet tersedia di bawah Lisensi Atribusi Open Data Commons. Setiap orang bebas untuk menggunakan, membangun, dan mendistribusikan kembali data dengan atribusi yang tepat di bawah lisensi ini. Baca tentang lisensi di sini. Verifikasi Data: Pendiri cricsheet melakukan pekerjaan yang baik untuk memverifikasi sumber data dengan kesalahan minimal. Saya memverifikasi data menggunakan agregat dan membandingkannya dengan agregat yang tersedia di situs kriket utama seperti ESPNcricinfo. Dimensi & waktu Data: Dataset berisi 2050 kecocokan ODI, mulai dari 2004–01–03 hingga 2022–07–07. Ini berisi hampir semua ODI pria utama yang dimainkan selama periode tersebut. Dataset berisi 1.087.793 bola yang dimainkan, & 35.357 batsman knocks & 4.002 inning.

Dalam posting sebelumnya, saya melakukan analisis probabilistik berabad-abad, temuan kuncinya adalah bahwa tanpa syarat pada hal lain, probabilitas yang diperkirakan secara empiris dari ketukan batsman yang menghasilkan satu abad hanya 3,16%. Ini penting karena ketika memodelkan masalah klasifikasi, prevalensi kelas mungkin merupakan faktor paling penting dalam menentukan kemanjuran model Anda. Prevalensi kelas rendah biasanya berarti bahwa kinerja model pada metrik seperti akurasi, presisi, daya ingat & skor f1 akan rendah. Dengan kata sederhana, akan sulit untuk memprediksi abad jika Anda memprediksi satu abad di awal pertandingan, Anda perlu mengatasi ini entah bagaimana untuk mendapatkan hasil yang berarti.

Money Balling Cricket — Probabilitas 100 menggunakan pengkondisian berulang

Menyederhanakan masalah

Model apa pun yang dilatih dengan sampel data pada awal pertandingan tidak mungkin memiliki kekuatan prediksi, untuk mengurangi masalah ini, saya perlu menyederhanakan masalahnya. Jika seseorang memprediksi abad di titik tengah di mana model bersifat prediktif, seperti saat batsman mencapai ambang 50–55 run, mereka akan mendapatkan hasil yang jauh lebih baik.

Penyederhanaan lain yang harus dilakukan adalah mengecualikan titik data ketika satu abad tidak ‘mungkin’; ketika bola yang tersisa tidak memungkinkan satu abad tanpa pukulan bebas, dan untuk babak kedua ketika total yang dibutuhkan untuk menang lebih rendah dari jumlah lari yang dibutuhkan selama satu abad. Ini akan mengurangi kebisingan dalam data kami. Penyederhanaan terakhir adalah mengecualikan tim yang tidak memainkan kriket Uji, saya melakukan ini karena tim ini memiliki sampel yang sangat kecil dibandingkan dengan tim besar.

Semua penyederhanaan ini mungkin tampak seperti curang, tetapi ketika Anda menjadi model, lakukan hal yang paling sederhana yang dapat Anda lakukan terlebih dahulu, kemudian hilangkan beberapa batasan ini untuk mendapatkan serangkaian model yang lebih ‘lengkap’.

Persiapan data

Persiapan Data menjelaskan. Gambar oleh Penulis

Dataset asli yang diekstraksi dari cricsheet adalah bola demi bola, cara saya merancang model kami, ini akan mengambil snapshot dari babak batsman saat mereka melewati 50 run. Langkah-langkah berikut diambil untuk mempersiapkannya untuk pemodelan.

Mengidentifikasi baris atau kejadian dalam pertandingan di mana seorang batsman dalam satu babak melewati ambang 50 run untuk pertama kalinya. Ini kemudian melewati serangkaian filter. Filter pertama memeriksa bahwa kedua tim batting dan bowling adalah tim Test-playing. Filter kedua memastikan bahwa satu abad masih mungkin, mengingat jumlah bola yang tersisa. Filter ketiga menghapus baris di mana batsman tidak dapat menyelesaikan abadnya jika skor target tidak memungkinkan untuk satu, itu hanya berlaku untuk inning ke-2.

Pada snapshot ini, semua data historis (hingga bola saat ini dari pertandingan saat ini) dari batsman dikumpulkan. Untuk pemukul, rata-rata historis mereka melawan tim yang mereka lawan, dan untuk tim bowling, rata-rata historis ekonomi (lari per bola), lari per gawang, dll, terhadap tim yang sama dihitung. Jika tidak ada sejarah, mereka diperhitungkan dengan KPI historis tim secara keseluruhan, sebelum babak yang bersangkutan. Selain itu, statistik kemitraan seperti total run oleh kemitraan saat ini & skor mitra ditambahkan ke kumpulan data.

KPI bersejarah ini penting untuk membuat model yang informatif tetapi memasukkannya memiliki risiko kebocoran target. Itu terjadi ketika Anda melatih algoritme Anda pada kumpulan data yang menyertakan informasi yang tidak akan tersedia pada saat prediksi. Dalam kasus kami, itu bisa terjadi jika saya memasukkan dalam set data pelatihan KPI historis dari pertandingan yang terjadi setelah kecocokan dalam set data pengujian. Untuk mencegah hal ini terjadi, data harus diurutkan berdasarkan waktu & bola yang dimainkan dalam pertandingan, dengan hanya 80% data pertama yang dimasukkan untuk pelatihan, dan 20% sisanya dimasukkan ke dalam kumpulan data uji.

Uji-Kereta Split. Gambar oleh Penulis

Model Dasar

Untuk model awal saya, saya memilih model Binary Logit alias Regresi Logistik. Model ini dipilih karena alasan berikut:

Interpretabilitas: Teknik pemodelan yang rumit seperti jaringan saraf kemungkinan akan berkinerja lebih baik pada metrik kinerja, tetapi ini mengorbankan interpretasi. Regresi Logistik mudah untuk diinterpretasikan, yang seringkali memberikan wawasan tentang bagaimana variabel independen kami memengaruhi variabel dependen. Debugging: Di sebagian besar latihan pemodelan, Anda sering kali harus men-debug data & model Anda. Pencilan dan efek pengganggu lebih mudah diidentifikasi dalam model sederhana. Yang dapat membantu Anda membersihkan data atau melakukan rekayasa fitur yang lebih baik.

Persamaan model, C() berarti variabelnya kategorik. Gambar oleh Penulis

Catatan: ekonomi hist adalah ekonomi historis tim bowling secara keseluruhan melawan tim pemukul, hingga pertandingan itu & hist Rata-rata adalah sejarah rata-rata pemukul melawan Tim bowling yang sama. Keduanya diperhitungkan dengan rata-rata keseluruhan/ekonomi historis jika tidak ada sejarah antara tim batting & tim bowling.

Evaluasi Model

Model dievaluasi pada kumpulan data pengujian pada serangkaian metrik, yang berubah saat Anda mengubah batas keputusan model Anda. Model Logit memprediksi probabilitas peristiwa yang terjadi, terserah pemodel untuk memilih ambang batas yang digunakan untuk mengklasifikasikan suatu peristiwa sebagai abad atau bukan abad.

Secara default, batas keputusan itu diatur ke 0,5 (probabilitas prediksi >0,5 adalah 1 dan jika tidak 0), tetapi itu gagal dalam banyak kasus ketika ada ketidakseimbangan kelas yang besar. Satu kelas lebih umum daripada yang lain, jadi untuk mengatasinya, Anda mengubah batas keputusan.

Di bawah ini adalah penjelasan intuitif dari semua metrik yang digunakan untuk mengevaluasi model kami:

presisi:

Rumus — (Positif_Benar)/(Positif_Benar + Positif_Salah).

Intuisi: Memaksimalkan presisi berarti Anda tidak memasukkan kesalahan positif apa pun dalam prediksi Anda, Anda hanya menyertakan prediksi yang kemungkinan besar benar-benar positif. Ini secara intuitif berarti bahwa prediksi Anda akan mencakup banyak negatif palsu tetapi lebih sedikit atau tidak ada positif palsu.

Mengingat:

Rumus — (Positif_Benar)/(Positif_Benar + Negatif_Salah).

Intuisi: Memaksimalkan ingatan berarti Anda menangkap semua contoh yang benar-benar positif, dan tidak menyertakan negatif palsu. Ini berarti Anda akan menoleransi positif palsu tetapi tidak negatif palsu. Ada tradeoff antara presisi & recall.

Skor F1:

Rumus — 2*(presisi*recall)/(presisi + recall).

Intuisi: Skor F1 adalah rata-rata harmonik presisi & ingatan. Memaksimalkan skor f1 adalah saat Anda mencapai ‘titik tengah’ antara presisi & daya ingat. Di mana Anda meneliti negatif palsu & positif palsu secara merata.

Skor F-beta:

Rumus — (1+Beta²)(presisi*recall)/((Beta²)precision + recall).

Intuisi: Mirip dengan skor F1, skor F-beta juga mencoba untuk mencapai ‘titik konsensus’ antara presisi & ingatan tetapi nilai beta mencondongkan konsensus yang mendukung presisi atau ingatan. Nilai beta yang lebih besar dari 1 berarti condong yang mendukung penarikan & nilai beta yang lebih rendah dari 1 berarti condong ke arah presisi.

Plot Metrik Model. Garis putus-putus adalah batas keputusan di mana skor f1 dimaksimalkan. Gambar oleh Penulis.

Kurva di atas menunjukkan bagaimana metrik model berubah jika batas keputusan model diubah. Metrik mana yang akan dimaksimalkan adalah murni pertanyaan tentang bagaimana Anda ingin menggunakan model tersebut. Misalnya, dalam taruhan olahraga jika Anda ingin bertaruh besar pada pemain yang menghasilkan satu abad, Anda ingin sangat yakin bahwa prediksi Anda benar-benar positif, jadi Anda mungkin ingin mengoptimalkan model pada presisi atau skor beta dengan lebih rendah dari 1 nilai beta.

Dalam kebanyakan kasus, seseorang ingin memilih titik yang menghukum positif palsu & negatif palsu secara merata, sehingga skor f1 paling masuk akal. Skor F1 dimaksimalkan pada ambang batas 18%, model memiliki skor f1 48%, akurasi 60%, dan recall 70%. Ini berarti model menangkap 70% dari semua positif sejati, tetapi presisi 38% rendah. Setiap perbaikan pada model dasar ini harus lebih tepat dengan prediksinya!

Ini adalah metrik yang digunakan untuk menemukan batas keputusan yang optimal, sekarang, mari kita evaluasi model secara keseluruhan. Untuk itu, saya menggunakan Area di bawah kurva (AUC) dari kurva karakteristik operasi penerima (ROC).

kurva ROC. Gambar oleh Penulis.

Intuisi (ROC): Kurva ROC menunjukkan hubungan antara True positive rate (TPR) & false positive rate (FPR). Tingkat positif sebenarnya sama dengan recall. ROC memberi tahu bagaimana keduanya berubah, ingatlah untuk menangkap lebih banyak positif sejati, Anda juga harus mentolerir lebih banyak positif palsu. Garis asal adalah di mana kedua TPR & FPR adalah sama, model yang memiliki TPR = FPR untuk semua batas keputusan murni membuat prediksi acak.

Intuisi (AUC): Area di bawah kurva adalah metrik kinerja keseluruhan model kami. AUC berkisar dari 0 hingga 1, dengan 0 tidak memiliki daya prediksi, 1 berarti daya prediksi sempurna & 0,5 berarti daya prediksi acak murni (tidak lebih baik daripada melempar koin).

Garis asal membentuk segitiga dengan sumbu x, dengan panjang & tinggi = 1. Artinya memiliki AUC 0,5 (Luas segitiga = 0,5 * tinggi * panjang). Kurva ROC model kami memiliki AUC 0,653, yang berarti jauh lebih baik daripada acak!

Peningkatan model kami dapat dilakukan dengan dua cara, gunakan algoritme yang lebih canggih atau coba prediksi abad pada ambang batas selain 50–55 run!

Terima kasih telah membaca! Saya akan menjelajahi ambang batas penilaian yang berbeda dan model yang berbeda dan lebih rumit di posting saya berikutnya tentang topik tersebut. Pantau terus!

Ingin membaca lebih lanjut tentang pemodelan statistik dalam kriket, silakan periksa ini:

Atau mungkin Anda menginginkan sesuatu yang berbeda:

Kebohongan, Kebohongan Besar, dan Ilmu Data?

Silakan ikuti saya di Medium, Twitter, dan Linkedin. Jangan lupa untuk mengklik ikon email agar Anda dapat menerima email dari postingan saya.

MoneyBalling Cricket: Memprediksi Berabad-abad — Model Dasar awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.

Diterbitkan melalui Menuju AI

Author: Scott Anderson