큰 수의 법칙
Coddy Machine Learning 여정의 머신러닝을 위한 통계 섹션에 포함된 레슨. 64개 중 14번째.
동전을 10번 던져 앞면이 8번 나와도 놀랄 일이 아닙니다. 계속 던지면 앞면의 비율은 0.5에 가까워집니다:
각 지점에는 지금까지의 비율이 필요합니다. np.cumsum은 누적 합계를 구합니다. 이를 지금까지의 던진 횟수로 나눕니다:
heads = np.array([True, False, True, True])
print(np.cumsum(heads))
print(np.round(np.cumsum(heads) / np.arange(1, 5), 2))다음이 출력됩니다:
[1 1 2 3]
[1. 0.5 0.67 0.75]ax.axhline(y)는 차트에 기준선을 가로로 그립니다:
ax.plot(np.arange(1, 301), share)
ax.axhline(0.5, color="red", linestyle="--")이것이 바로 큰 수의 법칙입니다. 시도 횟수가 많을수록 확률에 가까워집니다. 20개의 샘플에서 좋은 점수를 받은 모델은 운이 좋았을 수도 있지만, 2000개에서는 그럴 가능성이 거의 없습니다.
챌린지
중급시리얼 브랜드는 상자의 20%에 장난감을 숨깁니다. 프로그램은 몇 개를 열었는지 읽고, 시작 코드에서 toys(장난감이 있으면 True)를 채우고 차트에 레이블을 붙입니다.
- 장난감의 누적 비율을 계산합니다.
- 상자 10개를 연 뒤와 전체 상자를 연 뒤의 비율을 소수점 3자리까지 출력합니다.
- 상자 번호 1부터의 값에 대해 그래프로 그리고, 0.2 위치에 검은색 점선(
":")을 추가한 뒤 표시합니다.
그 외 상자 80개에 대한 결과:
After 10 boxes: 0.1
After 80 boxes: 0.212그리고 이 차트를 그립니다. 그런 다음 Coddy가 여러분의 결과를 설명합니다.
직접 해보기
import numpy as np
import matplotlib.pyplot as plt
boxes = int(input())
# 아래 줄은 변경하지 마세요
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")
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
머신러닝을 위한 통계의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러