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

 
Aleksey Vyazmikin:

Y si encontramos ramas con buena probabilidad y las codificamos en un predictor, y luego una vez más le damos al árbol para que muela, entonces el árbol pensará cómo hacer una mejora a partir de los resultados encontrados (los predictores deberían entonces gustar, ya que tienen un gran porcentaje de decisiones correctas?

No lo sé :) No he realizado tales experimentos con el árbol. Pero, por ejemplo, todo tipo de modelos GBM funcionan así: construyen un árbol, luego otro árbol que da mejores resultados en comparación con el anterior, luego otro árbol más y así sucesivamente.

 
Dr. Trader:

Si se ramifica más, la precisión de estos datos aumentará, por supuesto. Pero es más probable que caiga en los nuevos datos.

Aquí se alcanza un cierto nivel óptimo, cuando el árbol ya ha aprendido algo, pero todavía no hay un sobreajuste, y podemos esperar resultados similares en los nuevos datos.

Hmm, pero entonces, si comprimimos este árbol en un solo predictor y buscamos una solución? De hecho, mis predictores a menudo son ya algún tipo de cálculos previos, clasificación de valores y demás, es decir, si le doy datos brutos al árbol, la ramificación se detendría antes y con más error... Y sobre esta base la ramificación en la dirección correcta dará el resultado, pero esta dirección es desconocida, y cómo determinarla es la cuestión.

 
Dr. Trader:

No lo sé :) No he hecho esos experimentos con el árbol. Pero, por ejemplo, todos los tipos de modelos GBM funcionan así: construyen un árbol, luego otro que dará una mejora en comparación con el anterior, luego otro, etc.

Parece que tengo que leer sobre estos modelos GBM... pero ¿dónde los reproducen (sólo R?)?

Queda por probar los filtros - incluso mi programa dio al menos algún resultado allí, puede ser el suyo dará algo interesante, porque todos los predictores de hecho se utilizan en TC como filtros.

 

Dr. Trader, he descubierto que si consideramos la combinación deLevl_first_H1, Levl_High_H1, Levl_Low_H1, Levl_Support_H1, Levl_Close_H1 , como una regla entera separada, en general como se pretendía originalmente, obtenemos una curiosa tabla


De la tabla se deduce:

1. Se han necesitado 6088 combinaciones para describir dos años para todas las barras, teniendo en cuenta el objetivo, y si no tenemos en cuenta el objetivo, será aún menos, es decir, una combinación en caso de distribución uniforme describe 86 filas para dos años, pero creo que hay combinaciones más frecuentes y menos frecuentes.

2. La aparición de nuevas normas únicas de 2015 a 2016 fue del 41%, y con el objetivo 1 de nuevas normas el 55%, es decir, el 45% de las normas de 2015 se mantuvieron y siguieron siendo válidas, lo que ya me parece bueno.

3. La muestra de 2015 y 2016 utiliza solo el 21% de todas las combinaciones posibles, por lo que, o bien el resto son extremadamente singulares, o bien están inframuestreadas.

¿No deberíamos utilizar estos datos de alguna manera al construir el árbol?

Añadido:

Entonces hice este experimento, añadí reglas de 2016 objetivo 0 y 1 a objetivo 1 y 0 limpias de duplicados, luego eliminé las filas duplicadas, y obtuve un resultado deprimente, al que no le encuentro sentido

Resulta que las reglas falsas para el objetivo "1" son el 81% y para el objetivo "0" son el 38%, aunque no sé qué porcentaje de filas contienen el porcentaje de error... es posible que la proporción sea diferente, ya que de lo contrario se habrían añadido nuevas reglas exactamente en la misma cantidad que se detectaron en 2016, lo que no es el caso, lo que significa que las reglas no siempre se cumplen y sólo necesitan condiciones adicionales - predictores.

 

Aleksey Vyazmikin:


Se deduce de la tabla:

las reglas no siempre se cumplen y sólo necesitan condiciones adicionales: predictores.

Aleksey, te propongo hacer un NS-ka maduro de una vez. El muestreo y los bosques por sí solos no nos llevarán (a la comunidad MQL) muy lejos.

Evidentemente, una estrategia NS que funcione necesita una plataforma analítica para tomar una decisión como operador: ¿entrar en el mercado para comprar, para vender, o en general? ¿Vale la pena cerrar posiciones para comprar, vender o en general?

Maxim y yo lo hemos fantaseado AQUÍ, así que por favor léelo y confirma que tiene sentido.

 
geratdc_:

Alexey, te sugiero que hagas una cosa madura tipo NS de inmediato. Nosotros (la comunidad MQL) no llegaremos lejos sólo con muestras y andamios.

Evidentemente, una estrategia NS que funcione necesita una plataforma analítica para tomar una decisión como operador: ¿entrar en el mercado para comprar, para vender, o en general? ¿Vale la pena cerrar posiciones para comprar, vender o en general?

