Repaso: limpiar y predecir
Parte de la sección Aprendizaje supervisado del Journey de Machine Learning de Coddy. Lección 49 de 58.
Desafío
Intermedio¿Qué campistas volverán? camp.csv combina palabras, números y valores faltantes; el código inicial los separa y lee los datos de un campista.
- Construye la canalización completa del capítulo: codifica
cabinyactivitycon one-hot encoding, crea una etapa para los números que rellene los valores faltantes con medianas y luego los escale, y termina con regresión logística. - Imprime su precisión de validación cruzada de 5 particiones en las filas de entrenamiento, la media y la desviación estándar.
- Ajústala con las filas de entrenamiento; imprime la precisión de prueba y la probabilidad de que el campista vuelva.
Otro campamento, campista 10, lakeside, archery, 21, -, 4:
CV accuracy: mean 0.707, std 0.065
Test accuracy: 0.740
Chance of coming back: 0.91El guion indica una calificación faltante: tu canalización la rellena como cualquier otro valor faltante.
Pruébalo tú mismo
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.compose import ColumnTransformer
from sklearn.impute import SimpleImputer
from sklearn.preprocessing import OneHotEncoder, StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline
# Los campistas del verano pasado: ¿volvieron este año (1) o no (0)?
campers = pd.read_csv("camp.csv")
X = campers.drop(columns="came_back")
y = campers["came_back"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
# Un campista nuevo, una respuesta por línea; un guion (-) indica que falta un número
answers = []
for i in range(6):
answers.append(input())
numbers = []
for i in [0, 3, 4, 5]:
if answers[i] == "-":
numbers.append(np.nan)
else:
numbers.append(float(answers[i]))
camper = pd.DataFrame({"age": [numbers[0]], "cabin": [answers[1]], "activity": [answers[2]],
"nights": [numbers[1]], "rating": [numbers[2]], "friends_made": [numbers[3]]})
# Escribe tu código a continuación
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