DEV Community

Victor Olvera
Victor Olvera

Posted on

Aprendizaje supervisado vs no supervisado: la diferencia que define cómo aprenden las máquinas

En machine learning existen dos grandes caminos: el del estudiante guiado y el del explorador curioso.

Ambos buscan lo mismo —aprender a partir de los datos— pero su método es completamente distinto.

🎓 Aprendizaje supervisado: aprender con un maestro

En el aprendizaje supervisado, el modelo se entrena con datos etiquetados.

Cada muestra tiene una entrada (X) y una salida esperada (Y).

El modelo ajusta sus parámetros hasta que logra predecir correctamente la salida para nuevas entradas (generalización).

Ejemplos prácticos

  • Clasificar correos en spam o no spam.
  • Predecir el precio de una casa según superficie, ubicación y número de habitaciones.
  • Detectar fraude en transacciones etiquetadas como “fraude/no fraude”.

Idea mental: es como estudiar con un profesor que ya tiene el cuaderno de respuestas y te corrige hasta que aprendes el patrón.

🧪 Mini-demo en Python (clasificación)

Requiere scikit-learn (instala con pip install scikit-learn)

from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report, accuracy_score

# 1) Datos sintéticos binarios (ej. spam vs no spam)
X, y = make_classification(n_samples=2000, n_features=8, n_informative=4, random_state=42)

# 2) Split train/test
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)

# 3) Entrenamiento
model = LogisticRegression(max_iter=1000)
model.fit(X_train, y_train)

# 4) Evaluación
pred = model.predict(X_test)
print("Accuracy:", accuracy_score(y_test, pred))
print(classification_report(y_test, pred))
Enter fullscreen mode Exit fullscreen mode

🧭 Aprendizaje no supervisado: el explorador sin mapa

En el aprendizaje no supervisado, los datos no tienen etiquetas.

El modelo no sabe cuál es la respuesta correcta; su tarea es descubrir estructuras ocultas en los datos: patrones, similitudes o grupos.

Piensa en él como un explorador en una ciudad nueva: sin mapa ni instrucciones, pero con la curiosidad suficiente para descubrir qué calles se parecen, dónde están los centros de actividad y qué zonas comparten características.


🧩 Ejemplos comunes

  • Segmentación de clientes: agrupar usuarios por hábitos de compra sin saber de antemano cuántos grupos existen.
  • Agrupamiento de documentos o noticias: detectar temas similares sin etiquetas.
  • Reducción de dimensionalidad: resumir datos complejos para visualizarlos o analizarlos mejor.

🧠 Ejemplo en Python: Clustering con K-Means

Requiere scikit-learn y matplotlib (instala con pip install scikit-learn matplotlib)

from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

# 1️⃣ Crear datos sintéticos
X, _ = make_blobs(n_samples=500, centers=4, cluster_std=1.0, random_state=42)

# 2️⃣ Aplicar K-Means
modelo = KMeans(n_clusters=4, random_state=42)
modelo.fit(X)
etiquetas = modelo.labels_

# 3️⃣ Visualizar los grupos
plt.scatter(X[:, 0], X[:, 1], c=etiquetas, cmap='viridis', s=30)
plt.scatter(modelo.cluster_centers_[:, 0], modelo.cluster_centers_[:, 1], c='red', marker='x', s=100)
plt.title("Agrupamiento no supervisado con K-Means")
plt.show()
Enter fullscreen mode Exit fullscreen mode

Espero con esto haber dado un mejor enfoque que ayude. Espero tus comentarios.

Top comments (0)