Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 3157

 
Aleksey Nikolayev #:

Está claro que tienes una noción reinterpretada y sobrecargada (en el sentido de la programación) de tritment. Inicialmente, es una cosa mucho más simple y sin ambigüedades. ¿No podría una noción tan extendida conducir al sobreaprendizaje? En el sentido de que una mayor flexibilidad siempre puede conducir a ello.

No lo sé, yo como McDonald's :) Probablemente. Sólo estaba hojeando el material ofrecido, desde todos los ángulos.
 
mytarmailS #:

paquetes son buenos, pero primero hay que saber lo que se hace.


respuesta del chat sobre los métodos kozuli


Hay varios métodos que se utilizan para la inferencia causal. Algunos de los métodos más comunes son

  1. Experimentos controlados aleatorios: Es un método que se utiliza para identificar relaciones causales en entornos complejos. Implica un control total sobre el mecanismo de asignación y la asignación esaleatoria1.
  2. Datos observacionales: Este método se utiliza cuando los experimentos no son posibles o prácticos. Consiste en analizar datos recogidos de fuentes naturales, como encuestas oregistros administrativos1.
  3. Variables instrumentales: este método seutiliza para identificar relaciones causales cuando hay problemas de endogeneidad o falta dedatos1.
  4. Emparejamiento por propensión: este método seutiliza para comparar grupos con características similares a fin de eliminar el impacto delos factores de confusión1.
  5. Estimador de diferencias en diferencias: este método seutiliza para analizar los cambios a lo largo del tiempo y entregrupos1.

Estos son sólo algunos de los muchos métodos que se utilizan para la inferencia causal. Cada método tiene sus propias ventajas e inconvenientes, y la elección del método depende de la situación particular y de los datos disponibles.


Hábleme del punto 1

Los experimentos controlados aleatorios, también conocidos como ensayos controlados aleatorios(ECA), son un método eficaz para identificar relaciones causa-efecto. En un ECA, los participantes se dividen aleatoriamente en dos o más grupos. Un grupo recibe una intervención (como un medicamento) y el otro un placebo o tratamiento estándar. A continuación, los investigadores comparan los resultados entre los grupos para determinar si hay diferencias en los resultados.

La principal ventaja de los ECA es que la asignación aleatoria de los participantes a los grupos ayuda a eliminar el sesgo y los factores de confusión. Esto significa que cualquier diferencia en los resultados entre los grupos puede atribuirse a la exposición y no a otros factores.

Sin embargo, los ECA no siempre son posibles o prácticos. Por ejemplo, pueden ser caros, requerir mucho tiempo y recursos o ser éticamente inaceptables. En estos casos, los investigadores pueden utilizar otros métodos de inferencia causal.


======================================

¿Está haciendo esto? Es una phyche selecta boruta por lo que parece.


Bueno sobre meta lerners pregunta y aprendizaje ortogonal, aunque está todo en el libro. Y cross fitting.
 
Maxim Dmitrievsky #:
Bien sobre metaaprendizaje, pregunte sobre aprendizaje ortogonal, al fin y al cabo está en el libro

El metaaprendizaje es un enfoque del aprendizaje automático que permite a los algoritmos adaptarse rápidamente a nuevas tareas basándose en la experiencia previa.En elcontexto de la inferencia causal,el metaaprendizaje puede utilizarse para reutilizar modelos predictivos para lainferencia causal1.

Todos los modelos predictivos, como la regresión lineal, los árboles de decisión potenciados, las redes neuronales o los procesos gaussianos, pueden adaptarse a la inferencia causal utilizando los enfoques descritos en este capítulo. Así pues , eléxito del metaaprendizaje depende de la calidad de los modelos predictivos utilizados y de lo bien que se adapten a latarea deinferenciacausal1.

Se trata de un campo de investigación bastante nuevo y en pleno desarrollo, y existen muchos enfoques diferentes del metaaprendizaje en el contexto de la inferencia causal.

========================

