A regra do Z-score
Parte da seção Estatística para ML do Journey de Machine Learning da Coddy. Lição 26 de 64.
Uma fazenda pesou 300 ovos e depois digitou dois à mão: 6.2 g e 94.6 g, ambos erros de digitação. Seus escores z (distâncias em relação à média, em desvios padrão) os denunciam:
np.abs remove os sinais de menos, então uma comparação detecta os dois lados:
rng = np.random.default_rng(3)
eggs = np.concatenate([rng.normal(60, 4, size=300), np.array([6.2, 94.6])])
z = (eggs - eggs.mean()) / eggs.std()
print(np.abs(np.array([-4, 2, -1])))
print(eggs[np.abs(z) > 3])Isso imprime:
[4 2 1]
[ 6.2 94.6]Em dados com formato de sino, 99,7% dos valores estão dentro de 3 desvios padrão, então np.abs(z) > 3 sinaliza os valores raros que devem ser verificados antes do treinamento.
Mas um valor atípico aumenta o desvio padrão usado para medi-lo, então amostras pequenas o ocultam: use a regra do IQR nesse caso.
Desafio
MédioA balança de uma padaria pesou 250 pães em loaves, e mais 3 foram digitados manualmente. O programa lê um limite.
- Calcule o z-score de cada pão usando
.mean()e.std()do array. - Na ordem das posições, imprima cada pão cujo z-score esteja a uma distância de 0 maior que o limite: sua posição, peso (1 casa decimal) e z-score (2 casas decimais).
- Imprima quantos você listou.
Para outro dia e o limite 3:
Loaf 200: 702.5 g, z = -5.38
Loaf 201: 889.3 g, z = 4.91
Loaves to re-weigh: 2Experimente você mesmo
import numpy as np
# Não altere as linhas abaixo: 250 pães pesados pela balança, seguidos de 3 pesos digitados manualmente
rng = np.random.default_rng(25)
loaves = np.concatenate([rng.normal(800, 15, size=250), np.array([731.4, 868.9, 912.3])])
cutoff = float(input())
# Escreva seu código abaixo
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
1Centro e dispersão
Média e medianaPercentis e quartisVariância e desvio padrãoAmostra ou população?O valor mais frequenteRevisão: tempos de entrega4Amostras e Populações
População e AmostraAs médias amostrais variamA distribuição amostralAmostras maiores, menos ruídoRevisão: pesquisa de opinião em uma cidade7Linhas de tendência
ResíduosAjuste por mínimos quadradosTraçando o ajusteFazendo previsões com uma linhaQuão bom é o ajuste?Revisão: horas de prática10Codificação de Categorias
Categorias como NúmerosCodificação One-HotAgrupamento de Números em FaixasRecapitulação: Anúncios de Carros2Distribuições
Histogramas de densidadeFormatos dos dadosA curva normalA regra 68-95-99,7Escores ZRecapitulando: duração da bateria5Valores atípicos
Diagramas de caixaA regra do IQRA regra do Z-scoreComo lidar com valores atípicosRevisão: falhas nos sensores8Comparando grupos
Gráficos de caixa por grupoDiferença entre médiasPode ser acaso?Valores-pO teste tRevisão: teste A/B11Explorando um conjunto de dados
Um primeiro olharTodos os atributos de uma vezAtributos em relação ao rótuloOs dois melhores atributosRevisão: dados de diabetes3Probabilidade por Simulação
Probabilidade como frequênciaA Lei dos Grandes NúmerosSomas de dadosValor esperadoProbabilidade condicionalRevisão: chances na barraca de dados6Relações
Lendo gráficos de dispersãoCorrelaçãoMatriz de correlaçãoMapas de calor de correlaçãoCorrelação não é causalidadeRevisão: sorvete e sol9Escalonamento de Recursos
Por que escalar os recursosEscalonamento Min-MaxPadronizaçãoStandardScalerRevisão: Parceiros de escaladaPratique por conta própria: Compilador de Python online