Menu
CoddyTech

Somas de dados

Parte da seção Estatística para ML do Journey de Machine Learning da Coddy. Lição 15 de 64.

Jogue dois dados e some os resultados: o 7 aparece seis vezes mais do que o 2. Conte os pares de faces:

Uma grade 6 por 6 com as somas de dois dados, o primeiro dado na lateral e o segundo no topo. As seis células que resultam em 7 vão de um canto a outro e estão sombreadas; apenas uma célula resulta em 2

Uma simulação confirma isso. Some os resultados dos dados, um por um, e depois conte cada total; value_counts lista primeiro os mais comuns:

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))

Isso imprime:

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

ax.bar(counts.index, counts) desenha a tenda inteira:

Um gráfico de barras de 3600 lançamentos de dois dados: as barras sobem de cerca de 100 em um total de 2 até um pico de cerca de 600 em 7 e, em seguida, caem novamente para cerca de 100 em 12

Um gráfico de barras como este é seu primeiro olhar para qualquer rótulo: seus valores raros são aqueles que o modelo mal conseguirá aprender.

challenge icon

Desafio

Médio

Em um jogo de RPG, o dano é a soma de dois dados de quatro lados, cada um com valores de 1 a 4. O programa lê quantos ataques ocorreram; o código inicial armazena os resultados dos lançamentos em first e second e rotula o gráfico.

  1. Conte cada total de dano.
  2. Imprima o dano mais provável e sua proporção dos ataques, com 3 casas decimais.
  3. Desenhe as contagens como barras, uma por total, e mostre-as.

Para 16 ataques, poucos demais para confiar:

Most likely damage: 6, share 0.312

Um gráfico de barras intitulado Damage Rolls para 16 ataques: barras em 3, 5, 6, 7 e 8, a mais alta em 6 com 5 lançamentos

Então, Coddy descreve seu gráfico. Com mais ataques, o pico se estabiliza.

Experimente você mesmo

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

rolls = int(input())

# Não altere as linhas abaixo
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")

# Escreva seu código abaixo
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Estatística para ML

Pratique por conta própria: Compilador de Python online