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

import numpy as np
import pandas as pd
from sklearn import datasets
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score

Cargar el conjunto de datos de flores Iris

datos_iris = datasets.load_iris()

Crear el DataFrame con las características de las flores

df_flores = pd.DataFrame(data=datos_iris.data, columns=datos_iris.feature_names)
df_flores['especie'] = datos_iris.target # Cambiado 'target' por 'especie'

Separar los atributos medibles (características) y las etiquetas (especies)

atributos_flores = df_flores.iloc[:, :-1]
especies_flores = df_flores['especie']

Dividir los datos en conjuntos de entrenamiento y prueba (80% entrenamiento, 20% prueba)

atributos_entrenamiento, atributos_prueba, especies_entrenamiento, especies_prueba = train_test_split(
atributos_flores, especies_flores, test_size=0.2, random_state=42
)

Crear y entrenar el modelo de Árbol de Decisión

clasificador_arbol = DecisionTreeClassifier(random_state=42)
clasificador_arbol.fit(atributos_entrenamiento, especies_entrenamiento)

Hacer predicciones utilizando los datos de prueba

especies_predichas = clasificador_arbol.predict(atributos_prueba)

Evaluar el rendimiento del modelo

precision_modelo = accuracy_score(especies_prueba, especies_predichas)
print(f'Precisión del modelo: {precision_modelo:.2f}')

Aplicar validación cruzada para una evaluación más robusta

puntuaciones_validacion_cruzada = cross_val_score(clasificador_arbol, atributos_flores, especies_flores, cv=5)
print(f'Precisión media en la validación cruzada: {puntuaciones_validacion_cruzada.mean():.2f}')