Menu
CoddyTech

Büyük Sayılar Yasası

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

Bir parayı 10 kez atınca 8 kez tura gelmesi şaşırtıcı değildir. Atmaya devam ettikçe tura gelme oranı yavaşça 0.5'e yaklaşır:

300 atış boyunca tura gelme oranını gösteren çizgi grafik: ilk atışlarda 0.3 ile 1 arasında dalgalanır, ardından olasılık 0.5'teki kesikli kırmızı çizgiye yaklaşır

Her nokta, o ana kadarki oranı gerektirir. np.cumsum, kümülatif toplamı verir; bunu o ana kadarki atış sayısına bölün:

heads = np.array([True, False, True, True])
print(np.cumsum(heads))
print(np.round(np.cumsum(heads) / np.arange(1, 5), 2))

Bu, şunu yazdırır:

[1 1 2 3]
[1.   0.5  0.67 0.75]

ax.axhline(y) referans çizgisini grafik boyunca yatay olarak çizer:

ax.plot(np.arange(1, 301), share)
ax.axhline(0.5, color="red", linestyle="--")

Bu, büyük sayılar yasasıdır: daha fazla deneme, olasılığa daha yakın sonuç demektir. 20 örnekte iyi puan alan bir model şanslı olabilir; 2000 örnekte ise pek olası değildir.

challenge icon

Görev

Orta

Bir tahıl markası, kutuların %20'sine oyuncak koyuyor. Program açılan kutu sayısını okur; başlangıç kodu toys dizisini (oyuncak varsa True) doldurur ve grafiği etiketler.

  1. Oyuncakların birikimli oranını hesapla.
  2. 10 kutudan sonra ve tüm kutular açıldıktan sonra bu oranı 3 ondalık basamakla yazdır.
  3. 1'den başlayan kutu numaralarına göre grafiğini çiz, 0.2'de siyah noktalı bir çizgi (":") ekle ve grafiği göster.

Diğer 80 kutu için:

After 10 boxes: 0.1
After 80 boxes: 0.212

ve bu grafiği çizer. Ardından Coddy seninkini açıklar.

Toys in Cereal Boxes başlıklı bir grafik: 80 kutu boyunca birikimli oran 8 kutu boyunca 0'da kalır, dalgalanır ve ardından 0.2'deki siyah noktalı çizginin yakınına yerleşir

Kendin dene

import numpy as np
import matplotlib.pyplot as plt

boxes = int(input())

# Aşağıdaki satırları değiştirmeyin
rng = np.random.default_rng(25)
toys = rng.random(boxes) < 0.2

fig, ax = plt.subplots()
ax.set_title("Toys in Cereal Boxes")
ax.set_xlabel("Boxes opened")
ax.set_ylabel("Share with a toy")

# 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