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

Desafío: hora de la práctica - Clasificando datos

Lectura de datos y separación de variables explicativas y respuesta

import pandas as pd
url_desafio = 'https://raw.githubusercontent.com/DanielRaiicHu/clasificacion_validacion_y_metricas/main/diabetes.csv'
datos_desafio = pd.read_csv(url_desafio)
datos_desafio

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

X_desafio = datos_desafio.drop(columns='diabetes',axis=1)
y_desafio = datos_desafio['diabetes']

División de Datos: Entrenamiento, Validación y Prueba

from sklearn.model_selection import train_test_split

# División inicial: General vs Prueba
X_desafio, X_test_desafio, y_desafio, y_test_desafio = train_test_split(X_desafio, y_desafio, test_size= 0.05, stratify = y_desafio, random_state = 5)

# División secundaria: Entrenamiento vs Validación
X_train_desafio, X_val_desafio, y_train_desafio, y_val_desafio = train_test_split(X_desafio, y_desafio, stratify = y_desafio, random_state = 5)

Modelos: DecisionTreeClassifier y RandomForestClassifier

# Modelo Árbol
from sklearn.tree import DecisionTreeClassifier
modelo_arbol_desafio = DecisionTreeClassifier(max_depth=3, random_state= 5) # Límite de profundidad = 3
modelo_arbol_desafio.fit(X_train_desafio,y_train_desafio)                   # Vuelve a entrenar
print(f'La exactitud del Modelo de Árbol con el conjunto de entrenamiento es de: {modelo_arbol_desafio.score(X_train_desafio,y_train_desafio)}')
print(f'La exactitud del Modelo de Árbol con el conjunto de validación es de: {modelo_arbol_desafio.score(X_val_desafio,y_val_desafio)}')

# Respuesta: 
# La exactitud del Modelo con de Árbol el conjunto de entrenamiento es de: 0.7571428571428571
# La exactitud del Modelo con de Árbol el conjunto de validación es de: 0.776595744680851
# Modelo Forest
from sklearn.ensemble import RandomForestClassifier
modelo_forest_desafio = RandomForestClassifier(max_depth=2, random_state= 5) # Límite de profundidad = 2
modelo_forest_desafio.fit(X_train_desafio,y_train_desafio)                   # Vuelve a entrenar
print(f'La exactitud del Modelo Forest con el conjunto de entrenamiento es de: {modelo_forest_desafio.score(X_train_desafio,y_train_desafio)}')
print(f'La exactitud del Modelo Forest con el conjunto de validación es de: {modelo_forest_desafio.score(X_val_desafio,y_val_desafio)}')

# Respuesta: 
# La exactitud del Modelo Forest con el conjunto de entrenamiento es de: 0.7285714285714285
# La exactitud del Modelo Forest con el conjunto de validación es de: 0.7021276595744681

Matriz de Confusión

from sklearn.metrics import confusion_matrix
# Matriz de Confusión tipo Array - Modelo Árbol
y_previsto_arbol_desafio = modelo_arbol_desafio.predict(X_val_desafio)
matriz_confusion_arbol_desafio = confusion_matrix(y_val_desafio,y_previsto_arbol_desafio)
print(matriz_confusion_arbol_desafio)

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

# Matriz de Confusión - Modelo Árbol
visualizacion_arbol_desafio = ConfusionMatrixDisplay(
    confusion_matrix=matriz_confusion_arbol_desafio,
    display_labels=['Sin Diabetes', 'Con Diabetes']  # Etiquetas para las clases 0 y 1
)

visualizacion_arbol_desafio.plot();

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

# Matriz de Confusión tipo Array - Modelo Forest
y_previsto_forest_desafio = modelo_forest_desafio.predict(X_val_desafio)
matriz_confusion_forest_desafio = confusion_matrix(y_val_desafio,y_previsto_forest_desafio)
print(matriz_confusion_forest_desafio)

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

# Matriz de Confusión - Modelo Forest
visualizacion_forest_desafio = ConfusionMatrixDisplay(
    confusion_matrix=matriz_confusion_forest_desafio,
    display_labels=['Sin Diabetes', 'Con Diabetes']  # Etiquetas para las clases 0 y 1
)

visualizacion_forest_desafio.plot();

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

1 respuesta

Hola , espero que estés muy bien.

Felicitaciones por tu aprendizaje. Estamos priorizando el foro para postear dudas, así optimizamos el tiempo de respuesta para ustedes.

Para no dejar de compartir los códigos, actividades y ejercicios que realizas, creamos un canal en Discord (#compartetucodigo) donde puedes compartirlos, dar y sugerir mejoras con el resto de tus compañeros.

Un saludo.

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios