Código Python + Visualización de Datos

Cada bloque de código tiene su explicación y su gráfico correspondiente

PARTE 1 / 2
200 pacientes 5 medicamentos Código real del curso
PASO 1: IMPORTAR LIBRERÍAS
código_1_imports.py
# 1. IMPORTAR LIBRERÍAS
import numpy as np
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn import preprocessing
from sklearn.model_selection import train_test_split
from sklearn import metrics
import matplotlib.pyplot as plt
¿QUÉ HACE CADA UNA?
  • numpy/pandas → Manejo de datos (arrays, dataframes)
  • DecisionTreeClassifier → El algoritmo de Árbol de Decisión
  • preprocessing → Convierte texto (F/M) a números (0/1)
  • train_test_split → Divide datos en 70% entrenamiento / 30% prueba
  • metrics → Calcula la precisión (accuracy)
  • matplotlib → Genera gráficos
PASO 2: CARGAR EL DATASET (drug200.csv)
código_2_cargar.py
# 2. DESCARGAR Y CARGAR LOS DATOS
# !wget -O drug200.csv https://s3-api.../drug200.csv

my_data = pd.read_csv("drug200.csv", delimiter=",")

print("Primeras 5 filas:")
print(my_data[0:5])
print(f"Tamaño: {my_data.shape}")
RESULTADO VISUAL: Primeros 5 pacientes
Age Sex BP Chol Na/K Drug
El dataset tiene filas y 6 columnas
PASO 3: ANÁLISIS EXPLORATORIO - ¿Qué nos dicen los datos?
código_3_analisis.py
# Análisis exploratorio
print("Distribución de medicamentos:")
print(my_data['Drug'].value_counts())

print("\nDistribución por sexo:")
print(my_data['Sex'].value_counts())

print("\nNiveles de colesterol:")
print(my_data['Cholesterol'].value_counts())

print("\nPresión arterial:")
print(my_data['BP'].value_counts())
GRÁFICOS GENERADOS DESDE LOS DATOS

Medicamentos

Sexo

Colesterol

Presión Arterial

PASO 4: CREAR MATRIZ X (CARACTERÍSTICAS)
código_4_X.py
# X = matriz de características (lo que usamos para predecir)
X = my_data[['Age', 'Sex', 'BP', 'Cholesterol', 'Na_to_K']].values

print(f"Forma de X: {X.shape}")  # (200, 5)
print(X[0:3])  # Primeros 3 pacientes
¿Qué es X? Son las 5 preguntas que hacemos a cada paciente: Edad, Sexo, Presión, Colesterol, Na/K
VISUALIZACIÓN: X tiene (200, 5)
PacienteAgeSexBPCholNa/K
200 filas × 5 columnas = Matriz de características
PASO 5: LABEL ENCODING - Convertir texto a números
código_5_encoding.py
# Codificar Sexo: F=0, M=1
le_sex = preprocessing.LabelEncoder()
le_sex.fit(['F', 'M'])
X[:, 1] = le_sex.transform(X[:, 1])

# Codificar BP: LOW=0, NORMAL=1, HIGH=2
le_BP = preprocessing.LabelEncoder()
le_BP.fit(['LOW', 'NORMAL', 'HIGH'])
X[:, 2] = le_BP.transform(X[:, 2])

# Codificar Cholesterol: NORMAL=0, HIGH=1
le_Chol = preprocessing.LabelEncoder()
le_Chol.fit(['NORMAL', 'HIGH'])
X[:, 3] = le_Chol.transform(X[:, 3])
MAPEO DE CONVERSIÓN
Sexo
F → 0
M → 1
Presión (BP)
LOW → 0
NORMAL → 1
HIGH → 2
Colesterol
NORMAL → 0
HIGH → 1
Las computadoras solo entienden números. ¡Por eso convertimos!
PASO 6: VECTOR y - LO QUE QUEREMOS PREDECIR
código_6_y.py
# y = vector objetivo (lo que el árbol debe aprender a predecir)
y = my_data["Drug"]

print(f"Forma de y: {y.shape}")  # (200,)
print(y[0:5])  # Primeros 5 medicamentos
DISTRIBUCIÓN DE MEDICAMENTOS (y)
PASO 7: DIVIDIR EN ENTRENAMIENTO (70%) Y PRUEBA (30%)
código_7_split.py
from sklearn.model_selection import train_test_split

X_trainset, X_testset, y_trainset, y_testset = train_test_split(
    X, y, test_size=0.3, random_state=3
)

print(f"X_trainset shape: {X_trainset.shape}")  # (140, 5)
print(f"X_testset shape: {X_testset.shape}")    # (60, 5)
print(f"y_trainset shape: {y_trainset.shape}")  # (140,)
print(f"y_testset shape: {y_testset.shape}")    # (60,)
VISUALIZACIÓN DEL SPLIT
ENTRENAMIENTO: 140 pacientes
PRUEBA: 60 pacientes
140 pacientes APRENDEN | 60 pacientes EVALÚAN
¿QUÉ SIGNIFICAN LAS DIMENSIONES (140, 5) y (140,)?
(140, 5)
140 = Número de PACIENTES
5 = Número de CARACTERÍSTICAS (Edad, Sexo, BP, Colesterol, Na/K)
Esto es una MATRIZ: 140 filas × 5 columnas
(140,)
140 = Número de PACIENTES
(solo una dimensión)
Esto es un VECTOR: 140 respuestas (un medicamento por paciente)
Ir a la SEGUNDA PARTE Paso 8 → Modelo
Árbol de Decisión - Clasificación de Medicamentos PARTE 1 de 2: Preparación de datos Los gráficos se generan a partir de TUS datos