Esencial⏱ 25 minVS Code / Cursor

Segmenta usuarios

Encontrar grupos similares sin etiquetas.

pandas scikit-learn

🎯 Qué vas a lograr en esta lección

¿Qué problema vas a resolver?

Aprenderás a encontrar grupos similares sin etiquetas. La idea es partir de una necesidad concreta, no de memorizar código.

¿Qué vas a construir?

User Segmentation: un proyecto pequeño para crear un modelo sencillo a partir de datos. El nombre técnico identifica la carpeta del proyecto; no necesitás memorizarlo.

¿Por qué es útil?

Te ayuda a encontrar patrones y evaluar si una predicción es útil.

¿Qué vas a aprender?

Practicarás características, etiquetas, entrenamiento, predicción y métricas. Cada término nuevo se explica antes de usarlo.

Tu primera acción

No instalés ni ejecutes nada todavía. Primero lee las palabras esenciales y observa el ejemplo pequeño. Después identificarás qué dato entra, qué instrucción trabaja y qué resultado aparece.

Avanza una parte a la vez

1
Aprende

Leé las palabras nuevas y el ejemplo pequeño.

2
Practica

Cambiá una sola cosa y ejecuta nuevamente.

3
Comprueba

Respondé las preguntas y usa las pistas cuando las necesites.

4
Cierra

Marcá el checklist y decide si continuar o tomar una pausa.

No necesitás entender toda la página de una vez. Termina una parte, haz una pausa breve y continúa cuando estés listo.
Parte 1

Aprende las palabras esenciales

Leé definiciones cortas y explica cada palabra con un ejemplo propio.

🧱 Conceptos esenciales explicados desde cero

Esta sección no es opcional. Presenta las palabras y procesos que necesitás para comprender el ejemplo. Leé una definición, observa el ejemplo y explícalo con una frase propia antes de avanzar.

clustering

Qué significa: Agrupación sin labels conocidos.

Para qué sirve: Descubre patrones exploratorios.

Ejemplo: Segmentar usuarios.

Confusión frecuente: Clusters necesitan interpretación humana.

kmeans

Qué significa: Algoritmo que agrupa por cercanía a centros.

Para qué sirve: Crea k clusters.

Ejemplo: KMeans(n_clusters=3).

Confusión frecuente: Requiere elegir k y escalar datos.

cluster

Qué significa: Grupo producido por clustering.

Para qué sirve: Representa observaciones similares.

Ejemplo: Usuarios de uso intensivo.

Confusión frecuente: No es una verdad natural.

escalado

Qué significa: Transformación para poner features en escalas comparables.

Para qué sirve: Evita dominancia por magnitud.

Ejemplo: StandardScaler.

Confusión frecuente: Debe ajustarse solo con entrenamiento.

interpretacion

Qué significa: Explicación razonada de lo que sugieren los datos.

Para qué sirve: Conecta evidencia con decisión.

Ejemplo: La tendencia aumenta.

Confusión frecuente: No debe afirmar causalidad sin evidencia.

Ejemplo mínimo de datos para un modelo

Este ejemplo es deliberadamente pequeño. Su objetivo es mostrar las piezas básicas sin mezclar todavía toda la lógica del proyecto.

features = [[1, 3], [4, 8], [2, 5]]
labels = [0, 1, 0]
# features = entradas; labels = respuestas conocidas
  1. Identificá los nombres nuevos: subraya variables, funciones, tipos, herramientas o pasos.
  2. Señala la entrada: qué dato recibe o qué valor ya está escrito.
  3. Señala el proceso: qué instrucción transforma, valida, consulta o calcula.
  4. Señala la salida: qué resultado puede verse o verificarse.
  5. Explícalo: completa “el programa recibe ___, hace ___ y entrega ___”.
No continués todavía si no podés explicar al menos tres términos y el flujo entrada → proceso → salida sin copiar el texto.

🧠 Conceptos explicados desde cero

No memoricés los nombres. Leé qué significa cada término, observa el ejemplo y trata de explicarlo con tus propias palabras.

KMeans

Qué significa: KMeans es un concepto de análisis de datos o machine learning.

Para qué sirve: Describir cómo se preparan datos, se aprende un patrón o se evalúa un resultado.

Ejemplo pequeño: En esta lección, KMeans se usa en un ejemplo pequeño antes del proyecto.

Confusión frecuente: No interpretes la métrica aislada; relaciónala con el problema que intentas resolver.

scaling

Qué significa: scaling es un término técnico utilizado en esta lección.

