Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 755
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
las tablas pueden unirse mediante la función rbind().
MLP1 <- rbind(Train1, Test)
¿Qué es Test(Train2)? ¿Y por qué hay que combinar la tabla de entrenamiento y la tabla de pruebas? La prueba debe ser independiente, para probar el modelo ya entrenado en ella.
No todo saldrá tan fácil y rápido como usted quiere. En el modelo de Reshetov sólo hay que introducir los datos y el propio modelo seleccionará los predictores, determinará los pesos, el número de neuronas, etc. Pero no puedes hacerlo con una neurona normal, necesitas seleccionar los parámetros para la neurona por medio de una validación cruzada, por ejemplo como en el ejemplo que escribí hoy aquí, o como en los artículos de Vladimir Perervenko.
Mira de nuevo lo que escribí allí -https://www.mql5.com/ru/forum/86386/page753#comment_6821981
Sólo tienes que pegar tus datos en ese código como se describe, y ejecutarlo. Si se toman todos los predictores uno por uno y no se eliminan, entonces desde la primera vez será probablemente demasiado malo. Después de ejecutar el código ejecute el comandomax(gaResult@fitness) adicionalmente, esto mostrará la puntuación R2 del mejor modelo encontrado por la genética. Si la estimación se acerca a 1 o un poco menos, bien, si se acerca a 0 o incluso es negativa, mal.
A continuación, enPREDICTOR_COLUMNS especifique el número exacto de columnas que ha identificado como buenas, y una vez más ejecute el código, el modelo se entrenará sólo con estos predictores. Lo ideal es que la mejor evaluación del modelo por parte de la genética sea cercana a 1 y que la precisión en la tabla de entrenamiento y prueba sea de 1,00.
La tabla de pruebas debe programarse estrictamente después de los datos de entrenamiento, como si este modelo ya estuviera operando en el mercado.
Si no ocurre nada bueno con ese código (incluso conKFOLDS=10) - entonces no es bueno. Si funciona, entonces hay una buena alternativa al modelo de Reshetov y podemos seguir tratando ese código y portar el modelo a mql.
De hecho, sólo hay dos secciones Train1 y Test1
La redA aprende del Tren1 y es muestreada por el Test1
GridB aprende de Test1 y se muestrea en Train1
Cuando sumamos las dos parcelas. La redA aprende Test1, la redB aprende Trine1, obtendremos los resultados de aprendizaje de todo el gráfico de aprendizaje, pero este gráfico será un gráfico de prueba. Eso es lo que quiere decir Reshetov. No lo sé, ya que me sugirió que lo comprobara ..... kFold divide las parcelas de alguna manera.... no claro.....
No quiero repetir el resultado de Reshetov, quiero organizar la IA como la suya. La forma en que entrena al comité. Está claro que la formación en sí ya será un medio disponible, pero la organización, puede jugar un papel importante....
Intentaré ejecutar tu script con mis datos, a ver qué sale...
Ya veo, es casi lo mismo. En el ejemplo de Reshetov las líneas se toman de una en una (entrenamiento en las líneas pares, prueba en las impares), pero en mi ejemplo las líneas se dividen en grupos seguidos (entrenamiento en las líneas 1-100, prueba en las líneas 101-200). Esto es mejor para forex, al menos se comprueba que el modelo puede funcionar en otro intervalo de tiempo, desconocido para él.
También se puede hacer una partición al estilo Reshetov, entonces en la funciónelemnn_kfold erase
y en su lugar insertar
y asegúrese de cambiar el número de pliegues a 2 -KFOLDS=2, de lo contrario aparecerán algunos errores
Sólo tenemos que entender que "entrenamiento" y "prueba" dentro del qufold de validación cruzada son controles anidados. Hay una tabla de entrenamiento, que se divide en varias partes, y estas partes serán las de entrenamiento y las de prueba, y los modelos en el bucle aprenden de una parte y predicen otras, para asegurarse de que con estos parámetros el modelo es capaz de aprender y predecir algo en los datos nuevos para él.
Y hay una tabla de pruebas separada que ya no participa en esta validación cruzada. Sólo espera a que el modelo esté completamente entrenado para comprobarlo, como una prueba en un paseo que simula el comercio real.
Y si el roll forward da resultados normales en cada prueba cuando las ventanas de entrenamiento y de prueba están desplazadas en el tiempo, entonces el último modelo entrenado no se prueba en una mesa de prueba separada, sino que va a la terminal para ser negociado.
Así es, una muestra de control, que puede ser una sección OOS. Entrenado, probado. Se les entrenaba, se les ponía a prueba y luego se les lanzaba al comercio. Personalmente creo que sí......
Pero esto plantea la cuestión. Cómo elegir un modelo sin parcela de control. ¡¡¡¡¡Entrenado, recibió los resultados en la validación cruzada, dijo que este es el modelo que puntuará, lo puso en el real!!!!!
Suelo hacer un patrón de prueba en un día, son 3-4 señales..... teniendo en cuenta que tarda dos semanas en funcionar, no es una gran pérdida......
Para: Dr. Trader.
No me he molestado en analizar el guión en detalle, lo escribes muy "a trapo". Bueno, cada uno tiene su propio estilo. Pero aquí hay algunos puntos importantes. ELM tiene una serie de características en la aplicación:
- cuantos más ejemplos se le den al ELM en el entrenamiento, menos sensible será al ruido (por experiencia, al menos 2000)
- en un conjunto de redes neuronales ELM hay que tener más de 100 de ellas para obtener un resultado sano (por experiencia es mejor tomar alguna redundancia y tamizarla después)
- La fusión aplicada por usted mediante una simple votación da peor resultado que el promedio. Sin embargo, esto es a discreción del desarrollador.
- seet.seed no proporciona la repetibilidad y diversidad necesarias al optimizar los hiperparámetros. Echa un vistazo a los comentarios del artículo. Allí elibrarius puso a prueba esta idea mediante un experimento. Sólo forzando el RNG a un estado controlado en cada inicialización de una red neuronal obtendrás verdaderos resultados de optimización. Para mí es mejor utilizar la optimización bayesiana. Da una buena elección de hiperparámetros.
Buena suerteGracias por los comentarios, los tendré en cuenta.
He añadido un enlace a su último artículo allí al final del texto, quien quiera tener una comprensión más seria de elmNN - mejor que vaya directamente a leer el artículo.
Vladimir Perervenko:
La fusión por simple votación que usted utiliza da peores resultados que el promedio. Aunque queda a discreción del desarrollador.
en realidad hay dos formas de predicción de conjuntos:
1) la función elemnn_kfold_predict() - se considera la media aritmética de los resultados de la regresión de cada modelo
2) function elemnn_kfold_predict_reshetovstyle() - He añadido esto para Mikhail para sus experimentos, esta forma de combinar los resultados del conjunto se utiliza en la neurona de Reshetov. Sólo clasificación. Compara los resultados de todos los modelos y da una respuesta con una clase determinada sólo si todos los modelos dieron la misma predicción. Si al menos un modelo dio una predicción diferente a los demás, la función devuelve una predicción de "no sé".