Los pesos como evidencia
Parte de la sección Aprendizaje supervisado del Journey de Machine Learning de Coddy. Lección 18 de 58.
¿Qué hace que un visitante de una tienda compre? Estandariza las características, para que cada peso corresponda a una desviación estándar, y luego interpreta los pesos como evidencia:
X_scaled = StandardScaler().fit_transform(visits)
model = LogisticRegression(max_iter=1000)
model.fit(X_scaled, bought)
print(np.round(model.coef_[0], 2)) # una fila de pesosEsto imprime los pesos en el orden de las columnas:
[ 0.87 0.12 -0.3 -0.72]El signo indica la dirección: el positivo impulsa hacia la clase 1, comprar; el negativo, en sentido contrario. El tamaño indica la intensidad.
El escalado hace que los tamaños sean comparables: sin escalar, un precio en centavos tendría un peso 100 veces menor que en dólares.
Desafío
IntermedioUna aplicación de idiomas pregunta qué hábitos están relacionados con mantener una racha de 30 días o terminar un curso. learners.csv contiene seis características y ambas etiquetas; el programa lee qué etiqueta estudiar. El código inicial divide los datos y los escala.
- Ajusta un
LogisticRegressioncon las filas de entrenamiento escaladas. - Imprime cada peso, del mayor al menor (2 decimales), con su dirección.
- Imprime la evidencia más sólida, en cualquier dirección.
Para otra aplicación:
friends: 1.02, pushes toward yes
reminder_on: 0.42, pushes toward yes
age: 0.06, pushes toward yes
daily_goal_min: -0.11, pushes toward no
lessons_week1: -0.2, pushes toward no
night_owl: -0.64, pushes toward no
Strongest evidence: friendsPruébalo tú mismo
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
learners = pd.read_csv("learners.csv")
features = ["daily_goal_min", "friends", "reminder_on", "lessons_week1", "night_owl", "age"]
label = input() # kept_streak o finished_course
X_train, X_test, y_train, y_test = train_test_split(learners[features], learners[label], test_size=0.25, random_state=0)
scaler = StandardScaler()
X_train_s = scaler.fit_transform(X_train)
# 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 spam2Vecinos 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