Why this matters for ML
Un modelo de ML produce y consume random variables: la etiqueta es una variable aleatoria, la predicción es una distribución sobre clases, el ruido de los datos es aleatorio. Distinguir variables discretas de continuas y manejar PMF/PDF/CDF es el vocabulario básico para todo lo que sigue (expectation, MLE, gaussianas).
Concepts covered
- Random variable (discreta vs. continua)
- PMF (probability mass function)
- PDF (probability density function)
- CDF (cumulative distribution function)
- Support de una distribución
- Relación PDF ↔ CDF (derivada/integral)
Intuition first
🎬 Stat 110 Lecture 5. Idea: una random variable asigna un número a cada resultado; su distribución dice cómo se reparte la probabilidad entre esos números.
Theory & key results
Random variable (RV): una función que asigna un número a cada resultado. Ejemplos: número de caras en 3 lanzamientos (discreta), altura de una persona (continua).
Discreta — PMF: . Cumple y . La probabilidad "vive" en puntos.
Continua — PDF: con . Ojo: no es una probabilidad (puede ser ); la probabilidad es el área:
CDF (para ambas): . Es no decreciente, va de 0 a 1. Relaciones:
- Continua: y (¡conexión con Calc-04!).
- Discreta: .
Support: el conjunto de valores donde la distribución es positiva.
Worked example
= número de caras en 2 lanzamientos de moneda justa. PMF: , , (suma 1 ✓). CDF: , , .
Continua: densidad uniforme en , . . CDF: en .
Notebook exercises (by hand)
- = suma de 2 dados. Escribe su PMF y verifica que suma 1.
- Para el del ej. 1, calcula .
- en : verifica que es densidad y calcula .
- Obtén la CDF de en y deriva para recuperar .
- Explica por qué para una RV continua pero aún tiene sentido hablar de densidad.
- Da un ejemplo de ML donde la salida del modelo sea una PMF (pista: softmax sobre clases).
Python lab
import numpy as np
import matplotlib.pyplot as plt
# PMF de suma de 2 dados
from itertools import product
omega = list(product(range(1,7), repeat=2))
sums = np.array([sum(o) for o in omega])
vals, counts = np.unique(sums, return_counts=True)
pmf = counts/len(omega)
print("PMF suma dados:", dict(zip(vals, np.round(pmf,3))))
print("CDF en 4:", pmf[vals <= 4].sum())
# densidad f(x)=2x en [0,1]: verifica normalización y P(X<=0.5)
import sympy as sp
x = sp.symbols("x")
print("integra a 1:", sp.integrate(2*x, (x, 0, 1)))
print("P(X<=0.5):", sp.integrate(2*x, (x, 0, 0.5))) # 0.25
# muestrea y compara histograma con la densidad (método de la CDF inversa: X = sqrt(U))
u = np.random.rand(100_000); samples = np.sqrt(u)
plt.hist(samples, bins=50, density=True);
plt.plot(np.linspace(0,1,100), 2*np.linspace(0,1,100))
plt.savefig("prob03.png")
Examen final 📝
Intenta cada nivel antes de abrir las soluciones.
🟡 Medio
- = número de caras en 3 lanzamientos. Escribe su PMF y verifica que suma 1.
- Para en : confirma que es densidad y calcula .
🟠 Medio-difícil
- Obtén la CDF de en y derívala para recuperar .
- Para la exponencial : obtén la CDF y úsala para calcular .
🔴 Difícil
- Inverse transform sampling: demuestra que si y es una CDF invertible, entonces tiene CDF . Aplícalo para muestrear de una exponencial.
- La salida de un softmax es una PMF sobre clases. Explica por qué y siempre se cumplen, y qué random variable modela esa PMF en clasificación.
✅ Soluciones
- ; suman .
- ✓. .
- en ; ✓.
- . .
- (última igualdad porque es uniforme y ). Para exponencial: , así que .
- : cada ⇒ ; y la suma del numerador sobre es el denominador ⇒ . Modela una Categorical RV (una etiqueta entre clases).