Codificação One-Hot
Parte da seção Estatística para ML do Journey de Machine Learning da Coddy. Lição 53 de 64.
Os instrumentos não têm uma ordem: numerados como 1, 2, 3, o piano seria considerado maior que a bateria. A codificação one-hot dá a cada categoria sua própria coluna de 0/1:
pd.get_dummies faz isso, e dtype=int solicita 1 e 0 em vez de True e False:
pupils = pd.DataFrame({"instrument": ["piano", "drums", "piano", "cello"],
"weeks": [4, 3, 6, 10]})
encoded = pd.get_dummies(pupils, columns=["instrument"], dtype=int)
print(encoded)Isso imprime:
weeks instrument_cello instrument_drums instrument_piano
0 4 0 0 1
1 3 0 1 0
2 6 0 0 1
3 10 1 0 0As novas colunas são adicionadas ao final, uma para cada valor em ordem alfabética. O custo é a largura: 500 valores diferentes adicionariam 500 colunas.
Desafio
MédioUm site de férias lista cabanas em cabins.csv. O programa lê o nome de uma coluna, area ou heat. O código inicial atribui números a ela para correlacioná-la com o preço, mas nenhuma das colunas tem uma ordem: esse r é inventado.
- Substitua suas linhas: codifique a coluna em one-hot (0 e 1).
- Imprima quantas colunas ela se tornou e, em seguida, cada nova coluna com sua contagem de 1s.
Para cinco cabanas e a entrada heat:
heat became 2 columns:
heat_gas: 3 cabins
heat_wood: 2 cabinsExperimente você mesmo
import pandas as pd
cabins = pd.read_csv("cabins.csv")
column = input()
# Escreva seu código abaixo
# Estas linhas atribuem números às áreas e aos tipos de aquecimento, criando uma ordem que eles não têm: substitua-as
numbers = {"coast": 1, "hills": 2, "lake": 3, "woods": 4, "gas": 1, "solar": 2, "wood": 3}
cabins[column] = cabins[column].map(numbers)
print(f"{column} against price: r = {round(cabins[column].corr(cabins['price']), 2)}")
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