Machine Learning para Traders II

Continuamos con la serie sobre Machine Learning. En esta ocasión revisamos la diferencia entre los métodos clásicos de Machine Learning y el novedoso Deep Learning, finalizando con unas pinceladas acerca de qué métodos son más adecuados dependiendo del problema que queramos resolver.

Métodos Clásicos vs Deep Learning

¿Qué diferencia existe entre los métodos clásicos de Machine Learning y el tan de moda Deep Learning? Generalmente los métodos clásicos de Machine Learning consisten en algoritmos que calibran sus parámetros utilizando unos inputs de datos proporcionados por el analista. De esta forma, el algoritmo “aprende”, ajustando un modelo que va mejorando progresivamente a medida que vamos recopilando más y más datos.

Dentro de este tipo de métodos podemos encontrar tanto técnicas de Aprendizaje Supervisado como No Supervisado. En el caso del Aprendizaje Supervisado, el analista “guía”, supervisa al algoritmo cuando realiza el proceso de calibrado de parámetros, proporcionado un conjunto de entrenamiento con inputs y outputs correctamente etiquetados; es decir, las respuestas ya se conocen de antemano. Por su parte, en el Aprendizaje No Supervisado no hay un conocimiento a priori, considerando los inputs como un conjunto de variables aleatorias; dicho de otro modo, los inputs no están etiquetados de antemano y es el algoritmo el que debe hacerlo en base a las reglas que vaya generando. 

Veamos un ejemplo de aplicación de métodos clásicos: imaginemos que queremos predecir los rendimientos bursátiles utilizando diferentes variables macro tales como el precio del petróleo, el cambio EURUSD, la volatilidad, los tipos de interés, etc. Hasta no hace mucho, lo más habitual en estos casos era elaborar un modelo de regresión lineal para calcular los parámetros que relacionaban a las variables independientes con la variable explicada (en este caso, los rendimientos bursátiles). Sin embargo, el Machine Learning clásico va más allá y utiliza modelos de regresión mucho más avanzados que tienen en cuenta valores atípicos (outliers), son capaces de trabajar con un gran número de inputs de forma robusta, discriminan entre inputs que estén correlacionados, capturan efectos no lineales, etc.

Así, tenemos las regresiones lasso, que seleccionan el subconjunto de inputs más pequeño que sea necesario para predecir el output. Por su parte, las regresiones logísticas permiten trabajar con outputs binarios con los que representar mediante ceros y unos las decisiones de compra y venta. Con el Análisis de Componentes Principales podemos buscar las causas del comportamiento del mercado usando diferentes variables y con el análisis cluster podemos clasificar fácilmente acciones de diferentes empresas en función de sus ratios financieros, en base a similitudes que permiten crear grupos heterogéneos.  

Sin embargo, en los últimos años ha aparecido un nuevo conjunto de técnicas de análisis inspiradas en el funcionamiento del cerebro humano. Dentro de nuestro cerebro tenemos una red de neuronas individuales. Cada neurona recibe diferentes impulsos eléctricos (inputs) procedentes de diversas fuentes. La neurona “calcula” un promedio ponderado de estos inputs, en el que los pesos relativos de los diferentes inputs son obtenidos a partir de la experiencia previa. Si el promedio ponderado excede un determinado umbral, la neurona envía una señal (output) a otras neuronas, mientras que si el promedio se mantiene por debajo de dicho umbral, la neurona permanece desactivada y simplemente ignora los inputs.

En la década pasada, los científicos analizaron estas estructuras y pensaron que quizás era posible replicarlas para utilizarlas tanto en tareas de aprendizaje supervisado como no supervisado. Gracias al increíble aumento en la capacidad de cálculo de los ordenadores, ha sido posible multiplicar e interrelacionar estas estructuras de forma masiva, obteniendo lo que se conoce como redes neuronales multicapa, que son lo que constituyen la base de lo que hoy denominamos Deep Learning.

El Deep Learning supone un paso más allá en la autonomía de las decisiones que toma la máquina, pues introduce el concepto de Aprendizaje Reforzado, en el que el algoritmo de aprendizaje recibe algún tipo de valoración acerca de la idoneidad de la respuesta dada. Esto es, cuando la respuesta es correcta, el algoritmo recibe una recompensa, mientras que si la predicción que realiza es errónea recibe una penalización o castigo en forma de puntuación negativa. La repetición sucesiva de estos premios y castigos produce un refuerzo de los caminos seguidos para obtener las respuestas correctas en detrimento de aquellos que conducen a respuestas erróneas. Ello permite que una máquina puede tomar decisiones de forma autónoma basándose en su experiencia previa. Una variante muy utilizada de estos métodos de aprendizaje es el conocido como Q Learning, en el que el algoritmo aprende a asignar valores de recompensa a cada par (estado, acción), considerando las recompensas futuras que se obtendrán por pasar a otros estados donde se pueden tomar otras acciones, que seguirán una política particular.

Actualmente las técnicas de reconocimiento de imagen y voz, traducción automática o el diseño de coches autónomos se basan en algoritmos de Deep Learning. Sin embargo, hasta la fecha no se conocen muchas aplicaciones del Deep Learning al trading, por lo que tenemos todo un territorio virgen que explorar ante nosotros. Resulta paradójico que los grandes gestores de Wall Street, si bien desconocen (e incluso detestan) estos métodos, se benefician de ellos al aprovechar informes que analizan grandes bases de datos o procesan los discursos del presidente de la Reserva Federal.

¿Qué Método Utilizar?
Posiblemente esta es la primera pregunta que se plantea cualquier persona que se mete en el campo del Machine Learning: con tantos métodos disponibles ahora mismo, ¿cuándo sé cuál es el más adecuado para lo que quiero hacer?

Realmente no existe una única técnica mejor que otras para todos los proyectos que llevemos a cabo. Lo ideal es conocer una amplia variedad de métodos de Machine Learning y sus aplicaciones. No obstante, dado que evidentemente se trata de un tema complejo, a modo de orientación os propongo la siguiente lista de problemas que se pueden plantear cuando abordamos el análisis del comportamiento de los mercados junto con la técnica de Machine Learning más apropiada para abordarlos:

Una vez elegido el método, nos enfrentaremos a un segundo problema: decidir el número de parámetros del modelo y obtener sus valores. En este paso debemos ser bastante cuidadosos ya que en función del número de parámetros podemos encontrarnos en una de estas situaciones:

Si especificamos pocos parámetros y una forma inadecuada para el modelo, nos encontraremos en el caso del “underfit”: ajustar un modelo cuya forma no se corresponde con los datos y que produce una gran cantidad de errores en el ajuste.

Por el contrario, si parametrizamos en exceso el modelo, podemos caer en el clásico “overfit”, caracterizado por un bajo tamaño de los errores al ajustar el modelo a los datos históricos. Caer en el overfit es muy habitual cuando trabajamos con Machine Learning ya que al final es posible ajustar perfectamente cualquier ecuación o conjunto de ecuaciones más o menos complejas a un conjunto de datos. Las consecuencias del overfit son de sobra conocidas: en el papel todo parecerá muy bonito, pero en la práctica nuestras predicciones usando ese modelo serán bastante pobres.

La situación ideal la tenemos en el último gráfico de la figura anterior, donde el ajuste es razonablemente bueno, pero no perfecto. Lógicamente para validar el modelo siempre es recomendable contar con un conjunto de datos externo, no visto por el algoritmo previamente, para ver qué tal se defiende el modelo frente a la incertidumbre.

Conclusión
En los dos primeros artículos de esta serie hemos visto algunos conceptos, aprendido algo de terminología y clasificado los diferentes métodos de Machine Learning, viendo en qué situaciones puede ser conveniente utilizar uno u otro. En las próximas entregas iremos viendo de forma detallada algunos de estos métodos realizando algunos ejemplos con el lenguaje de programación R

Saludos,
X-Trader

COMPARTIR EN: