Menu
CoddyTech

Zarların Toplamı

Coddy'nin Machine Learning Journey'sinin Makine Öğrenimi için İstatistik bölümünün bir parçası. Ders 15 / 64.

İki zar atıp sonuçlarını toplayın: 7, 2'den altı kat daha sık gelir. Yüz çiftlerini sayın:

İki zarın toplamlarını gösteren 6'ya 6'lık bir tablo; ilk zar yanda aşağı doğru, ikinci zar üstte yatay olarak sıralanmıştır. 7 eden altı hücre köşeden köşeye uzanır ve gölgelendirilmiştir; yalnızca bir hücre 2 eder

Bir benzetim de aynı sonucu verir. Zar atışlarını tek tek ekleyin, ardından her toplamı sayın; value_counts en yaygın olanları ilk sırada listeler:

rng = np.random.default_rng(2)
first = rng.integers(1, 7, size=3600)
second = rng.integers(1, 7, size=3600)
counts = pd.Series(first + second).value_counts()
print(counts.head(3))

Bu, şunu yazdırır:

7    605
6    522
8    443
Name: count, dtype: int64

ax.bar(counts.index, counts) tüm çadır şeklini çizer:

İki zarın 3600 atışını gösteren bir çubuk grafik: çubuklar toplam 2'de yaklaşık 100'den yükselerek 7'de yaklaşık 600 ile zirve yapar, ardından 12'de yaklaşık 100'e kadar düşer

Bunun gibi bir çubuk grafik, herhangi bir etikete ilk bakışınızdır: nadir değerleri, bir modelin neredeyse hiç öğrenemeyeceği değerlerdir.

challenge icon

Görev

Orta

Bir rol yapma oyununda hasar, her biri 1 ile 4 arasında değer alan iki dört yüzlü zarın toplamıdır. Program kaç saldırı yapıldığını okur; başlangıç kodu zar atışlarını first ve second değişkenlerine kaydeder ve grafiği etiketler.

  1. Her hasar toplamının sayısını bul.
  2. En olası hasarı ve saldırıların içindeki payını 3 ondalık basamakla yazdır.
  3. Sayıları, her toplam için bir çubuk olacak şekilde çiz ve göster.

Güvenmek için çok az olan 16 saldırıda:

Most likely damage: 6, share 0.312

16 saldırı için Damage Rolls başlıklı bir çubuk grafik: 3, 5, 6, 7 ve 8 değerlerinde çubuklar; en yüksek çubuk 6 değerinde ve 5 zar atışını gösteriyor

Ardından Coddy grafiğini açıklar. Daha fazla saldırıyla tepe noktası sabitlenir.

Kendin dene

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

rolls = int(input())

# Aşağıdaki satırları değiştirmeyin
rng = np.random.default_rng(4)
first = rng.integers(1, 5, size=rolls)
second = rng.integers(1, 5, size=rolls)

fig, ax = plt.subplots()
ax.set_title("Damage Rolls")
ax.set_xlabel("Damage")
ax.set_ylabel("Rolls")

# Kodunuzu aşağıya yazın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Makine Öğrenimi için İstatistik bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi