Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
0
respuestas

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.