σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyHojas de rutaRutas
Ctrl K
AO
+1,2 k estudiantes
Iniciar sesiónUnirse ↗
Hojas de rutaRutas
AO
+1,2 k estudiantes
Iniciar sesión
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft AcademyHojas de rutaRutas
Ctrl K
AO
+1,2 k estudiantes
Iniciar sesiónUnirse ↗
Hojas de rutaRutas
AO
+1,2 k estudiantes
Iniciar sesión
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Ruta de scikit-learn›Módulo 1 · La forma de trabajar con estimadores›Tema 1.4·~50 minIntermedio

Transformadores propios y pipelines por columnas

Posición en la rutaMódulo 1 de 4 · Tema 4 de 5
1.4 Transformadores propios y pipelines por columnas
—Puntuación del lab— / 100XP total—Racha—

Aprender en fit, aplicar en transform

Un transformador es un estimador con una segunda tarea. fit(X) aprende números de los datos (una media, un cuantil, un vocabulario), los guarda en atributos que terminan en guion bajo y devuelve self. transform(X) aplica luego esos números guardados a cualquier dato, nuevo o viejo, sin mirarlo para decidir nada. Esa separación es todo el sentido: los números se aprenden una vez con las filas de entrenamiento, y las filas de prueba solo se transforman. Un winsorizador es un buen primer ejemplo. fit aprende un cuantil inferior y uno superior por columna, y transform recorta con np.clip entre ellos. Si transform recalculara los cuantiles con los datos que recibe, cada conjunto se recortaría a su propio rango y la información de entrenamiento nunca llegaría al conjunto de prueba. Herede de TransformerMixin y BaseEstimator y obtiene además fit_transform y el mecanismo de parámetros gratis.

Las tablas reales mezclan números y categorías, así que scikit-learn ofrece ColumnTransformer([(nombre, transformador, columnas), ...]): cada rama trata sus columnas y las salidas se pegan lado a lado. Aquí la rama numérica es make_pipeline(Winsorizer(0.02, 0.98), StandardScaler()) y la categórica OneHotEncoder(handle_unknown='ignore'), que convierte una categoría desconocida en una fila de ceros en vez de un error. sparse_threshold=0 fuerza un arreglo denso. Para nombrar las columnas de salida, cada paso debe responder a get_feature_names_out, por eso su winsorizador debe implementarlo: devuelve los nombres que recibió. La regla de oro es llamar a fit_transform con las filas de entrenamiento y solo a transform con las de prueba. En el panel de acciones (26 símbolos, 10.296 filas), el corte del 1 de enero de 2023 deja 5.564 filas de entrenamiento y 4.732 de prueba, y cerca del 2,2 % de los valores de momentum de prueba caen fuera del rango 2 %–98 % de entrenamiento y se recortan a los límites de entrenamiento.

  • Aprender una vez, aplicar en todas partes: fit guarda números con las filas de entrenamiento, transform solo los aplica.
  • Un preprocesador, dos ramas: ColumnTransformer envía números y categorías a sus propios pasos; handle_unknown="ignore" resiste categorías nuevas.
  • Implemente el contrato completo: un transformador que no sabe nombrar sus columnas de salida rompe get_feature_names_out para todo el pipeline.

Lab: qué se califica

  • El constructor5 pts
  • Fit y transform20 pts
  • Nombres de variables y pipelines10 pts
  • El preprocesador de dos ramas15 pts
  • Dividir por fecha10 pts
  • Ajustar solo con el pasado10 pts
  • El estudio del panel30 pts
Explorador · lab-sl-14
▾ lab-sl-14
▾ data
…
bash · en el navegador
learner@quantcraft:~/lab-sl-14$
Python aún no cargadoPythonLn 1, Col 1Spaces: 4UTF-8

¿Restablecer este tema?

Todo lo que hay en lab-sl-14 vuelve a los archivos iniciales y se limpia el terminal. Tu solución actual se perderá: no se puede deshacer.

Se restablecerá
  • main.py → código inicial
  • Historial del terminal y salida de pruebas
  • Cambios sin enviar
Se conservará
  • Mejor puntuación del lab
  • Tu XP y tu racha
  • Progreso de la lección y notas

Inicia sesión para ejecutar tu código.

Todas las clases se pueden leer gratis. Crea una cuenta o inicia sesión para ejecutar código, lanzar las pruebas y enviar este lab.

  • IDE en el navegador con terminal bash — sin instalar nada
  • Corrección instantánea, XP y tu lugar en la ruta
Crear una cuentaIniciar sesión
O
Continuar con GitHub