Laboratorio de Python en el navegador
Cada celda es Python real que corre en tu navegador gracias a Pyodide (no hace falta instalar nada). La primera ejecución descarga el intérprete y las librerías (≈ 10–30 MB); después todo es instantáneo y las celdas comparten la misma sesión.
1. Ecuaciones normales con NumPy
Sección titulada «1. Ecuaciones normales con NumPy»Construye la matriz de diseño, resuelve y comprueba que el residual es ortogonal a las columnas. Ver teoría →
🐍 Ecuaciones normales con NumPy
numpyQué observar: Fíjate en que sale (salvo redondeo): esa es la condición de las ecuaciones normales.
2. Descenso de gradiente y la tasa de aprendizaje
Sección titulada «2. Descenso de gradiente y la tasa de aprendizaje»El mismo problema resuelto iterando, con cuatro valores de . Ver teoría →
🐍 Descenso de gradiente y la tasa de aprendizaje
numpyQué observar: Con todavía no llegó; con 0.1 y 0.5 coincide con la solución exacta; con 1.1 diverge (números gigantes).
3. Grado del polinomio, train vs validación
Sección titulada «3. Grado del polinomio, train vs validación»Ajusta polinomios de grado creciente a + ruido y compara el error de entrenamiento con el de validación. Ver teoría →
🐍 Grado del polinomio, train vs validación
numpy · scikit-learnQué observar: El RMSE de train baja casi siempre; el de validación hace la U (mínimo cerca del grado 5). Ridge rescata al grado 12.
4. Ridge y lasso en el dataset diabetes
Sección titulada «4. Ridge y lasso en el dataset diabetes»El ejemplo de la slide: OLS, ridge y lasso con λ elegido por validación cruzada. Ver teoría →
🐍 Ridge y lasso en el dataset diabetes
numpy · scikit-learnQué observar: Los tres tienen RMSE de test ≈ 56 (como en la slide), pero el lasso pone exactamente en cero age, s4 y s6.
5. Regresión logística desde cero y el umbral
Sección titulada «5. Regresión logística desde cero y el umbral»Entrena la logística con el gradiente , compárala con scikit-learn y mueve el umbral. Ver teoría →
🐍 Regresión logística desde cero y el umbral
numpy · scikit-learnQué observar: Tu implementación y la de scikit-learn llegan al mismo AUC (≈ 0.995). Bajar el umbral a 0.2 sube el recall de malignos a costa de más falsos positivos.
6. Naive Bayes para spam
Sección titulada «6. Naive Bayes para spam»Un mini corpus de 10 correos, bolsa de palabras y Naive Bayes multinomial con dos valores de suavizado. Ver teoría →
🐍 Naive Bayes para spam
numpy · scikit-learnQué observar: Con pequeño las probabilidades se vuelven extremas (0.999, 0.0): sin suavizado, una palabra nunca vista en una clase la anula.
7. LDA vs QDA vs Naive Bayes vs logística
Sección titulada «7. LDA vs QDA vs Naive Bayes vs logística»Una clase compacta rodeada por otra ancha e inclinada: covarianzas muy distintas. Ver teoría →
🐍 LDA vs QDA vs Naive Bayes vs logística
numpy · scikit-learnQué observar: Los modelos con frontera lineal (LDA, logística) se quedan en ≈ 0.69; QDA y Naive Bayes, que permiten covarianzas propias, llegan a ≈ 0.87.
8. Dentro del SVM: vectores de soporte y C
Sección titulada «8. Dentro del SVM: vectores de soporte y C»El ejemplo de tres puntos de la clase y un barrido de C en cáncer de mama. Ver teoría →
🐍 Dentro del SVM: vectores de soporte y C
numpy · scikit-learnQué observar: El punto (3,3) no es vector de soporte; y , . Al subir C bajan los vectores de soporte (margen más angosto).
9. Kernels: identidad, validez y γ
Sección titulada «9. Kernels: identidad, validez y γ»Verifica , la semidefinitud de una Gram RBF y el efecto del kernel sobre anillos. Ver teoría →
🐍 Kernels: identidad, validez y γ
numpy · scikit-learnQué observar: El lineal no sirve en anillos (≈ 0.56); el polinómico de grado 2 y el RBF con γ = 1 aciertan todo. Con γ = 2000: train 1.0 pero CV ≈ 0.72, sobreajuste.
10. El árbol de 10 puntos y su ruta de poda
Sección titulada «10. El árbol de 10 puntos y su ruta de poda»Reproduce el árbol de la clase, sus importancias y la ruta de costo-complejidad. Ver teoría →
🐍 El árbol de 10 puntos y su ruta de poda
numpy · scikit-learnQué observar: Mismo árbol que en las slides, importancias 3/7 y 4/7, y la ruta con 4 → 3 → 2 → 1 hojas.