Imputación en una canalización
Parte de la sección Aprendizaje supervisado del Journey de Machine Learning de Coddy. Lección 47 de 58.
Los registros reales tienen huecos, y la mayoría de los modelos no los aceptan. SimpleImputer rellena cada hueco con la media, la mediana o el valor más frecuente de su columna.
Rellena antes de dividir, y las filas de prueba ayudan a elegir ese valor: una filtración. Siete profundidades de inmersión y un espacio vacío:
En una canalización, fit aprende los valores de relleno solo a partir de las filas de entrenamiento:
from sklearn.impute import SimpleImputer
pipe = make_pipeline(SimpleImputer(strategy="median"), StandardScaler(), model)
pipe.fit(X_train, y_train)
print(pipe[0].statistics_) # los valores de relleno del primer pasoPara un registro de inmersión (profundidad, minutos, temperatura del agua), esto imprime:
[19. 44. 21.]También con palabras, los pasos de los números se convierten en un carril del ColumnTransformer:
lane = make_pipeline(SimpleImputer(strategy="median"), StandardScaler())
("numbers", lane, ["depth_m", "minutes"])Desafío
IntermedioUn servicio forestal predice qué rayos provocan incendios, pero faltan algunas mediciones. El código inicial divide wildfire.csv y lee una estrategia, mean o median.
- Ajusta una canalización con un imputador que use esa estrategia, un escalador y una regresión logística. Imprime su precisión de prueba.
- Para cada columna, imprime el valor de relleno de la canalización y el que se obtendría usando todas las filas de
X, con 1 decimal.
Otro bosque, con median:
Test accuracy: 0.840
humidity_pct: fill 46.0, all rows would give 46.0
wind_kmh: fill 29.0, all rows would give 32.0
temp_c: fill 25.0, all rows would give 26.0
days_without_rain: fill 23.0, all rows would give 23.0Dondequiera que los dos valores difieran, rellenar antes de la división habría permitido que las filas de prueba influyeran en los datos de entrenamiento.
Pruébalo tú mismo
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline
# Rayos en un bosque seco: ¿alguno provocó un incendio (1) o no (0)?
# Faltan algunas mediciones meteorológicas.
strikes = pd.read_csv("wildfire.csv")
columns = ["humidity_pct", "wind_kmh", "temp_c", "days_without_rain"]
X = strikes[columns]
y = strikes["fire"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
strategy = input()
# Escribe tu código a continuación
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Aprendizaje supervisado
1Tu primer modelo
Aprender de ejemplosConjuntos de entrenamiento y pruebaAjustar y predecirEvaluar un modeloRepaso: clasificador de semillas4Regresión logística
Predicciones de sí o noEl umbral de decisiónLos pesos como evidenciaVarias clasesRepaso: filtro de spam7Sobreajuste
Subajuste y sobreajusteCurvas de aprendizajeRegularizaciónConjuntos de validaciónRepaso: Ajustar un árbol10Canalizaciones
CanalizacionesColumnas mixtasImputación en una canalizaciónAjuste de una canalizaciónRepaso: limpiar y predecir2Vecinos más cercanos
Cómo decide k-NNCómo elegir kFronteras de decisiónEscalado para los vecinosRepaso: vecinos del vino5Medición de clasificadores
La matriz de confusiónPrecisión y exhaustividadLa puntuación F1Clases desequilibradasCurvas ROCRepaso: prueba de detección8Validación cruzada
Validación K-FoldComparación justa de modelosBúsqueda en cuadrículaRepaso: reparaciones de monopatines11Proyecto: especies de pingüinos
Conoce a los pingüinosPrepara los datosElige un modeloAjusta el modelo ganadorPublica el modelo3Regresión lineal
Predicción de númerosVarias característicasMedición de erroresGráficos de residuosRepaso: alquiler de bicicletas6Árboles de decisión
Los árboles hacen preguntasLeer un árbolProfundidad del árbolImportancia de las característicasRepaso: decisiones de préstamosPractica por tu cuenta: Compilador de Python online