Quant500 Academy

5. Aprendizaje no supervisado y semi-supervisado

Nivel 10: Machine Learning Aplicado al Trading

Los algoritmos de aprendizaje no supervisado se usan cuando solo tenemos datos de entrada y ningún valor de salida correspondiente. No hay respuestas correctas, y por tanto no hay profesor. Lo que estos algoritmos sí saben hacer es encontrar estructura oculta o relaciones entre las distintas entradas. Uno de los mejores casos de uso del aprendizaje no supervisado son los problemas de agrupamiento.

Ejemplos de tareas no supervisadas:

Hay un matiz que se confunde a menudo: no supervisado no quiere decir que no haya datos, ni que el algoritmo trabaje sin objetivo. Quiere decir que no hay etiquetas. El algoritmo sí optimiza algo, por ejemplo la distancia de cada punto al centro de su grupo, pero nadie le ha dicho de antemano cuál era la respuesta buena.

En mercados, el ejemplo natural es agrupar activos por comportamiento sin imponer previamente el sector al que pertenecen. Nadie etiqueta las acciones como "defensiva" o "cíclica" en los datos de precios: si emergen esos grupos, emergen de la propia estructura de los retornos.

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

# precios: DataFrame con una columna de cierre por ticker
retornos = np.log(precios / precios.shift(1)).dropna()

# Describimos cada acción con un puñado de rasgos de comportamiento
rasgos = pd.DataFrame({
    "vol_anual": retornos.std() * np.sqrt(252),
    "retorno_medio": retornos.mean() * 252,
    "asimetria": retornos.skew(),
    "beta_mercado": retornos.apply(
        lambda c: np.cov(c, retornos.mean(axis=1))[0, 1] / retornos.mean(axis=1).var()
    ),
})

X = StandardScaler().fit_transform(rasgos)
grupos = KMeans(n_clusters=4, n_init=50, random_state=42).fit_predict(X)
rasgos["grupo"] = grupos
print(rasgos.sort_values("grupo"))

Fíjate en que en ningún momento hemos pasado una y. No hay verdad que acertar: hay una partición del espacio que el algoritmo considera compacta. Interpretar qué significa cada grupo es trabajo humano, y ahí es donde el analista aporta.

El aprendizaje semi-supervisado se usa cuando hay una cantidad enorme de datos de entrada pero solo una pequeña cantidad de datos de salida etiquetados. Estos problemas se sitúan justo en medio del aprendizaje supervisado y el no supervisado, y por eso se combinan técnicas de ambos mundos. Uno de los mejores ejemplos es identificar objetos en fotografías: algunas están etiquetadas como manzanas o como leones, pero la inmensa mayoría no lo está.

En finanzas el caso es idéntico y muy frecuente: tienes millones de noticias, informes de resultados y publicaciones, de los cuales un analista solo ha etiquetado a mano unos cientos como positivos o negativos para la cotización. Con los cientos etiquetados entrenas de forma supervisada; con los millones no etiquetados aprendes la estructura del lenguaje o del espacio de documentos, y usas esa estructura para propagar etiquetas. Etiquetar es caro; observar es barato. Esa asimetría es exactamente la que justifica el enfoque semi-supervisado.

El resto de Quant500

Lo que estás aprendiendo, aplicado al índice todos los días:

La cartera del modelo, cada semana en tu correo

Cada sábado, su semana en un minuto: cómo fue, lo mejor y lo peor, y qué directivos compraron con su dinero. Y el día que el modelo se rehace, qué entra y qué sale. Es una simulación, no un consejo. Como mucho un correo a la semana, sin publicidad y sin cuenta; te das de baja con un clic. Lo hace una persona: Pol Gracia.

Cartera modelo con resultados simulados, no una recomendación personalizada. Tu correo se usa solo para esto: privacidad.

Detrás de la Academia y del resto de Quant500 hay una sola persona: Pol Gracia Serrahima.