Para qué sirve: Nombrar una parte específica del proceso de scaling.

Ejemplo pequeño: Busca scaling en el ejemplo y observa qué recibe y qué produce.

Confusión frecuente: No intentés memorizar el nombre: explicá primero su función con tus propias palabras.

clusters

Qué significa: clusters es un concepto de análisis de datos o machine learning.

Para qué sirve: Describir cómo se preparan datos, se aprende un patrón o se evalúa un resultado.

Ejemplo pequeño: En esta lección, clusters se usa en un ejemplo pequeño antes del proyecto.

Confusión frecuente: No interpretes la métrica aislada; relaciónala con el problema que intentas resolver.

centroids

Qué significa: centroids es un término técnico utilizado en esta lección.

Para qué sirve: Nombrar una parte específica del proceso de centroids.

Ejemplo pequeño: Busca centroids en el ejemplo y observa qué recibe y qué produce.

Confusión frecuente: No intentés memorizar el nombre: explicá primero su función con tus propias palabras.

Parte 2

Mirá un ejemplo pequeño

Primero comprende un ejemplo mínimo. Después observa el código completo.

Separar datos y respuesta

Observá únicamente tres cosas: qué dato existe, qué instrucción se ejecuta y qué resultado aparece.

features = [[1], [2], [3]]
labels = [0, 0, 1]
print(features[0], labels[0])
Resultado explicado: Cada grupo de características tiene una etiqueta correspondiente.

Antes de continuar, responde con tus palabras:

  1. ¿Qué dato recibe o ya tiene el ejemplo?
  2. ¿Qué instrucción realiza el trabajo?
  3. ¿Qué resultado podés observar?

⌨️ Código completo

import pandas as pd
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler

users = pd.DataFrame({
    "sessions":[2,3,4,12,14,16,5,6],
    "minutes":[20,25,35,120,150,170,45,55],
})
scaled = StandardScaler().fit_transform(users)
model = KMeans(n_clusters=3,random_state=42,n_init="auto")
users["cluster"] = model.fit_predict(scaled)
print(users.sort_values("cluster"))

🖼️ Explicación ilustrada: entrada → proceso → resultado

Piensa en una máquina sencilla: colocas algo en la entrada, la máquina aplica un proceso y entrega un resultado.

Situación

Una persona necesita resolver el problema de «segmenta usuarios».

Entrada

El programa recibe datos, instrucciones o archivos relacionados con microproyecto.

Proceso

El código valida la entrada, aplica reglas mediante funciones y prepara una respuesta.

Resultado

El usuario recibe un resultado visible que puede comprobar y comparar.

Ejemplo antes y después

Antes

Antes de ejecutar: solo tenemos datos y una necesidad.

Después

Después de ejecutar: tenemos un resultado producido por pasos identificables.

¿Cómo usarás este ejemplo en el mini proyecto?

Ahora practicarás con un mini proyecto. Primero observarás el ejemplo, después cambiarás una sola parte y finalmente explicarás el resultado.

1. ObservarVer el ejemplo
2. EntenderRelacionar datos y resultado
3. CambiarModificar una sola cosa
4. EjecutarComprobar el resultado
5. ExplicarDecir qué aprendiste

Regla: cambia una sola parte, ejecuta de nuevo y explica qué diferencia observaste. No necesitás reconstruir el proyecto completo.

Parte 3

Practica con un mini proyecto

Hacé un cambio pequeño, ejecuta el código y observa qué cambió.

🧩 Mini proyecto guiado: Segmenta usuarios

Completá estos ejercicios pequeños antes del desafío. Podés equivocarte: el sistema te explicará qué repasar y te dará una pista.

Paso 1

Reconoce una palabra nueva

En esta lección aparece KMeans. ¿Cuál es la mejor forma de aprenderlo?

Paso 2

Hacé un cambio seguro

Querés practicar con el código de Segmenta usuarios. ¿Qué cambio es mejor para comenzar?

Paso 3

Comprobá lo que ocurrió

Después de modificar un dato, ¿qué tenés que hacer para saber si aprendiste correctamente?

Paso 4

Tu mini proyecto

Tarea: abre el editor del navegador o el archivo completo. Cambiá un solo dato visible, ejecútalo y observa qué parte del resultado cambió.

Progreso del mini proyecto

Completá los cuatro pasos.

🧪 Error controlado

Pide más clusters que observaciones y revisa el error.

🤖 Cursor

