Menu
CoddyTech

Математическое ожидание

Часть раздела Статистика для машинного обучения путешествия по Machine Learning на Coddy. Урок 16 из 64.

Розыгрыш: 70% билетов ничего не выигрывают, 25% выигрывают 5 долларов, 5% выигрывают 20. Сколько стоит один билет?

Три столбца для призов в розыгрыше: 0, 5 и 20 долларов, с вероятностями 0.7, 0.25 и 0.05. Столбцы стоят на балке, как на качелях, уравновешенной на треугольнике в точке 2.25 — ожидаемом значении

Умножьте каждый приз на вероятность его выигрыша и сложите результаты: математическое ожидание, точка равновесия диаграммы:

prizes = np.array([0, 5, 20])
chances = np.array([0.7, 0.25, 0.05])
print((prizes * chances).sum())

Это выводит 2.25 — долгосрочное среднее, хотя ни один билет не приносит такую сумму. rng.choice с p= выбирает билеты с указанными вероятностями:

rng = np.random.default_rng(1)
tickets = rng.choice(prizes, size=10000, p=chances)
print(tickets.mean())

Это выводит 2.298. При цене 3 доллара покупатель теряет 0.75 доллара за билет. Средняя ошибка модели на новых данных — это тоже ожидаемое значение.

challenge icon

Задание

Средне

Призовое колесо на ярмарке выплачивает токены, указанные в prizes, а для каждой зоны задана вероятность из chances. В стартовом коде колесо прокрутили 4000 раз и сохранили результаты в spins; программа считывает цену одного прокручивания.

  1. Выведи ожидаемый приз, а затем среднее значение по симуляции, оба числа — с точностью до 2 знаков после запятой.
  2. Выведи, получает игрок прибыль или теряет деньги в расчёте на одно прокручивание в долгосрочной перспективе, и сколько.

Для другого колеса и цены 1.5:

Expected prize: 1.1 tokens
Simulated average: 1.08 tokens
A player loses 0.4 tokens a spin

Попробуйте сами

import numpy as np

price = float(input())

# Приз в жетонах для каждого сектора колеса и вероятность его выпадения
prizes = np.array([0, 1, 4, 10])
chances = np.array([0.5, 0.3, 0.15, 0.05])

# Не изменяйте строки ниже: 4000 смоделированных вращений
rng = np.random.default_rng(9)
spins = rng.choice(prizes, size=4000, p=chances)

# Напишите свой код ниже
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Статистика для машинного обучения

Потренируйтесь самостоятельно: Онлайн-компилятор Python