Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Manos a la obra: construyendo un clasificador con el dataset Iris

# ==========================================
# Clasificación de flores con el dataset Iris
# Aprendizaje Supervisado
# ==========================================

# 1. Importar las librerías necesarias

import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.model_selection import cross_val_score
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score

# 2. Cargar el dataset Iris

iris = load_iris()

# Crear un DataFrame con las características
df = pd.DataFrame(iris.data, columns=iris.feature_names)

# Agregar la columna con la especie
df["especie"] = iris.target

# Mostrar las primeras filas
print("Primeras filas del dataset:")
display(df.head())

# ==========================================
# 3. Preprocesamiento de datos
# ==========================================

# Variables independientes (X)
X = iris.data

# Variable dependiente (y)
y = iris.target

# Dividir datos en entrenamiento y prueba
X_train, X_test, y_train, y_test = train_test_split(
    X,
    y,
    test_size=0.30,
    random_state=42
)

# ==========================================
# 4. Entrenamiento del modelo
# ==========================================

modelo = DecisionTreeClassifier(random_state=42)

modelo.fit(X_train, y_train)

# ==========================================
# 5. Evaluación del modelo
# ==========================================

predicciones = modelo.predict(X_test)

precision = accuracy_score(y_test, predicciones)

print(f"\nPrecisión del modelo: {precision:.2f}")

# Validación cruzada
scores = cross_val_score(modelo, X, y, cv=5)

print("\nValidación cruzada:")
print(scores)

print(f"Precisión promedio: {scores.mean():.2f}")

# ==========================================
# 6. Probar nuevas muestras
# ==========================================

# Ejemplo 1
nueva_flor = [[5.1, 3.5, 1.4, 0.2]]

prediccion = modelo.predict(nueva_flor)

print("\nPredicción para la nueva flor:")
print(iris.target_names[prediccion][0])

# Ejemplo 2
nueva_flor2 = [[6.4, 3.2, 4.5, 1.5]]

prediccion2 = modelo.predict(nueva_flor2)

print("\nPredicción para la segunda flor:")
print(iris.target_names[prediccion2][0])

# Ejemplo 3
nueva_flor3 = [[7.2, 3.0, 5.8, 1.8]]

prediccion3 = modelo.predict(nueva_flor3)

print("\nPredicción para la tercera flor:")
print(iris.target_names[prediccion3][0])

Carga de datos: Se carga el dataset Iris desde sklearn.datasets y se convierte en un DataFrame de Pandas.
Preprocesamiento: Se separan las características (X) de la especie (y) y se dividen los datos en entrenamiento (70%) y prueba (30%).
Entrenamiento: Se utiliza un Árbol de Decisión (DecisionTreeClassifier) para aprender a clasificar las flores.
Evaluación: Se calcula la precisión del modelo y se realiza una validación cruzada de 5 particiones para comprobar su rendimiento.
Pruebas: Se ingresan tres ejemplos de flores y el modelo predice si corresponden a Setosa, Versicolor o Virginica.

1 respuesta

Hola Gino, espero que estés bien

¡Qué emocionante que estés trabajando en construir un clasificador con el dataset Iris! Veo que has seguido correctamente los pasos para cargar, preprocesar, entrenar y evaluar tu modelo de clasificación usando un Árbol de Decisión. Todo parece estar en orden con el código que compartiste.

Si tienes alguna duda específica o si algo no está funcionando como esperabas, aquí te dejo algunas sugerencias que podrían ayudarte:

  1. Comprueba las versiones de las bibliotecas: Asegúrate de que las bibliotecas que estás utilizando, como pandas y sklearn, estén actualizadas. A veces, las diferencias de versión pueden causar comportamientos inesperados.

  2. Visualización de datos: Aunque no es obligatorio, puede ser útil visualizar los datos en gráficos para entender mejor las relaciones entre las características. Puedes usar bibliotecas como matplotlib o seaborn para crear gráficos de dispersión o histogramas.

  3. Parámetros del modelo: Experimenta con los parámetros del DecisionTreeClassifier. Por ejemplo, puedes ajustar la profundidad máxima del árbol (max_depth) o el criterio de división (criterion) para ver cómo afectan la precisión.

  4. Interpretación de resultados: Al evaluar el modelo, presta atención a las métricas de validación cruzada. Si las puntuaciones varían mucho, podría ser una señal de que el modelo está sobreajustado o subajustado.

  5. Pruebas adicionales: Intenta probar con más ejemplos de flores para ver cómo se comporta el modelo con diferentes datos. Esto te dará una mejor idea de su capacidad de generalización.

Espero que estas sugerencias te sean útiles. ¡Espero haber ayudado y buenos estudios!