El aprendizaje ortogonal es un enfoque del aprendizaje automático que se utiliza para mejorar la inferencia causal. Un ejemplo de aprendizaje ortogonal es el aprendizaje automático doble propuesto por Chernozhukov et al. 1. Este método utiliza un estimador en dos etapas que primero ortogonaliza el efecto de factores de confusión de alta dimensión utilizando sofisticados algoritmos de aprendizaje automático, incluidoLasso2.

El aprendizaje ortogonaltambién se utiliza en otros métodos de inferencia causal, como Orthogonal RandomForest1. Este algoritmo combina el aprendizaje automático dual con los bosques aleatorios generalizados para estimar estadísticamente modelos de momentos condicionales utilizando bosques aleatorios.

En general, el aprendizaje ortogonal mejora la precisión y la solidez de la inferencia causal al eliminar la influencia de los factores de confusión y reducir la sensibilidad a los errores en la estimación de parámetros.

 
Aleksey Nikolayev #:

Está claro que tienes una noción reinterpretada y sobrecargada (en el sentido de la programación) de tritment. Inicialmente, es una cosa mucho más simple y sin ambigüedades. ¿No podría una noción tan ampliada conducir al sobreaprendizaje? En el sentido de que una mayor flexibilidad siempre puede conducir a ello.

Maxim escribió más arriba - no funciona en OOS, que es un signo importante de sobreentrenamiento del modelo.

Por su significado, tal y como yo lo entiendo, se toma un modelo cuyos resultados se intentan refinar para reducir el error.

Pero la fuente de error en el OOS son los propios datos, cuando los mismos valores predictores predicen clases diferentes en situaciones diferentes. Este defecto en los predictores no se puede arreglar con ningún ejercicio matemático, no se puede arreglar la basura, pero sobre basura se puede obtener un error de entrenamiento muy pequeño porque el algoritmo encontrará datos "convenientes" y mostrará un buen resultado. Pero sobre datos nuevos el resultado es deplorable, porque tiene su propia basura.

Al mismo tiempo, el problema de usar cajual se ve de la siguiente manera.

Supongamos que tenemos predictores, el 50% de cuyos valores predicen una de las clases, y el otro 50% predicen aleatoriamente cualquier clase.

Ajustamos el modelo y obtenemos el error de clasificación.

Ahora la pregunta es: ¿es este error de clasificación coherente con la partición de los valores predictores o no? Si se puede mejorar, entonces es cajual, y si no se puede, entonces de ninguna manera NO es cajual, ya que obtenemos un sobreajuste del modelo.

 
Maxim Dmitrievsky #:
Sí. Puedes eliminar la variable tritment de la lista y hacer un potenciador sin ella. No puedo hacerlo con ella. Y para obtener una estimación insesgada, haces un ajuste cruzado.
.

Me pasó lo mismo en estas definiciones, así que no te preocupes :)

No es cuestión de terminología, es cuestión de qué es y cómo aplicarlo....

El Aprendizaje Automático Doble es una técnica que se utiliza para evaluar relaciones causales en los datos

1) ¿Qué estimar?

2) Bien, lo he estimado y entonces ¿qué?

 
mytarmailS #:

No es una cuestión de terminología, sino de qué es y cómo se aplica.

El aprendizaje automático doble es una técnica que se utiliza para evaluar las relaciones causa-efecto en los datos

1) ¿Evaluar qué?

2) Bien, lo has estimado y entonces ¿qué?

A continuación, puede transformar los objetivos y obtener los pesos, ya he escrito. Ellos serán insesgadas. La mayoría de los kozuli sobre estimaciones insesgadas.


 
Resulta que es como el del elefante y los reyes magos. El libro tiene de todo, requieren en sus dedos para hacer un recuento en el foro para darse cuenta de que es un elefante.
 
Aleksey Nikolayev #:

Allí, en el artículo, en la página 10, hay una implementación en forma de pseudocódigo. En la penúltima página, en el apéndice, hay referencias a la implementación en R y a los datos utilizados en el artículo.

El pseudocódigo se refiere a fórmulas :)

En cuanto al código R, gracias, lo había pasado por alto. ¿Entiendo que hay código de función, pero el código en sí, como la lectura de un archivo, está comentado?

