Actividad 2 M2

Ejercicio Sencillo de Clasificación Supervisada

Realiza un ejercicio práctico para aplicar técnicas de clasificación supervisada en machine learning utilizando un conjunto de datos sencillo.

Este ejercicio te ayudará a comprender los pasos básicos de creación, entrenamiento y evaluación de un modelo de clasificación.

Instrucció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.

Ejercicio

  1. Crear el Conjunto de Datos: Utilizar Python para crear un pequeño conjunto de datos con dos características y una columna de clasificación.
  2. Dividir los Datos:
    • Divide el conjunto de datos en características (X) y objetivo.
  3. Entrenar un Modelo Sencillo:
    • Usa un modelo de clasificación básico, como el KNeighborsClassifier, para entrenar y predecir.
  4. Predecir con Nuevos Datos:
    • Prueba el modelo con nuevos datos y observa los resultados.

🌟 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]