Menu
CoddyTech

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:

Barras horizontales de cuatro pesos estandarizados. Hacia la compra, en azul: pages_viewed 0.87, minutes 0.12. En dirección opuesta a la compra, en naranja: from_ad -0.30, price_seen -0.72

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 pesos

Esto 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.

challenge icon

Desafío

Intermedio

Una 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.

  1. Ajusta un LogisticRegression con las filas de entrenamiento escaladas.
  2. Imprime cada peso, del mayor al menor (2 decimales), con su dirección.
  3. 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: friends

Prué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
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Aprendizaje supervisado

Practica por tu cuenta: Compilador de Python online