Este ejercicio te ayudará a comprender los pasos básicos de creación, entrenamiento y evaluación de un modelo de clasificación.
Utiliza un conjunto de datos sencillo y pequeño que crearás en Python para entrenar y evaluar un modelo de clasificación utilizando scikit-learn.
🌟 Prueba este código en Google Colab
import pandas as pd # Importar pandas: Se importa la librería pandas para trabajar con datos estructurados.
from sklearn.neighbors import KNeighborsClassifier
data = {
'altura': [150, 160, 170, 180, 190],
'peso': [50, 60, 70, 80, 90],
'clase': [0, 0, 1, 1, 1]}
# Crear un DataFrame: Se crea un DataFrame de pandas con los datos de altura, peso y clase.
df = pd.DataFrame(data)
# Separar características y etiquetas: Se separan las características (x, altura y peso) de la etiqueta a predecir (y, clase).
x = df[['altura', 'peso']]
y = df['clase']
# Crear un modelo KNN: Se crea un modelo KNN con 3 vecinos más cercanos.
model = KNeighborsClassifier(n_neighbors=3)
# Entrenar el modelo: Se entrena el modelo con los datos de entrenamiento (x, y).
model.fit(x, y)
# Hacer una predicción: Se hace una predicción para un nuevo individuo con altura 175 y peso 75.
nuevos_datos = pd.DataFrame([[175, 75]], columns=['altura', 'peso'])
# nuevos_datos = [[175, 75]] # El mensaje genera el error "X does not have valid feature names, but KNeighborsClassifier was fitted with feature names"
# Esto indica que el modelo KNN fue entrenado con un DataFrame que tenía nombres de columnas (características), pero al momento de hacer una nueva predicción,
# los datos de entrada (nuevos_datos) no tienen esos nombres. Esto genera una inconsistencia y el modelo no sabe cómo interpretar los datos.
prediccion = model.predict(nuevos_datos)
print("Predicción:", prediccion)
# Salida: [1]