Explica este proyecto como tutor.
Describe entrada, procesamiento y salida.
Revisa una función por vez.
No cambies el código sin mi autorización.
Después hazme cinco preguntas.

🖥️ Cómo abrir y ejecutar este proyecto, paso a paso

¿Qué significa “ejecutar”?

Ejecutar un proyecto significa pedirle a Python que lea las instrucciones guardadas en sus archivos y realice el trabajo. No modifica tu computadora completa: trabaja dentro de la carpeta del proyecto.

En estas instrucciones utilizarás la terminal, una ventana donde escribís comandos. Un comando es una instrucción corta para la computadora.

Antes de comenzar, confirma estas cuatro cosas

  1. Descargaste y descomprimiste el proyecto. Un ZIP es una carpeta comprimida. Tenés que abrirlo para obtener una carpeta normal.
  2. Abriste la carpeta del proyecto. Dentro deberían aparecer archivos como main.py, requirements.txt y README.md.
  3. Python está instalado. Esto se prepara en el Nivel 00.
  4. La terminal está ubicada en esa carpeta. Si la terminal está en otra carpeta, Python no encontrará main.py.

Escoge únicamente tu sistema operativo

No ejecutés las dos rutas. Usá macOS si trabajás en una Mac o Windows si utilizás PowerShell.

macOS · Terminal zsh

  1. Abrí Terminal dentro de la carpeta del proyecto.

    Una forma sencilla es abrir la carpeta en Finder, escribir cd en Terminal, arrastrar la carpeta a la ventana y presionar Enter.

    pwd
    ls

    Resultado esperado: pwd muestra la ruta de la carpeta y ls muestra main.py.

  2. Creá el entorno virtual.
    python3 -m venv .venv

    python3 abre Python. -m venv pide crear un entorno virtual. .venv es el nombre de la nueva carpeta.

    Resultado esperado: aparece una carpeta llamada .venv. El comando puede terminar sin mostrar texto.

  3. Activá el entorno.
    source .venv/bin/activate

    Activar significa indicar que los siguientes comandos deben utilizar el Python privado del proyecto.

    Resultado esperado: la terminal suele mostrar (.venv) al inicio de la línea.

  4. Instalá las librerías del proyecto.
    python -m pip install -r requirements.txt

    python -m pip abre el instalador de librerías. -r requirements.txt le indica qué lista debe leer.

    Resultado esperado: aparecen mensajes de instalación o se indica que las librerías ya están instaladas.

  5. Ejecutá el archivo principal.
    python main.py

    Python abre main.py, lee sus instrucciones de arriba hacia abajo y muestra el resultado.

    Resultado esperado: verás el resultado descrito en la sección “Resultado” de esta lección.

Windows · PowerShell

  1. Abrí PowerShell dentro de la carpeta del proyecto.

    En el Explorador de archivos, abrí la carpeta, hacé clic en la barra de dirección, escribí powershell y presioná Enter.

    Get-Location
    dir

    Resultado esperado: Get-Location muestra la carpeta actual y dir muestra main.py.

  2. Creá el entorno virtual.
    python -m venv .venv

    python abre Python. -m venv crea el entorno y .venv es el nombre de la carpeta.

    Resultado esperado: aparece una carpeta llamada .venv.

  3. Activá el entorno.
    .venv\Scripts\Activate.ps1

    PowerShell empieza a utilizar el Python privado de este proyecto.

    Resultado esperado: aparece (.venv) al inicio de la línea. Si PowerShell bloquea el archivo, repasa la lección de entornos virtuales antes de cambiar políticas de seguridad.

  4. Instalá las librerías.
    python -m pip install -r requirements.txt

    pip lee la lista y prepara las herramientas que utiliza el proyecto.

    Resultado esperado: aparecen mensajes de instalación o confirmación.

  5. Ejecutá el archivo principal.
    python main.py

    Python abre y ejecuta las instrucciones de main.py.

    Resultado esperado: verás el resultado descrito en esta lección.

¿Cómo sé que estoy en la carpeta correcta?

Tenés que poder ver main.py al ejecutar ls en macOS o dir en Windows.

¿Cómo detengo un programa?

Los scripts pequeños terminan solos. Si un servidor continúa funcionando, presiona Control + C.

¿Qué hago si dice que falta un archivo?

Revisá la carpeta actual. El error suele indicar que la terminal no está ubicada donde guardaste el proyecto.

¿Debo repetir todo cada vez?

El entorno se crea e instala una vez. En una sesión nueva normalmente solo activas .venv y ejecutás python main.py.

