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
En el 1er comentario del vídeo, tenga en cuenta que debe especificar explícitamente la versión 2.10.0 de tensorflow
Gracias, me refiero a
No tiene sentido experimentar ahí, porque tal previsión no difiere de una ingenua (se toma como previsión el valor del precio de cierre anterior). En este caso, realmente se obtiene casi el menor error de aprendizaje (RMS), lo que no dice nada sobre la capacidad de predicción del modelo. Se trata más bien de un ejemplo didáctico sobre ONNX de que incluso una arquitectura compleja puede trasladarse fácilmente al terminal. No sé qué se estaban fumando los autores de ese artículo sobre la investigación de arquitecturas de redes neuronales para la predicción de series temporales :) aquí o se necesita una estimación correcta, o una clasificación en lugar de una regresión.
Por favor, explica el ejemplo de la imagen en el que interviene el otro 20% de velas de prueba. ¿Es una previsión? ¿Por qué el pronóstico coincide casi completamente con los precios reales (a juzgar por la imagen, parecen dos velas, sólo una está desplazada una barra), pero el probador está un poco triste?
Por favor, explique el ejemplo de la imagen en el que interviene el otro 20% de las velas de prueba. ¿Se trata de una previsión? ¿Por qué la previsión coincide casi totalmente con los precios reales (a juzgar por la imagen, parecen dos velas, sólo una está desplazada una barra), pero en el probador hay cierta tristeza?
Usted respondió a su propia pregunta, que se obtiene un retraso MA como un pronóstico (por lo general con un solo desplazamiento hacia atrás). Este es un truco bien conocido cuando se entrena a través de métricas estándar, se minimizan con este resultado.
Arriba he añadido un enlace donde leer sobre otras métricas.https://stackoverflow.com/questions/65316205/implementation-os-nmae-as-metric-with-keras
Usted respondió a su propia pregunta, que se obtiene un MA rezagado como una predicción (por lo general con un solo desplazamiento hacia atrás). Este es un truco bien conocido cuando se entrena a través de métricas estándar, se minimizan con este resultado.
Arriba he añadido un enlace donde leer sobre otras métricas.Se necesita un artículo sobre este tema.
Se necesita un artículo sobre este tema.
Aparentemente las métricas de la industria energética tampoco encajan :) no conozco una buena solución, así que me he pasado a la clasificación.
En google para la mejor métrica de previsión, sale MAPE (Mean absolute percentage error).
Para utilizar explícitamente las métricas en la optimización de modelos keras, deben especificarse explícitamente como una función de pérdida, no como en #13.
Se puede encontrar una implementación de más de 100 métricas de regresión en Python aquí (Criterio de Información de Akaike, distancia de Aitchison, R-cuadrado ajustado de Amemiya, Criterio de Predicción de Amemiya, Sesgo como y dado por Gupta, Criterio de Información Bayesiano, puntuación de Brier, coeficiente de correlación de Pearson, diferencia raíz-media-cuadrada (RMS) centrada, MSE descompuesto desarrollado por Kobayashi y Salam...).
Ejemplo con optimización de la métrica MAPE (se debe usar keras en lugar de funciones matemáticas de numpy, porque tensores).
# example from https://github.com/AtrCheema/SeqMetrics/blob/master/SeqMetrics/_rgr.py
# Mean Absolute Percentage Error (MAPE)
# The MAPE is often used when the quantity to predict is known to remain way above zero_.
# It is useful when the size or size of a prediction variable is significant in evaluating the accuracy of a prediction_.
# It has advantages f scale-independency and interpretability.
# However, it has the significant disadvantage that it produces infinite or undefined values for zero or close-to-zero actual values_.
# .. _zero:
# https://doi.org/10.1016/j.neucom.2015.12.114 // Mean Absolute Percentage Error for regression models
# .. _prediction:
# https://doi.org/10.1088/1742-6596/930/1/012002 // Forecasting Error Calculation with Mean Absolute Deviation and Mean Absolute Percentage Error
# .. _values:
# https://doi.org/10.1016/j.ijforecast.2015.12.003 // A new metric of absolute percentage error for intermittent demand forecasts
from keras import backend as K
def MAPE_metric(y_true, y_pred):
return (K.mean(K.abs((y_true - y_pred) / (y_true+1e-8)) * 100))
#define the model
model = Sequential()
model.add(Conv1D(filters=256, kernel_size=2,activation='relu',padding = 'same',input_shape=(120,1)))
model.add(MaxPooling1D(pool_size=2))
model.add(LSTM(100, return_sequences = True))
model.add(Dropout(0.3))
model.add(LSTM(100, return_sequences = False))
model.add(Dropout(0.3))
model.add(Dense(units=1, activation = 'sigmoid'))
model.compile(optimizer='adam', loss=MAPE_metric , metrics = [MAPE_metric])
cómo es su optimización
gráfico predictivo:
Sin embargo, el uso de MAPE en la optimización aquí también produjo un desplazamiento.
Quizás tengamos que considerar direcciones más complejas de optimizaciones en forma de productos de métricas.
El tema requiere una investigación detallada.
Google para la mejor métrica de previsión muestra MAPE (Mean absolute percentage error)
Para utilizar explícitamente las métricas en la optimización de modelos keras, deben especificarse explícitamente como una función de pérdida, no como en #13.
La implementación de más de 100 métricas de regresión en Python se puede encontrar aquí (Criterio de Información de Akaike, distancia de Aitchison, R-cuadrado ajustado de Amemiya, Criterio de Predicción de Amemiya, Sesgo como y dado por Gupta, Criterio de Información Bayesiano, puntuación de Brier, coeficiente de correlación de Pearson, diferencia centrada de la media cuadrática (RMS), MSE descompuesto desarrollado por Kobayashi y Salam...).
Sin embargo, cuando se utilizó MAPE en el proceso de optimización, también se obtuvo aquí un desplazamiento.
Quizá tengamos que considerar direcciones más complejas de optimizaciones en forma de productos de métricas.
El tema requiere un estudio detallado.
En mi opinión, el problema no siempre está en la métrica, sino en la estructura de los datos seleccionados para la previsión; en este caso, se tomó el conjunto de muestras más "sencillo" para el ejemplo. Intente, por ejemplo, muestrear vectores a través del espacio de incrustación (tome muestras con un paso en el que desaparezca la autocorrelación de la serie) - obtendrá una previsión más parecida a la real - significa no sólo la ausencia de retardo tipo MA, sino también que a veces estará muy equivocada ;-).
Si pica y pega partes de la serie sin fondo de noticias, el resultado debería ser aceptable.
En mi opinión, el problema no está siempre en la métrica, sino en la estructura de los datos seleccionados para la previsión; en este caso, se tomó el conjunto de muestras más "sencillo" para el ejemplo. Pruebe, por ejemplo, a muestrear vectores a través del espacio de incrustación (tome muestras con un paso en el que desaparezca la autocorrelación de la serie) - obtendrá una previsión más parecida a la previsión real - esto significa no sólo la ausencia de retardo tipo MA, sino también que a veces estará muy equivocada ;-).
Esto requiere procesos de preprocesamiento de datos más complejos y un tratamiento aparte del tema. Parece que aquí depende mucho de la naturaleza de las relaciones entre los datos (los mercados tienen relaciones complejas).
Por lo que tengo entendido, si no hay información nueva (o su papel es insignificante en el sentido de las transformaciones lineales Procesamiento óptimo de señales, 1.4 Cancelación de correlaciones 1.5 Ortogonalización de Gram-Schmidt), la mejor previsión será el valor pasado (pero si se tiene en cuenta correctamente, no debería equivocarse mucho, aunque hay que experimentar).
Sobre las métricas ("direcciones" de optimización de los pesos de la red) creo que es necesario entender (para series temporales financieras), la cuestión requiere un artículo aparte.
Invitamos a todos a compartir su experiencia.
Cualquier proyecto de aprendizaje automático consta de tres etapas
El uso de modelos ONNX en µl resuelve el problema de la implementación. Es cierto que no todos los modelos son fáciles.
El entrenamiento y la optimización de los modelos se resuelven mediante un proceso independiente en Python.
Pero de todo lo anterior, la primera etapa es la que más tiempo consume, la más creativa y la más importante. Y es imposible realizarla en µl. No consideramos el escalado primitivo como preprocesamiento. Y la sabiduría popular dice: "Basura dentro - basura fuera". Hay demasiadas cosas que desarrollar e implementar adicionalmente en la ACM para utilizar plenamente la MO sólo en la ACM. No se puede abarcar lo inmenso, sobre todo porque está en constante expansión.
Por lo tanto, para ejecutar un preproceso, o se hace en otro lenguaje (quien domine R/Python/Julia, etc.) o se intenta convertirlo a ONNX.
La ventaja de implementar ONNX hasta ahora es que aprenderemos a convertir, crear, simplificar y optimizar modelos ONNX. Puede ser útil en el futuro.