Maxim y yo hemos fantaseado con ello AQUÍ, así que por favor compruébalo y confirma que tiene sentido.

Aquí no estoy seguro de que haya un lugar para NS en el mercado...

 

Ahora presta atención. Decidí trabajar esta semana en el script de Dock y la red de correo electrónico.

Ahora la mejor parte y que podría ser?????

Con el número máximo de neuronas igual a 200 (por defecto) la calidad del aprendizaje fue de 0,6 según la puntuación R. Sin embargo, al reducir el número máximo de neuronas ocultas a 30, aumenté la estimación a 0,85 (que es muy buena). Sin embargo, empecé a recibir copias de los modelos por pesos. Siempre consigo los mismos pesos. Aquí es donde entra la pregunta. La genética se obstina en llegar a la misma función mínima. Los datos son tan inequívocos que en los números reales obtenemos el mismo mínimo con idénticas ponderaciones. Veamos cómo funciona durante semanas...

Si para ser exactos el optimizador de Reshetov para la semana pasada ganó un poco más que la red ELMNN, pero es mucho más rápido para instalarlos, por lo que voy a tratar de cambiar a ellos, si va a funcionar voy a renunciar a Reshetov por ahora debido a la instalación de la red demasiado capacitado en work....

 
Aleksey Vyazmikin:

Por lo visto hay que leer sobre estos modelos de GBM... ¿y dónde los reproducen (sólo en R?)?

También debería haber en Python.

Aleksey Vyazmikin:

Queda por probar los filtros - incluso mi programa dio al menos algunos resultados allí, tal vez el suyo dará algo interesante, porque todos los predictores se utilizan esencialmente en TC como filtros.

Ejecutaré el algoritmo esta noche y mostraré los resultados mañana

Aleksey Vyazmikin:

De la tabla se deduce:

...

Alcanzar una precisión del 100% y esperar que el modelo funcione bien suele ser imposible en el mercado de divisas, se necesitan meses para seleccionar predictores e incluso un objetivo que encaje bien. Por lo general, tras alcanzar una precisión de un par de decenas superior al 50%, el modelo empieza a memorizar los ejemplos de entrenamiento en lugar de encontrar patrones lógicos en ellos. Así que el resultado de los nuevos datos será cada vez peor. Con tus datos obtuve este óptimo del 60% - cuando los resultados en los datos de entrenamiento y de prueba son aproximadamente iguales, pero con una partición más detallada del árbol y una mayor precisión el bosque muestra resultados cada vez peores en los nuevos datos.

 
Mihail Marchukajtes:

Con el número máximo de neuronas igual a 200 (el valor por defecto), la calidad del aprendizaje fue de 0,6 según la puntuación R. Sin embargo, al reducir el número máximo de neuronas ocultas a 30, lo aumenté a 0,85 (que es muy bueno).

La genética trata de encontrar los parámetros adecuados para un número limitado de llamadas a funciones. Al reducir el número de variantes de este parámetro (30 en lugar de 200) la genética puede investigar la región de 1 a 30 con más detalle. Y así es, si conoces los límites específicos para encontrar algún parámetro del modelo, es mejor dar a la genética esta información de inmediato.


Alternativamente:

gaResult <- ga(type="real-valued",
               fitness = GaFitness,
               min = c(1,1,0),
               max = c(NHID_MAX, length(ACTFUN_NAMES), 1000),
               popSize = 500,
               monitor=plot)

Añade esta línea (la verde) al código, entonces el genetista tendrá 500 individuos en la población en lugar de los 50 por defecto. Y podrá probar 10 veces más modelos (pero el tiempo de ejecución del script también aumentará 10 veces), pudiendo probar tantas combinaciones de parámetros de modelos como sea posible. Incluso con un máximo de 200 neuronas creo que la genética también podrá encontrar un mejor resultado con 0,85, o al menos acercarse a él.

 

Oh, será algo para leer, había olvidado lo que es. O más bien, olvidó la diferencia entre GBM y XGboost... o no lo sabía

gbm puede potenciar cualquier modelo, xgb parece estar en los árboles

Sé que impulsar es un poco mejor que mendigar a través del cual se construye el bosque. No sé cómo es con el sobreentrenamiento.

https://habr.com/company/ods/blog/327250/

https://datascienceplus.com/gradient-boosting-in-r/

Открытый курс машинного обучения. Тема 10. Градиентный бустинг
Открытый курс машинного обучения. Тема 10. Градиентный бустинг
  • 2018.05.17
  • habr.com
Всем привет! Настало время пополнить наш с вами алгоритмический арсенал. Сегодня мы основательно разберем один из наиболее популярных и применяемых на практике алгоритмов машинного обучения — градиентный бустинг. О том, откуда у бустинга растут корни и что на самом деле творится под капотом алгоритма — в нашем красочном путешествии в мир...
Razón de la queja: