Kursus
Data scientist membuat model machine learning untuk melakukan prediksi dan mengoptimalkan keputusan. Dalam poker online, pilihannya adalah bertaruh, ikut, atau menyerah. Namun, Anda tidak diperbolehkan menggunakan perangkat lunak untuk mengambil keputusan tersebut. Di situlah sebagian besar situs poker online menarik garis pada aturannya. Karena Anda tidak bisa melatih model machine learning, Anda harus melatih otak Anda. Ini membutuhkan aliran tak berujung dari perhitungan ekuitas di luar meja poker, yang menggunakan banyak konsep probabilitas dan statistika.
Dalam tutorial ini, Anda akan mempelajari beberapa konsep tersebut menggunakan satu set kartu dan situasi poker umum.

Jika Anda tertarik mempelajari statistika dengan Python, pertimbangkan kursus Statistical Thinking in Python dari DataCamp.
Motivasi Pribadi
Selama beberapa tahun, saya mencari nafkah sebagai pemain poker online profesional. Data science merupakan kelanjutan yang alami bagi saya karena membutuhkan keterampilan yang mirip dengan mencari keuntungan dari poker online. Saya menulis blog tentang persamaan antara data science dan poker, dan saya menyebutkan bahwa setiap kali sebuah tangan poker dimainkan di situs poker online, akan dihasilkan riwayat tangan. Riwayat tangan ini menjelaskan semua yang dilakukan setiap pemain selama tangan tersebut. Saya menggunakan perangkat lunak bernama Hold’em Manager (bayangkan Tableau untuk poker) untuk memanfaatkan data ini. Hold'em Manager mengunduh setiap riwayat tangan ini secara real-time ke basis data PostgreSQL sehingga Anda dapat melacak kecenderungan lawan Anda.
Teori Probabilitas: Pengantar
Sebelum mulai praktik, saatnya mempertimbangkan apa itu teori probabilitas dan mengapa penting mempelajarinya saat Anda mulai terjun ke data science. Selain itu, Anda akan mempelajari beberapa konsep kunci yang akan berguna sepanjang tutorial dan bagaimana menghitung probabilitas dari kejadian tunggal.
Dalam situasi nyata, Anda sering bertanya-tanya berapa probabilitas suatu peristiwa terjadi, seperti memenangkan lotre, tim sepak bola Anda menang, atau diskon untuk sepatu favorit Anda. "Berapa kemungkinannya..." adalah ungkapan yang mungkin sering Anda gunakan. Menentukan kemungkinan suatu peristiwa terjadi disebut "probabilitas".
Jenis probabilitas ini berbeda dari cara pandang matematis terhadap probabilitas yang Anda temukan dalam teori probabilitas, cabang dari matematika. Dan dalam matematika, ada dua kategori luas interpretasi tentang "probabilitas" — yaitu probabilitas "fisik" dan "evidensial".
Yang pertama juga disebut probabilitas objektif atau frekuensi dan terkait dengan sistem fisik acak seperti melempar koin, roda rolet, atau dadu. Dalam sistem seperti itu, suatu jenis kejadian cenderung terjadi pada laju yang konstan, atau "frekuensi relatif", dalam jangka panjang dari banyak percobaan.
Yang kedua juga disebut probabilitas Bayesian, yang dapat diberikan pada pernyataan apa pun, bahkan ketika tidak ada proses acak yang terlibat, sebagai cara untuk merepresentasikan kemungkinan subjektifnya, atau sejauh mana pernyataan tersebut didukung oleh bukti yang tersedia. Dalam banyak pandangan, probabilitas evidensial dianggap sebagai derajat keyakinan, yang didefinisikan dalam hal kecenderungan untuk bertaruh pada peluang tertentu.
Catatan bahwa teori probabilitas terutama berfokus pada memprediksi kemungkinan kejadian di masa depan, sedangkan statistika menganalisis frekuensi kejadian di masa lalu. Ini juga menjelaskan mengapa teori probabilitas merupakan salah satu topik inti yang harus Anda pelajari jika ingin menjadi data scientist: seperti yang Anda ketahui, dalam data science dan machine learning, Anda akan menggunakan data dari peristiwa yang sudah terjadi untuk memprediksi peristiwa di masa depan.
Jadi meskipun teori probabilitas umumnya dianggap sulit dipahami secara intuitif, konsep-konsepnya sangat penting untuk data science dan analitik prediktif.
Konsep dan Simbol Kunci
Beberapa konsep kunci yang sebaiknya Anda pahami untuk tutorial ini sebagian besar berkaitan dengan perspektif frekuentis terhadap probabilitas, karena tutorial ini bekerja dengan satu set 52 kartu remi.
Dari perspektif tersebut, unsur mendasar dari teori probabilitas adalah sebuah eksperimen yang dapat diulang, setidaknya secara hipotetis, dalam kondisi yang pada dasarnya identik. Eksperimen ini dapat menghasilkan hasil yang berbeda pada percobaan berbeda atau pelaksanaan tunggal dari eksperimen. Himpunan semua kemungkinan hasil dari suatu eksperimen disebut "ruang sampel". Sebuah kejadian adalah subset ruang sampel yang terdefinisi dengan baik.
Semua ini sangat teoretis.
Mari pertimbangkan beberapa contoh:
- Contoh yang agak klise adalah melempar koin. Dalam hal ini, eksperimennya adalah melempar koin. Anda dapat melempar koin berkali-kali, dan setiap percobaan bisa memiliki hasil yang berbeda. Karena ada dua kemungkinan hasil — kepala atau ekor — ruang sampelnya adalah 2. Namun, kejadian "melempar koin" misalnya bisa terdiri dari satu hasil "Kepala". Demikian juga, ketika Anda melempar koin dua kali, kejadian Anda "lemparan pertama menghasilkan Kepala" mungkin memiliki hasil "Kepala-Kepala" atau "Kepala-Ekor".
- Contoh lain yang mungkin kurang langsung adalah eksperimen memutar bola dunia dan menghentikannya dengan menaruh jari Anda. Anda dapat memutarnya beberapa kali dan setiap kali bisa menghasilkan hasil berbeda — Jari Anda bisa mendarat di daratan atau di air. Artinya ruang sampelnya 2. Kejadian "jari saya berada di daratan" bisa memiliki hasil "Daratan - Air" atau "Daratan - Daratan".
- Contoh terakhir adalah eksperimen melempar dadu. Anda dapat melempar dadu berkali-kali dan semua lemparan tersebut bisa memiliki hasil berbeda: tepatnya 6, karena dadu Anda memiliki 6 angka (1,2,3,4,5,6). Kejadian "Jumlah hasil dari dua lemparan sama dengan 10" bisa terdiri dari 10, sedangkan kejadian "angkanya genap" bisa terdiri dari 2, 4, atau 6.
Sekarang setelah Anda memiliki gambaran tentang konsep kunci yang akan digunakan sepanjang tutorial ini, saatnya juga mempertimbangkan beberapa simbol probabilitas yang akan Anda temui:
| Simbol | Makna |
|---|---|
| $$\cap$$ | Dan |
| $$\cup$$ | Atau |
| | | Diberikan |
Menghitung Probabilitas untuk Kejadian Tunggal
Sekarang Anda sudah siap, Anda dapat mulai menentukan probabilitas dari kejadian tunggal, seperti koin mendarat pada sisi ekor. Untuk menghitung probabilitas ini, Anda membagi jumlah hasil kejadian yang mungkin dengan ruang sampel.
Ini berarti Anda harus terlebih dahulu mempertimbangkan berapa banyak cara yang mungkin agar koin mendarat pada ekor, dan jumlah hasil yang mungkin. Yang pertama adalah 1, karena hanya ada satu cara untuk mendapatkan ekor. Yang kedua adalah 2, karena Anda akan mendapatkan kepala atau ekor saat melempar koin.
Singkatnya, perhitungan probabilitas dari kejadian A akan terlihat seperti ini:
$$P(A) = \frac{Event \ outcomes \ favorable \ to \ A}{Sample \ space}$$
Dalam kasus melempar koin, probabilitas koin mendarat pada ekor adalah 1/2 atau 0,5.
Catatan bagaimana probabilitas selalu berada di antara 0 dan 1, di mana 0 menunjukkan bahwa kejadian tersebut sangat tidak mungkin terjadi, sedangkan 1 menunjukkan bahwa kejadian tersebut sangat mungkin terjadi.
Sekarang mari pertimbangkan contoh kedua di mana Anda akan menghitung probabilitas suatu kejadian.

Dalam satu set kartu standar terdapat 52 kartu dan dari 52 kartu tersebut, 4 adalah As. Jika Anda mengikuti contoh melempar koin di atas untuk mengetahui probabilitas mengambil As, Anda akan membagi jumlah hasil kejadian yang mungkin (4) dengan ruang sampel (52):
$$P(A) = \frac{4}{52}$$
Catatan bahwa $A$ merepresentasikan kejadian "mengambil As".
Sekarang, tentukan probabilitas mengambil As dengan bantuan Python:
# Sample Space
cards = 52
# Outcomes
aces = 4
# Divide possible outcomes by the sample set
ace_probability = aces / cards
# Print probability rounded to two decimal places
print(round(ace_probability, 2))
0.08
Probabilitas mengambil As dari satu set kartu standar adalah 0,08. Untuk menentukan probabilitas dalam bentuk persentase, cukup kalikan dengan 100.
# Ace Probability Percent Code
ace_probability_percent = ace_probability * 100
# Print probability percent rounded to one decimal place
print(str(round(ace_probability_percent, 0)) + '%')
8.0%
Probabilitas mengambil As dalam persen adalah 8%.
Sekarang setelah Anda melihat dua contoh di mana Anda menghitung probabilitas, mudah untuk berasumsi bahwa Anda dapat mengembangkan perhitungan probabilitas Anda untuk menentukan, misalnya, probabilitas mengambil kartu Hati, kartu bergambar (seperti Jack, Queen, atau King), atau kombinasi keduanya, seperti Queen of Hearts.
Dalam kasus seperti itu, Anda mungkin ingin membuat User-Defined Function (UDF) event_probability() yang Anda beri event_outcomes dan sample_space untuk mencari probabilitas suatu kejadian dalam bentuk persentase, karena Anda akan banyak menggunakan ulang kode tersebut:
# Create function that returns probability percent rounded to one decimal place
def event_probability(event_outcomes, sample_space):
probability = (event_outcomes / sample_space) * 100
return round(probability, 1)
# Sample Space
cards = 52
# Determine the probability of drawing a heart
hearts = 13
heart_probability = event_probability(hearts, cards)
# Determine the probability of drawing a face card
face_cards = 12
face_card_probability = event_probability(face_cards, cards)
# Determine the probability of drawing the queen of hearts
queen_of_hearts = 1
queen_of_hearts_probability = event_probability(queen_of_hearts, cards)
# Print each probability
print(str(heart_probability) + '%')
print(str(face_card_probability) + '%')
print(str(queen_of_hearts_probability) + '%')
25.0%
23.1%
1.9%
Hasil ini mungkin tidak mengejutkan Anda: seperti yang Anda duga, peluang mendapatkan Queen of Hearts jauh lebih kecil daripada peluang mendapatkan kartu bergambar biasa atau kartu Hati.
Probabilitas dengan Kombinasi dan Permutasi
Anda telah melihat pada bagian sebelumnya bahwa menentukan ukuran ruang sampel adalah kunci untuk menghitung probabilitas. Namun, ini terkadang bisa menjadi tantangan!
Untungnya, ada cara untuk mempermudah tugas menghitung. Dua di antaranya adalah permutasi dan kombinasi. Di bagian ini, Anda akan melihat apa arti kedua konsep ini dan bagaimana Anda dapat menggunakannya untuk menghitung ukuran ruang sampel!
Permutasi
Permutasi adalah jumlah cara sebuah subset dengan ukuran tertentu dapat disusun dari suatu himpunan, umumnya tanpa pengembalian. Contohnya adalah PIN 4 digit tanpa digit yang berulang. Probabilitas tidak ada digit yang berulang dapat dihitung dengan melakukan perhitungan berikut:
$$10 \times 9 \times 8 \times 7$$.
Anda memiliki 10 angka untuk dipilih, tetapi karena Anda bekerja tanpa pengembalian, satu opsi selalu berkurang setiap kali Anda memilih angka untuk PIN 4 digit. Ini berarti saat memilih angka pertama, Anda memiliki 10 angka untuk dipilih (0 hingga 9), tetapi untuk angka kedua, Anda hanya memiliki 9 opsi, dan seterusnya.
Di tingkat yang lebih tinggi, Anda melihat bahwa paragraf sebelumnya sebenarnya mempertimbangkan dua hal: (1) jumlah angka yang dapat dipilih, dan (2) jumlah angka yang benar-benar Anda pilih. Pada contoh di atas, 10 adalah jumlah digit yang dapat Anda pilih, karena Anda mempertimbangkan semua angka antara 0 dan 9. Namun, jumlah hal yang benar-benar Anda pilih adalah 4, karena Anda memiliki PIN 4 digit.
Saat menghitung permutasi, ini berarti Anda mempertimbangkan himpunan penuh angka yang dapat dipilih, yang dalam kenyataannya adalah $$10 \times 9 \times 8 \times 7 \times 6 \times 5 \times 4 \times 3 \times 2 \times 1$$ dan Anda membagi hasil perhitungan ini dengan selisih antara jumlah angka yang dapat dipilih (10) dan jumlah angka yang benar-benar Anda pilih (4). Karena Anda mempertimbangkan probabilitas, ini berarti selisihnya adalah $$6 \times 5 \times 4 \times 3 \times 2 \times 1$$.
Catatan bahwa Anda juga dapat menuliskan hal di atas sebagai
$$10P4 = \frac{10!}{(10 - 4)!}$$
Anda akan melihat ada "10!" dan "6!" atau "10 faktorial" dan "6 faktorial" dalam persamaan, yang digunakan untuk menunjukkan bahwa semua bilangan bulat positif berurutan dari 1 hingga 10 atau 6 dikalikan bersama.
Hasil perhitungan ini adalah 5040 permutasi. Catatan bahwa ini persis sama dengan perhitungan yang Anda lakukan di atas, saat Anda mengalikan 10, 9, 8, dan 7.
Menggeneralisasi perhitungan di atas, ini berarti rumus untuk menghitung permutasi adalah sebagai berikut:
$$nPk = \frac{n!}{(n - k)!}$$
Mari berlatih dengan sebuah contoh!
Untuk mencari jumlah permutasi pocket As, dari mana Anda hanya memilih 2, Anda akan mempertimbangkan himpunan penuh As untuk dipilih (4) dan juga mempertimbangkan jumlah As yang benar-benar Anda pilih (2):
$$4P2 = \frac{4!}{(4 - 2)!}$$
Kombinasi
Anda telah melihat bahwa ketika bekerja dengan permutasi, urutan itu penting. Namun, pada kombinasi, urutan tidak penting: kombinasi merujuk pada jumlah cara sebuah subset dengan ukuran tertentu dapat diambil dari suatu himpunan.
Contohnya adalah situasi berikut saat Anda memiliki satu set kartu yang terdiri dari 52 kartu. Tiga kartu akan diambil dari set tersebut. Ada berapa banyak cara berbeda Anda dapat memilih tiga kartu ini?
Sebenarnya, ini seharusnya $$52 \times 51 \times 50$$, yang sebenarnya sama dengan rumus permutasi yang baru saja Anda gunakan! Namun, pada kombinasi, Anda tidak memperhitungkan urutan. Ini berarti jika Anda ingin mengetahui berapa banyak kombinasi yang sebenarnya Anda miliki, Anda cukup membuat semua permutasi dan membaginya dengan semua redundansi atau $$3 \times 2 \times 1$$.
Ini berarti perhitungan kombinasi Anda akan terlihat seperti ini:
$$52C3 = \frac{\frac {52!}{(52-3)!}}{3!}$$
Perhitungan ini dapat digeneralisasi ke rumus berikut:
$$nCk = \frac{nPk}{k!}$$
Di mana Anda jelas melihat bahwa pembilangnya persis sama dengan rumus permutasi yang baru saja Anda lihat, sedangkan penyebutnya adalah faktorial dari jumlah kartu yang benar-benar akan Anda pilih.
Pertimbangkan contoh lain dengan As. Ada empat As dalam satu set kartu, dan berikut semua kombinasi pocket As yang berbeda;
- As Hati / As Wajik
- As Hati / As Keriting
- As Hati / As Sekop
- As Wajik / As Keriting
- As Wajik / As Sekop
- As Keriting / As Sekop
Ada enam kombinasi pocket As. Untuk mencari jumlah kombinasi, pertama Anda harus mencari jumlah permutasi:
# Permutations Code
import math
n = 4
k = 2
# Determine permutations and print result
Permutations = math.factorial(n) / math.factorial(k)
print(Permutations)
12.0
Untuk menentukan jumlah kombinasi, cukup bagi jumlah permutasi dengan faktorial ukuran subset. Cobalah mencari jumlah kombinasi starting hand yang dapat dibagikan dalam Texas Hold’em.
$$52C2 = \frac{52P2}{2!}$$
# Combinations Code
n = 52
k = 2
# Determine Permutations
Permutations = math.factorial(n) / math.factorial(n - k)
# Determine Combinations and print result
Combinations = Permutations / math.factorial(k)
print(Combinations)
1326.0
Kejadian Independen versus Dependen
Anda telah membaca di pengantar bahwa sebuah kejadian adalah subset terdefinisi dari ruang sampel. Kejadian dapat diklasifikasikan menjadi dua kategori: dependen atau independen.
Kejadian independen adalah kejadian-kejadian yang tidak memengaruhi probabilitas kejadian lain. Dua kejadian A dan B bersifat independen jika mengetahui apakah kejadian A terjadi tidak memberi informasi tentang apakah kejadian B terjadi.
Ini benar ketika, misalnya, Anda mengambil As dari set kartu, mengembalikan kartu tersebut, mengocok set, lalu mengambil kartu lain. Probabilitas mengambil As pada pengambilan pertama sama dengan pengambilan kedua.
Kejadian dependen, kemudian, adalah kejadian-kejadian yang memengaruhi probabilitas kejadian lain.
Misalnya, Anda mengambil satu kartu dari set lalu mengambil kartu kedua tanpa mengembalikan kartu pertama. Dalam hal ini, probabilitas mengambil As pada pengambilan pertama tidak sama dengan probabilitas mengambil As pada pengambilan kedua. Setelah kartu pertama diambil, ruang sampel berkurang 1, dari 52 menjadi 51. Bergantung pada apa kartu pada pengambilan pertama, jumlah hasil kejadian juga bisa berubah. Jika kartunya adalah As, sekarang hanya tersisa 3 As untuk pengambilan kedua.
Sekarang mari pertimbangkan definisi ini secara formal. Kejadian A dan B (yang memiliki probabilitas tidak nol) independen jika dan hanya jika salah satu dari pernyataan ekuivalen berikut berlaku: $$P (A ∩ B) = P(A)P(B)$$ $$P (A|B) = P(A)$$ $$P (B|A) = P(B)$$
Atau, dengan kata lain, kejadian A dan B independen jika:
- Probabilitas kejadian A dan B terjadi sama dengan hasil kali probabilitas masing-masing kejadian terjadi.
- Probabilitas kejadian A terjadi jika kejadian B sudah terjadi sama dengan probabilitas kejadian A terjadi.
- Probabilitas kejadian B terjadi jika kejadian A sudah terjadi sama dengan probabilitas kejadian B terjadi.
Pertimbangkan contoh berikut, di mana Anda sudah mengetahui probabilitas mengambil As pada pengambilan pertama. Sekarang Anda perlu menentukan probabilitas mengambil As pada pengambilan kedua, jika kartu pertama yang diambil adalah King atau As:
# Sample Space
cards = 52
cards_drawn = 1
cards = cards - cards_drawn
# Determine the probability of drawing an Ace after drawing a King on the first draw
aces = 4
ace_probability1 = event_probability(aces, cards)
# Determine the probability of drawing an Ace after drawing an Ace on the first draw
aces_drawn = 1
aces = aces - aces_drawn
ace_probability2 = event_probability(aces, cards)
# Print each probability
print(ace_probability1)
print(ace_probability2)
7.8
5.9
Ada beberapa situasi yang umum dalam poker yang relevan dengan konsep kejadian dependen.
Tetapi sebelum Anda mulai, sedikit latar belakang diperlukan. Permainan yang dimaksud adalah Texas Hold’em. Dimainkan dengan satu set kartu standar 52 kartu, Texas Hold’em adalah varian poker paling populer. Setiap pemain dibagikan dua kartu untuk memulai tangan dan akan membuat kombinasi lima kartu terbaik dengan menggunakan dua kartu mereka dikombinasikan dengan lima kartu komunitas yang dibagikan sepanjang tangan. Kartu dibagikan dalam empat putaran:
- Pre-Flop: Setiap pemain dibagikan dua kartu, dikenal sebagai "hole cards"
- Flop: Tiga kartu komunitas dibagikan
- Turn: Satu kartu komunitas dibagikan
- River: Kartu komunitas terakhir dibagikan
Kejadian Dependen: Flush Draw
Kartu Anda

Kartu Komunitas

Anda berada di Turn dan memiliki empat kartu menuju Flush As tinggi. Flush adalah tangan poker yang kuat di mana kelima kartu memiliki jenis yang sama. Berapa probabilitas kartu komunitas terakhir, yang dikenal sebagai River, adalah Wajik?
# Sample Space
cards = 52
hole_cards = 2
turn_community_cards = 4
cards = cards - (hole_cards + turn_community_cards)
# Outcomes
diamonds = 13
diamonds_drawn = 4
# In poker, cards that complete a draw are known as "outs"
outs = diamonds - diamonds_drawn
#Determine river flush probability
river_flush_probability = event_probability(outs, cards)
print(river_flush_probability)
19.6
Kira-kira ada peluang 20% untuk menyelesaikan Flush draw Anda di River. Berikut contoh lainnya:
Kejadian Dependen: Open-Ended Straight Draw
Kartu Anda

Kartu Komunitas

Anda berada di Turn dan memiliki open-ended Straight draw. Straight adalah tangan kuat lainnya di mana ada lima kartu berurutan. Straight draw disebut open-ended karena kartu Delapan mana pun (8, 9, 10, Jack, Queen) atau kartu King mana pun (9, 10, Jack, Queen, King) akan melengkapi straight.
Berapa probabilitas kartu River melengkapi Straight?
# Sample Space
cards = 52
hole_cards = 2
turn_community_cards = 4
cards = cards - (hole_cards + turn_community_cards)
# Outcomes
eights = 4
kings = 4
outs = eights + kings
# Determine river straight probability
river_straight_probability = event_probability(outs, cards)
print(river_straight_probability)
17.4
Kira-kira ada peluang 17% untuk menyelesaikan Straight draw Anda di River.
Beberapa Kejadian
Sejauh ini, Anda hanya mempertimbangkan satu kejadian saat menghitung probabilitas, tetapi bagaimana jika Anda berurusan dengan beberapa kejadian?
Contoh beberapa kejadian adalah pertanyaan "berapa probabilitas memakan tiga kue oatmeal diikuti satu kue cokelat saat Anda memakan empat kue dari toples yang berisi dua jenis kue ini?" Memakan empat kue sebenarnya adalah empat kejadian.
Untuk menghitung probabilitas untuk beberapa kejadian, pada dasarnya Anda menentukan jumlah kejadian (dalam hal ini 4), lalu menentukan probabilitas untuk masing-masing kejadian terjadi secara terpisah dan mengalikan semua probabilitas tersebut untuk mendapatkan jawaban akhir. Dalam contoh yang dijelaskan di atas, ini akan menjadi 0,5 x 0,5 x 0,5 x 0,5 atau 0,0625.
$$P(Event A \cap Event B)=P(Event A) \times P(Event A)$$
Catatan bahwa dalam kasus ini, Anda menghitung probabilitas memakan kue oatmeal DAN kue oatmeal lain DAN kue oatmeal ketiga, DAN kue cokelat terakhir. Saat Anda mempertimbangkan kejadian yang semuanya harus terjadi, Anda mengalikan probabilitasnya.
Untuk satu set kartu remi, Anda bisa menanyakan "Berapa probabilitas mendapatkan tiga kartu Hati saat memilih tanpa pengembalian?". Saat Anda memilih tanpa pengembalian, artinya Anda memilih satu kartu namun tidak mengembalikannya, sehingga pilihan akhir Anda tidak dapat menyertakan kartu yang sama. Dalam kasus ini, perhitungan probabilitas Anda akan sebagai berikut: 13/52 x 12/51 x 11/50.
Kejadian Saling Eksklusif
Saat bekerja dengan beberapa kejadian, Anda juga mungkin memiliki kejadian yang saling eksklusif atau disjungtif: keduanya tidak dapat terjadi bersamaan. Dalam kasus seperti itu, Anda mungkin ingin menghitung probabilitas (atau union) dari salah satu dari beberapa kejadian saling eksklusif yang terjadi. Dalam kasus seperti ini, Anda tidak mengalikan probabilitas, tetapi cukup menjumlahkan probabilitas masing-masing kejadian:
$$P(Event A \cup Event B) = P(Event A) + P(Event B)$$
Kunci di sini adalah memahami bahwa komponen "ATAU" sangat penting: mengambil kartu hati ATAU kartu keriting adalah dua kejadian yang saling eksklusif. Hati adalah hati dan keriting adalah keriting. Untuk menentukan probabilitas mengambil kartu hati atau kartu keriting, tambahkan probabilitas mengambil kartu hati dengan probabilitas mengambil kartu keriting.
$$P(Heart \cup Club) = (\frac{13}{52}) + (\frac{13}{52})$$
Sekarang saatnya Anda menentukan probabilitas dari kejadian saling eksklusif berikut;
- Mengambil kartu hati atau kartu keriting;
- Mengambil As, King, atau Queen.
# Sample Space
cards = 52
# Calculate the probability of drawing a heart or a club
hearts = 13
clubs = 13
heart_or_club = event_probability(hearts, cards) + event_probability(clubs, cards)
# Calculate the probability of drawing an ace, king, or a queen
aces = 4
kings = 4
queens = 4
ace_king_or_queen = event_probability(aces, cards) + event_probability(kings, cards) + event_probability(queens, cards)
print(heart_or_club)
print(ace_king_or_queen)
50.0
23.1
Kejadian Tidak Saling Eksklusif
Anda bisa membayangkan bahwa tidak semua kejadian saling eksklusif: Mengambil kartu hati atau mengambil As adalah dua kejadian yang tidak saling eksklusif. As hati adalah sekaligus As dan hati. Ketika kejadian tidak saling eksklusif, Anda harus mengoreksi tumpang tindihnya.
$$P(Event A \cup Event B) = P(Event A) + P(Event B) - P(EventA \cup EventB)$$
Untuk menghitung probabilitas mengambil kartu hati atau As, tambahkan probabilitas mengambil kartu hati dengan probabilitas mengambil As lalu kurangi probabilitas mengambil As hati.
$$P(Heart \cup Ace) = (\frac{13}{52}) + (\frac{4}{52}) - (\frac{1}{52})$$
Hitung probabilitas dari kejadian tidak saling eksklusif berikut;
- Mengambil kartu hati atau As;
- Mengambil kartu merah atau kartu bergambar.
# Sample Space
cards = 52
# Calculate the probability of drawing a heart or an ace
hearts = 13
aces = 4
ace_of_hearts = 1
heart_or_ace = event_probability(hearts, cards) + event_probability(aces, cards) - event_probability(ace_of_hearts, cards)
# Calculate the probability of drawing a red card or a face card
red_cards = 26
face_cards = 12
red_face_cards = 6
red_or_face_cards = event_probability(red_cards, cards) + event_probability(face_cards, cards) - event_probability(red_face_cards, cards)
print(round(heart_or_ace, 1))
print(round(red_or_face_cards, 1))
30.8
61.6
Irisan Kejadian Independen
Probabilitas irisan dua kejadian independen ditentukan dengan mengalikan probabilitas masing-masing kejadian terjadi.
$$P(Event A \cap Event B) = P(Event A) \times P(Event B)$$
Jika Anda ingin mengetahui probabilitas mengambil As dari satu set kartu, mengembalikannya, mengocok set, lalu mengambil As lagi, Anda mengalikan probabilitas mengambil As dengan probabilitas mengambil As.
$$P(Ace \cap Ace) = (\frac{4}{52}) \times (\frac{4}{52})$$
# Sample Space
cards = 52
# Outcomes
aces = 4
# Probability of one ace
ace_probability = aces / cards
# Probability of two consecutive independant aces
two_aces_probability = ace_probability * ace_probability
# Two Ace Probability Percent Code
two_ace_probability_percent = two_aces_probability * 100
print(round(two_ace_probability_percent, 1))
0.6
Probabilitas mengambil dua As berturut-turut, secara independen, adalah 0,592%. Bagaimana jika kejadian kedua dependen?
Irisan Kejadian Dependen
Probabilitas irisan dua kejadian yang tidak independen (Kejadian A & Kejadian B diberikan A) ditentukan dengan mengalikan probabilitas Kejadian A terjadi dengan probabilitas Kejadian B diberikan A.
$$P(Event A \cap Event B | A) = P(Event A) \times P(Event B | A)$$
Starting hand terbaik yang dapat Anda miliki di Texas Hold’em adalah pocket As. Berapa probabilitas dibagikan dua As?
$$P(Ace \cap Ace | Ace) = (\frac{4}{52}) \times (\frac{3}{51})$$
# Sample Space first draw
cards = 52
# Outcomes first draw
aces = 4
# Probability of ace on first draw
first_ace_probability = aces / cards
# Sample Space second draw
cards = cards - 1
# Outcomes second draw
aces = aces - 1
# Probability of ace on second draw after ace on first
second_ace_probability = aces / cards
# Probability of two consecutive aces (dependent)
both_aces_probability = first_ace_probability * second_ace_probability * 100
print(both_aces_probability)
0.4524886877828055
Probabilitas mengambil dua As dependen berturut-turut adalah 0,452%. Mari lihat beberapa situasi di mana ini berperan di meja poker.
Irisan Kejadian Dependen: Flop Flush Draw
Kartu Anda

Kartu Komunitas

Ini situasi yang mirip dengan Flush draw di atas, kecuali kali ini Anda berada di flop dan masih ada dua kartu komunitas yang akan datang, bukan hanya satu. Bagaimana Anda dapat menentukan probabilitas mendapatkan Flush pada River? Pertama Anda perlu menentukan semua skenario yang mungkin;
- A) Turn Wajik, River Bukan Wajik (Menjadi Flush)
- B) Turn Bukan Wajik, River Wajik (Menjadi Flush)
- C) Turn Wajik, River Wajik (Menjadi Flush)
- D) Turn Bukan Wajik, River Bukan Wajik (Tidak Flush)
Hanya ada empat kemungkinan tersebut, dan masing-masing skenario saling eksklusif. Ini berarti jika Anda menjumlahkan probabilitas masing-masing skenario terjadi, totalnya akan 1. Dengan kata lain, salah satu dari empat skenario tersebut pasti terjadi. Anda ingin mengetahui probabilitas skenario A, B, atau C terjadi. Pendekatan paling sederhana untuk mengetahui hal ini adalah menentukan probabilitas skenario D, dan menguranginya dari 1.
# Sample Space on turn
cards = 52
hole_cards = 2
flop_community_cards = 3
cards = cards - (hole_cards + flop_community_cards)
# Outcomes
diamonds = 13
diamonds_drawn = 4
non_diamonds_drawn = 1
outs = diamonds - diamonds_drawn
turn_non_diamonds = cards - outs - non_diamonds_drawn
# Probability of not getting a diamond on the turn
no_diamond_turn_probability = turn_non_diamonds / cards
# Sample Space on river
turn_community_card = 1
cards = cards - turn_community_card
# Outcomes on river
river_non_diamonds = turn_non_diamonds - turn_community_card
# Probability of not getting a diamond on the river
no_diamond_river_probability = river_non_diamonds / cards
# Probability of not getting a flush
no_flush_probability = no_diamond_turn_probability * no_diamond_river_probability
# Probability of getting a flush
flush_probability = 1 - no_flush_probability
flush_probability_percent = flush_probability * 100
# Print probability percent rounded to one decimal place
print(round(flush_probability_percent, 1))
38.4
Sekarang mari sedikit ubah kartunya:
Kartu Anda

Kartu Komunitas

Ini situasi yang mirip dengan yang terakhir, kecuali satu perbedaan besar. Anda masih memiliki flush draw, tetapi kali ini Anda tidak memiliki As. Jika Wajik muncul di turn dan river, ada kemungkinan besar seseorang akan memiliki flush yang lebih baik. Tentukan probabilitas Wajik muncul di Turn atau River, tetapi tidak keduanya. Anda sudah memiliki probabilitas tidak mendapatkan flush.
Sekarang cari probabilitas Wajik muncul di turn dan river, tambahkan itu ke probabilitas tidak mendapatkan flush, dan kurangi dari 1.
# Sample Space on turn
cards = 52
hole_cards = 2
flop_community_cards = 3
cards = cards - (hole_cards + flop_community_cards)
# Outcomes on turn
diamonds = 13
diamonds_drawn = 4
outs = diamonds - diamonds_drawn
# Probability of diamond on turn
diamond_turn_probability = outs / cards
# Sample Space on river
turn_diamonds = 1
cards = cards - turn_diamonds
# Outcomes on river
river_diamonds = outs - turn_diamonds
# Probability of diamond on river
diamond_river_probability = river_diamonds / cards
# Probability of getting a diamond on the turn and river
two_diamonds_probability = diamond_turn_probability * diamond_river_probability
# Determine the probability of getting only one diamond by the river
one_diamond_probability = 1 - (no_flush_probability + two_diamonds_probability)
one_diamond_probability_percent = one_diamond_probability * 100
# Print probability percent rounded to one decimal place
print(round(one_diamond_probability_percent, 1))
35.1
Nilai Harapan (Expected Value)
Saat memainkan permainan seperti poker, Anda cukup peduli dengan pertanyaan seperti "berapa yang saya peroleh — atau rugi — rata-rata, jika saya berulang kali memainkan permainan ini?" Anda dapat membayangkan bahwa ini tidak berbeda untuk poker, terutama saat Anda adalah pemain poker profesional!
Sekarang, jika hasil yang mungkin dari permainan dan probabilitas terkaitnya dapat dijelaskan oleh variabel acak, maka Anda dapat menjawab pertanyaan di atas dengan menghitung nilai harapan, yang sama dengan rata-rata tertimbang dari hasil di mana setiap hasil ditimbang dengan probabilitasnya.
Atau, dengan kata lain, Anda cukup mengalikan Total Nilai dengan probabilitas menang untuk mendapatkan Nilai Harapan Anda:
$$Expected Value = Total Value \times Probability$$
Berapakah nilai harapan jika ada \$100 (Total Nilai) di pot, dan probabilitas Anda memenangkan pot adalah 0,75?
$$Expected Value = \$100 \times 0.75$$
# Initialize `pot` and `probability` variables
pot = 100
probability = 0.75
# Determine expected value
expected_value = pot * probability
print(expected_value)
75.0
Nilai harapan Anda adalah \$75. Nilai harapan adalah konsep penting dalam poker. Mari kembali ke contoh flush pertama untuk melihat cara menggunakan nilai harapan demi keuntungan Anda.
Kartu Anda

