Escalonamento Min-Max
Parte da seção Estatística para ML do Journey de Machine Learning da Coddy. Lição 48 de 64.
A normalização min-max dá a cada característica uma participação justa: em cada coluna, o menor valor se torna 0, o maior se torna 1, e os demais ficam entre eles.
Adicione uma pessoa de 40 anos que ganha $80,000 e, em seguida, escale os quatro:
O broadcasting faz isso em uma linha, com o menor valor e o intervalo próprios de cada coluna:
X = np.array([[25, 52000],
[61, 53000],
[26, 55000],
[40, 80000]])
lows = X.min(axis=0)
highs = X.max(axis=0)
scaled = (X - lows) / (highs - lows)Agora a idade também conta. O vizinho mais próximo do cliente 0 não é mais o cliente de 61 anos:
Um valor extremo se torna 1 e comprime os demais perto de 0, então a normalização min-max é adequada para colunas sem valores discrepantes.
Desafio
MédioUm torrefador combina cafés que são preparados de forma semelhante. Cada linha de beans representa um café: temperatura da água (C), tempo de preparo (s) e cafeína (mg). O programa lê as posições i e j; a função inicial distance(a, b) mede a distância entre duas amostras.
- Aplique a escala min-max a
beans. - Imprima
Every column from 0 to 1:e, em seguida, a tabela escalonada com 2 casas decimais. - Imprima a distância entre eles antes e depois do escalonamento, como abaixo.
Para outros três cafés, nas posições 0 e 1:
Every column from 0 to 1:
[[1. 1. 0.67]
[0.5 0.5 0. ]
[0. 0. 1. ]]
Coffees 0 and 1: 63.28 apart before scaling, 0.97 afterExperimente você mesmo
import numpy as np
# Retorna a distância entre duas amostras (de Why Scale Features)
def distance(a, b):
return np.sqrt(((a - b) ** 2).sum())
# Uma linha por café: temperatura da água em C, tempo de preparo em segundos, cafeína em mg
beans = np.array([[88, 120, 60],
[96, 300, 30],
[86, 90, 70],
[94, 240, 120],
[90, 180, 90],
[84, 60, 50]])
i = int(input())
j = int(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