Menu
CoddyTech

Variância e desvio padrão

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

.std() é a distância típica em relação à média. Aqui ela é calculada manualmente, para cinco doses de espresso:

Cinco doses de espresso representadas como pontos ao redor de uma linha laranja da média em 26 segundos. Uma haste cinza liga cada ponto à linha, com seu desvio indicado: -2, +1, -1, +4 e -2

Cada diferença em relação à média é um desvio. Elas se cancelam e resultam em 0, então eleve-as ao quadrado e depois calcule a média: a variância.

shots = np.array([24, 27, 25, 30, 24])
deviations = shots - shots.mean()
variance = (deviations ** 2).mean()
print(deviations)
print(variance, np.round(np.sqrt(variance), 2))

Isso imprime:

[-2.  1. -1.  4. -2.]
5.2 2.28

Sua raiz quadrada, o desvio padrão, transforma segundos ao quadrado novamente em segundos: 2.28. np.var(a) e np.std(a) fazem cada um isso em uma chamada.

Uma característica com desvio padrão igual a 0 nunca muda, então não informa nada ao modelo.

challenge icon

Desafio

Fácil

O controle de qualidade verifica com que uniformidade uma máquina enche garrafas de suco. O código inicial lê seis volumes em ml e imprime o que spread_by_hand(a) retorna, ao lado de np.std. Complete essa função para que ela retorne:

  1. a variância: a média dos desvios quadráticos em relação à média de a,
  2. o desvio padrão, sua raiz quadrada.

Para os volumes 1004, 996, 1011, 993, 1002 e 998:

Variance: 34.56 ml squared
Std: 5.88 ml
Same as np.std: True

Experimente você mesmo

import numpy as np

values = []
for i in range(6):
    values.append(int(input()))
volumes = np.array(values)


# Retorna a variância e o desvio padrão do array a
def spread_by_hand(a):
    # Escreva seu código aqui e, em seguida, retorne os dois valores no lugar de 0, 0
    return 0, 0


# Não altere as linhas abaixo
variance, std = spread_by_hand(volumes)
print(f"Variance: {np.round(variance, 2)} ml squared")
print(f"Std: {np.round(std, 2)} ml")
print("Same as np.std:", np.round(std, 2) == np.round(np.std(volumes), 2))
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