Codificación one-hot
Parte de la sección Estadística para ML del Journey de Machine Learning de Coddy. Lección 53 de 64.
Los instrumentos no tienen un orden: si se numeran como 1, 2, 3, el piano contaría como superior a la batería. La codificación one-hot asigna a cada categoría su propia columna de 0/1:
pd.get_dummies lo hace, y dtype=int solicita 1 y 0 en lugar de True y 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)Esto 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 0Las nuevas columnas se añaden al final, una por cada valor en orden alfabético. El costo es el ancho: 500 valores diferentes añadirían 500 columnas.
Desafío
IntermedioUn sitio de vacaciones muestra cabañas en cabins.csv. El programa lee el nombre de una columna, area o heat. El código inicial la convierte en números para correlacionarlos con el precio, pero ninguna de las dos columnas tiene un orden: esa r es inventada.
- Reemplaza sus líneas: codifica la columna con one-hot (0 y 1).
- Imprime en cuántas columnas se convirtió y, después, cada columna nueva con su recuento de 1.
Para cinco cabañas y la entrada heat:
heat became 2 columns:
heat_gas: 3 cabins
heat_wood: 2 cabinsPruébalo tú mismo
import pandas as pd
cabins = pd.read_csv("cabins.csv")
column = input()
# Escribe tu código a continuación
# Estas líneas asignan números a las zonas y los tipos de calefacción, que no tienen un orden: reemplázalas
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 lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Estadística para ML
1Centro y dispersión
Media y medianaPercentiles y cuartilesVarianza y desviación estándar¿Muestra o población?El valor más frecuenteRepaso: tiempos de entrega4Muestras y poblaciones
Población y muestraLas medias muestrales varíanLa distribución muestralMuestras más grandes, menos ruidoRepaso: Encuestar a un pueblo7Líneas de tendencia
ResiduosAjuste por mínimos cuadradosTrazar el ajustePredecir con una línea¿Qué tan bueno es el ajuste?Repaso: horas de práctica10Codificación de categorías
Categorías como númerosCodificación one-hotAgrupación de números en intervalosRepaso: anuncios de autos2Distribuciones
Histogramas de densidadFormas de los datosCurva normalRegla del 68-95-99,7Puntuaciones zRepaso: duración de la batería5Valores atípicos
Diagramas de cajaLa regla del RICLa regla del valor ZTratamiento de valores atípicosRepaso: fallos de los sensores3Probabilidad mediante simulación
La probabilidad como frecuenciaLa ley de los grandes númerosSuma de dadosValor esperadoProbabilidad condicionalRepaso: probabilidades del puesto de dados6Relaciones
Lectura de diagramas de dispersiónCorrelaciónMatriz de correlaciónMapas de calor de correlaciónCorrelación no es causalidadRepaso: helado y sol9Escalado de características
Por qué escalar las característicasEscalado mín-máxEstandarizaciónStandardScalerRepaso: compañeros de escaladaPractica por tu cuenta: Compilador de Python online