Términos que aparecerán más adelante

FastAPI

Librería de Python para crear APIs y servidores web. Sus proyectos se ejecutan con un comando diferente a python main.py.

Lo vas a aprender en: Nivel 06 · Crea tu primera API.

Notebook

Documento interactivo que combina pequeños bloques de código, resultados y explicaciones. Es común en análisis de datos.

En este curso: es un recurso opcional. No necesitás usar notebooks para completar las lecciones actuales. Consulta la introducción a notebooks cuando aparezca el término.

Herramienta externa

Programa o servicio que no forma parte de Python, por ejemplo una base de datos, navegador, servicio de nube o modelo de IA.

Regla: no la instales ni ejecutes hasta llegar a la lección que la explica y revisar su README.

🧩 Tres niveles de desafío

  1. Esencial: cambia un dato y verifica el resultado.
  2. Práctica: agrega validación y un mensaje de error claro.
  3. Avanzado: separa responsabilidades, añade pruebas y documenta la arquitectura.

🧪 Comprobaciones programando

Ejecutá un caso controlado y deja que el código compruebe condiciones importantes.

1. Caso normalUsá datos comunes.
2. Valor límiteProbá cero, vacío, máximo o mínimo.
3. Error esperadoComprobá que el mensaje ayude a corregirlo.
from sklearn.model_selection import train_test_split

X = [[1], [2], [3], [4], [5]]
y = [0, 0, 1, 1, 1]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.4, random_state=42)

assert len(X_train) == len(y_train)
assert len(X_test) == len(y_test)
assert len(X_train) + len(X_test) == len(X)
Qué estás aprendiendo: Se comprueba que cada fila conserve su etiqueta y que ningún dato desaparezca.

Después de ejecutarlo

  • ¿Qué condición comprueba cada assert?
  • ¿Qué cambio hace fallar la comprobación?
  • ¿El mensaje explica qué tenés que corregir?
  • ¿Podés agregar otro caso?
Parte 4

Comprobá lo que entendiste

Respondé una pregunta a la vez. Podés usar pistas y volver a intentarlo.

❓ Comprueba lo que entendiste

Respondé sobre Segmenta usuarios. Verás una explicación completa y podrás intentarlo nuevamente.

Pregunta 1 de 5 · Selección

¿Cuál describe mejor la entrada principal?

Pregunta 2 de 5 · Selección

¿Qué describe mejor el procesamiento?

Pregunta 3 de 5 · Selección

¿Qué error esperado debería manejarse?

Pregunta 4 de 5 · Respuesta breve

Pregunta 5 de 5 · Respuesta breve

Resultado de la evaluación

Completá las cinco preguntas.

Parte 5

Cerrá la lección

Resume lo aprendido, completa el checklist y decide tu siguiente paso.

📝 Resumen

  1. Ejecutaste una referencia funcional.
  2. Identificaste entrada, procesamiento y salida.
  3. Modificaste un comportamiento.
  4. Provocaste y reparaste un error.
  5. Preparaste una mejora para GitHub.

✅ Checklist

🚀 Mejoras futuras y dónde las aprenderás

No son obligatorias ahora. Son mejoras que aplicarás cuando aprendas las herramientas correspondientes.

Separar la configuración del código

Qué mejora: Evita editar el programa cuando cambia una ruta, clave o preferencia.

Dónde lo aprenderás: en la lección «Protege tokens con .env», del nivel APIs y servicios externos.

Añadir pruebas automatizadas

Qué mejora: Comprueba que una modificación no rompa lo existente.

Dónde lo aprenderás: en la lección «Escribe pruebas unitarias», del nivel Testing y despliegue.

Registrar la ejecución

Qué mejora: Ayuda a entender fallos sin imprimir datos sensibles.

Dónde lo aprenderás: en la lección «Configura observabilidad», del nivel Testing y despliegue.

Mejorar mensajes y validación

Qué mejora: Explica qué dato falta y cómo corregirlo.

Dónde lo aprenderás: en la lección «Entrada de datos segura», del nivel Fundamentos de Python.

Documentar decisiones y limitaciones

Qué mejora: Permite que otra persona comprenda y evalúe el proyecto.

Dónde lo aprenderás: en la lección «Construye casos de estudio», del nivel Portafolio profesional.

Crear una demostración

Qué mejora: Muestra el problema, funcionamiento y evidencia.

Dónde lo aprenderás: en la lección «Crea un índice HTML», del nivel Portafolio profesional.