Menu
CoddyTech

Varias características

Parte de la sección Aprendizaje supervisado del Journey de Machine Learning de Coddy. Lección 12 de 58.

El precio de una casa depende de algo más que su tamaño: un largo trayecto a pie hasta la estación lo reduce. Al aprender de ambos factores, un modelo traza líneas paralelas:

Diez casas representadas como puntos, precio frente a superficie: las casas cerca de la estación en azul y las que están lejos en cuadrados naranjas. Dos líneas paralelas del modelo, para un trayecto a pie de 5 y 25 minutos; la línea de 25 minutos queda 102 mil dólares más abajo para cualquier superficie

En el código, X obtiene ambas columnas y coef_ un peso por característica:

X = houses[["area_m2", "minutes_walk"]]
model = LinearRegression()
model.fit(X, houses["price"])
print(np.round(model.coef_, 1))

Esto imprime:

[ 2.6 -5.1]

Los pesos siguen las columnas de X. Cada m² adicional suma 2.6 mil dólares; cada minuto adicional de caminata resta 5.1 mil, manteniendo constante la otra característica.

La unidad de un peso es la cantidad objetivo por unidad de su característica: miles por m², por minuto.

challenge icon

Desafío

Intermedio

Un servicio de catering calcula el precio de los eventos nuevos a partir de 40 eventos anteriores en events.csv: guests, courses, months_ahead (con cuánta antelación se reservó) y cost en dólares. El código inicial lee un evento nuevo en new_event.

  1. Ajusta una LinearRegression del costo en función de las features.
  2. Para cada característica, imprime cuánto añade o descuenta una unidad más (2 decimales).
  3. Imprime el presupuesto del evento nuevo (2 decimales).

Para otro servicio de catering:

Each extra guest adds 41.5 dollars
Each extra course adds 198.25 dollars
Each extra month booked ahead takes off 22.8 dollars
Quote: 4312.6 dollars

Pruébalo tú mismo

import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression

# Una fila por cada evento anterior: invitados, platos, meses de antelación de la reserva, costo en dólares
events = pd.read_csv("events.csv")
features = ["guests", "courses", "months_ahead"]
units = ["guest", "course", "month booked ahead"]
# El nuevo evento, como una tabla de una fila
guests = int(input())
courses = int(input())
months = int(input())
new_event = pd.DataFrame({"guests": [guests], "courses": [courses], "months_ahead": [months]})

# 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