Menu
CoddyTech

Ajustar y predecir

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

Cada modelo de scikit-learn funciona con dos llamadas. fit estudia las filas de entrenamiento con sus etiquetas; predict etiqueta filas que el modelo nunca ha visto:

Un diagrama: seis mascotas, X_train con el peso y la longitud de las orejas junto a y_train, tres gatos y tres perros, pasan por fit para llegar a un modelo. Dos mascotas nuevas, X_new, pasan por predict, usando el modelo, y salen como gato y perro

El modelo de la primera lección de este recorrido es k vecinos más cercanos: etiqueta una fila como las filas de entrenamiento más cercanas a ella. Mascotas según su peso (kg) y la longitud de sus orejas (cm):

from sklearn.neighbors import KNeighborsClassifier

X_train = np.array([[4, 6], [5, 7], [3, 5], [30, 10], [25, 12], [35, 11]])
y_train = np.array(["cat", "cat", "cat", "dog", "dog", "dog"])
model = KNeighborsClassifier()
model.fit(X_train, y_train)
print(model.predict([[6, 6], [28, 11]]))

Esto imprime ['cat' 'dog']. Las filas nuevas se agregan como una tabla, una fila por mascota.

Crear, ajustar, predecir: todos los modelos de esta sección siguen estos tres pasos.

challenge icon

Desafío

Fácil

La aplicación de un club de observación de aves identifica las aves por su envergadura y peso. El código inicial divide el archivo birds.csv del club y lee las aves de esta noche en la tabla spotted.

  1. Crea un modelo de k vecinos más cercanos y ajústalo con las aves de entrenamiento.
  2. Predice todas las aves avistadas en una sola llamada.
  3. Imprime una línea por ave, como se muestra a continuación.

Para tres aves en otra salida:

Bird 1: sparrow
Bird 2: blackbird
Bird 3: robin

Pruébalo tú mismo

import pandas as pd
from sklearn.model_selection import train_test_split

# Una fila por cada ave que el club ha identificado: envergadura en cm, peso en gramos
birds = pd.read_csv("birds.csv")
X = birds[["wingspan_cm", "weight_g"]]
y = birds["species"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)

# Paseo de esta noche: cuántas aves se observaron y, después, la envergadura y el peso de cada una
count = int(input())
spans = []
weights = []
for i in range(count):
    spans.append(float(input()))
    weights.append(float(input()))
spotted = pd.DataFrame({"wingspan_cm": spans, "weight_g": weights})

# 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