Kartu Lawan

Kartu Komunitas

-
Total Pot = \$60
-
Taruhan Lawan = \$20
Lawan Anda memutuskan untuk membantu dan menunjukkan kartunya, dan memiliki three of a kind 2. Untuk memenangkan tangan di River, Anda harus mendapatkan kartu Wajik apa pun kecuali Jack atau 2. Jack atau 2 Wajik akan memberi lawan Anda tangan yang lebih baik, yaitu full house dan four of a kind. Anda harus call \$20 untuk tetap di tangan, dan jika menang Anda mendapatkan \$60. Jika nilai harapan Anda lebih besar dari \$20 Anda sebaiknya call, jika tidak Anda sebaiknya fold.
Tentukan apakah Anda sebaiknya call taruhannya:
# Sample Space
cards = 52
hole_cards = 2
# Your opponent provided you information... use it!
opponents_hole_cards = 2
turn_community_cards = 4
cards = cards - (hole_cards + opponents_hole_cards + turn_community_cards)
# Outcomes
diamonds = 13
diamonds_drawn = 4
# You can't count the two diamonds that won't help you win
diamond_non_outs = 2
outs = diamonds - diamonds_drawn - diamond_non_outs
# Determine win probability
win_probability = outs / cards
# Determine expected value
pot = 60
ev = pot * win_probability
# Print ev and appropriate decision
call_amount = 20
if ev >= 20:
print(round(ev, 2), 'Call')
else:
print(round(ev, 2), 'Fold')
9.55 Fold
Nilai harapan Anda hanya \$9,55, yang lebih kecil dari \$20 yang perlu Anda pertaruhkan untuk mendapatkan imbalan tersebut, jadi Anda harus fold. Menentukan Nilai Harapan sangat krusial untuk dipahami di meja poker dan Bagian 2 akan membahas konsep ini lebih dalam.
Kesimpulan
Selamat, Anda telah mencapai akhir dari tutorial teori probabilitas dengan Python! Ini menutup Bagian 1 dari tutorial. Anda mempelajari beberapa konsep probabilitas inti termasuk kejadian Independen/Dependen, Permutasi/Kombinasi, Beberapa kejadian, Nilai Harapan, dan cara menghitung masing-masingnya.
Pada Bagian 2, Anda akan menerapkan konsep-konsep ini pada tangan poker nyata yang saya mainkan selama karier saya.
*Satu kartu dibagikan tertutup, dikenal sebagai kartu Burn, sebelum Flop, Turn, dan River. Karena kartu dibagikan tertutup, dan tidak ada pemain yang tahu apa itu, kartu tersebut tidak dihitung sebagai percobaan.
Lihat Tutorial Probability Distributions in Python dari DataCamp.