# --- Read in data --- 

# > arson = read.csv("arson.csv")
# > i = with(arson, day <= 731)
# > arson1 = arson[i,]
# > arson2 = arson[!i,]
# > arson2[,"day"] = arson2[,"day"] - 731

Aún no he descubierto cómo hacerlo funcionar. ¿Has conseguido que funcione?

Aleksey Nikolayev #:

¿Cómo, en términos generales, se implementan los árboles de decisión en mql5? ¿A través de matrices o plantillas?

No he implementado la construcción de árboles en MQL5 antes - Forester tiene más experiencia aquí.

Sin embargo, creo que usaría vectores y matrices además de arrays - el código es más rápido con ellos. También, como yo lo entiendo, ya que requiere una enumeración completa, será posible utilizar OpenCL.

Pero no sé qué son las "plantillas" en este contexto :(

Ya que hay código en R, es razonable entender al principio si todo tiene sentido o no.

La muestra del artículo utiliza un pequeño número de predictores, yo tengo un orden de magnitud más de ellos y por supuesto son menos informativos individualmente.

En general, me interesa utilizarlo no sólo para comparar dos muestras, sino para detectar anomalías en los datos, creo que éste es el camino a seguir.

La idea es que tenemos grupos de hojas, aunque sean similares, y si vemos un comportamiento anómalo de un predictor, simplemente desactivamos todas las hojas que lo usan, mientras comprobamos si hay correlación con las hojas del grupo. En el mejor de los casos, si se detecta a tiempo, esto permitirá que el modelo siga funcionando, aunque con menos confianza.

 
Trabajar con perdictores es una labor de Sísifo y un intento de comprender el eterno infinito. Ya ha extraído tantos de una curva que es suficiente para sus descendientes :) Alexei ya los ha dividido en átomos. Sólo tienen que ser suficientes. Siempre lo he dicho y mi opinión no ha cambiado.
 
Aleksey Vyazmikin #:

El pseudocódigo se refiere a fórmulas :)

En cuanto al código R - gracias - me lo perdí. Entiendo que hay como código de función, pero el código en sí, como la lectura de un archivo, se comenta a cabo?

Aún no he descubierto cómo hacerlo funcionar. ¿Has conseguido que funcione?

Por lo que tengo entendido, los comandos para trabajar con R en una sesión interactiva están comentados. Primero se carga todo el script para definir las funciones, y luego los comandos línea a línea, pulsando enter después de cada uno. Probablemente sea algo así como una norma en las publicaciones científicas: confiar sólo en la línea de comandos y evitar entornos como Rstudio.

Aleksey Vyazmikin #:

No he implementado la construcción de árboles en MQL5 antes - Forester tiene más experiencia aquí.

Sin embargo, creo que usaría vectores y matrices, además de matrices - el código es más rápido con ellos. También, según tengo entendido, ya que requiere una enumeración completa, será posible utilizar OpenCL.

Pero no sé qué son las "plantillas" en este contexto :(

Ya que hay código en R, es razonable entender al principio si todo esto tiene sentido o no.

La muestra del artículo utiliza un pequeño número de predictores, yo tengo un orden de magnitud más de ellos y por supuesto son menos informativos individualmente.

En general, me interesa usarlo no sólo para comparar dos muestras, sino para detectar anomalías en los datos, creo que éste es el camino a seguir.

La idea es que tenemos grupos de hojas, aunque sean similares, y si vemos un comportamiento anómalo de un predictor, simplemente desactivamos todas las hojas que lo usan, mientras comprobamos si hay correlación con las hojas del grupo. En el mejor de los casos, si se detecta a tiempo, esto permitirá que el modelo siga funcionando, aunque con menos confianza.

En aras de la brevedad, he llamado al árbol CTree de la recopilación de datos y las plantillas de clase, que parecen ser inevitables.

La detección de anomalías se incluye en los objetivos allí - estamos buscando donde los incendios son anómalamente frecuentes.


PD. Hace algún tiempo le escribí sobre el uso de la distribución de Poisson, y aquí se desarrolla al código de trabajo.