¿Cuáles son los sistemas de aprendizaje automático de última generación para predecir los precios del oro?

¿Es posible predecir hacia dónde se dirige el precio del oro?

Sí, usemos técnicas de regresión de aprendizaje automático para predecir el precio de uno de los metales preciosos más importantes, el oro.

Crearemos un modelo de regresión lineal de aprendizaje automático que tome información de los precios anteriores del ETF de oro (GLD) y devuelva una predicción del precio del ETF de oro al día siguiente. GLD es el mayor ETF que invierte directamente en oro físico.

Pasos para predecir los precios del oro usando el aprendizaje automático en python

  1. Importe las bibliotecas y lea los datos del ETF Gold
  2. Definir variables explicativas.
  3. Definir variable dependiente
  4. Dividir los datos en el tren y probar el conjunto de datos.
  5. Crear un modelo de regresión lineal.
  6. Predecir los precios del oro ETF

Importe las bibliotecas y lea los datos del ETF Gold

Lo primero es lo primero: importe todas las bibliotecas necesarias para implementar esta estrategia.

# LinearRegression es una biblioteca de aprendizaje automático para regresión lineal

de sklearn.linear_model import LinearRegression

# pandas y numpy se usan para la manipulación de datos

importar pandas como pd

importar numpy como np

# matplotlib y seaborn se usan para trazar gráficos

importar matplotlib.pyplot como plt

importar seaborn

# fix_yahoo_finance se usa para recuperar datos

importar fix_yahoo_finance como yf

Luego, leemos los últimos 10 años de datos diarios de precios de ETF de oro y los almacenamos en Df. Eliminamos las columnas que no son relevantes y eliminamos los valores de NaN usando la función dropna (). Luego, graficamos el precio de cierre del ETF de oro …

Leer más: https://www.quantinsti.com/blog/…

La técnica de regresión de aprendizaje automático se puede utilizar para predecir el precio de uno de los metales preciosos más importantes, el oro.

Para respaldar la respuesta anterior, crearé un modelo de regresión lineal de aprendizaje automático que toma información de los precios anteriores del ETF de oro y devuelve una predicción del precio del ETF de oro al día siguiente.

Seguiré los siguientes pasos:

  1. Importe las bibliotecas y lea los datos del ETF Gold
  2. Definir variables explicativas.
  3. Definir variable dependiente
  4. Dividir los datos en el tren y probar el conjunto de datos.
  5. Crear un modelo de regresión lineal.
  6. Predecir los precios del oro ETF

Importe las bibliotecas y lea los datos del ETF Gold

Lo primero es lo primero: importe todas las bibliotecas necesarias para implementar esta estrategia.

# LinearRegression es una biblioteca de aprendizaje automático para regresión lineal
de sklearn.linear_model import LinearRegression
# pandas y numpy se usan para la manipulación de datos
importar pandas como pd
importar numpy como np
# matplotlib y seaborn se usan para trazar gráficos
importar matplotlib.pyplot como plt
importar seaborn
# fix_yahoo_finance se usa para recuperar datos
importar fix_yahoo_finance como yf

Luego, leemos los últimos 10 años de datos diarios de precios de ETF de oro y los almacenamos en Df. Eliminamos las columnas que no son relevantes y eliminamos los valores de NaN usando la función dropna (). Luego, graficamos el precio de cierre del ETF de oro.

# Leer datos
Df = yf.download (‘GLD’, ‘2008-01-01’, ‘2017-12-31’)
# Solo mantenga columnas cercanas
Df = Df [[‘Cerrar’]]
# Soltar filas con valores faltantes
Df = Df.dropna ()
# Graficar el precio de cierre de GLD
Df.Close.plot (figsize = (10,5))
plt.ylabel (“Precios del ETF de oro”)
plt.show ()

Definir variables explicativas.

Una variable explicativa es una variable que se manipula para determinar el valor del precio del ETF de oro al día siguiente. Simplemente, son las características que queremos usar para predecir el precio del ETF de oro. Las variables explicativas en esta estrategia son los promedios móviles de los últimos 3 días y 9 días. Dejamos caer los valores de NaN usando la función dropna () y almacenamos las variables de características en X.

Sin embargo, puede agregar más variables a X que considere útiles para predecir los precios del ETF de oro. Estas variables pueden ser indicadores técnicos, el precio de otro ETF como los mineros de oro ETF (GDX) o Oil ETF (USO), o datos económicos de EE. UU.

Df [‘S_3’] = Df [‘Cerrar’]. Shift (1) .rolling (window = 3) .mean ()
Df [‘S_9’] = Df [‘Cerrar’]. Shift (1) .rolling (ventana = 9) .mean ()
Df = Df.dropna ()
X = Df [[” S_3 ‘,’ S_9 ‘]]
X.head ()

Definir variable dependiente

Del mismo modo, la variable dependiente depende de los valores de las variables explicativas. En pocas palabras, estamos tratando de predecir el precio del ETF de oro. Almacenamos el precio del ETF de oro en y.

y = Df [‘Cerrar’]
y.head ()

Dividir los datos en el tren y probar el conjunto de datos.

En este paso, dividimos los predictores y los datos de salida en trenes y datos de prueba. Los datos de entrenamiento se utilizan para crear el modelo de regresión lineal, combinando la entrada con la salida esperada. Los datos de la prueba se utilizan para estimar qué tan bien se ha entrenado el modelo.

  1. El primer 80% de los datos se usa para capacitación y los datos restantes para pruebas
  2. X_train y y_train son conjuntos de datos de entrenamiento
  3. X_test e y_test son conjuntos de datos de prueba

t = .8
t = int (t * len (Df))
# Conjunto de datos del tren
X_train = X [: t]
y_train = y [: t]
# Conjunto de datos de prueba
X_test = X [t:]
y_test = y [t:]

Crear un modelo de regresión lineal.

Ahora crearemos un modelo de regresión lineal. Pero, ¿qué es la regresión lineal?

Si intentamos capturar una relación matemática entre las variables ‘x’ e ‘y’ que “mejor” explica los valores observados de ‘y’ en términos de valores observados de ‘x’ ajustando una línea a través de diagramas de dispersión, entonces dicha ecuación entre x e y se llama análisis de regresión lineal.

Para desglosarlo aún más, la regresión explica la variación en una variable dependiente en términos de variables independientes. La variable dependiente – ‘y’ es la variable que desea predecir. Las variables independientes: ‘x’ son las variables explicativas que utiliza para predecir la variable dependiente. La siguiente ecuación de regresión describe esa relación:

[matemáticas] Y = m1 * X1 + m2 * X2 + C [/ matemáticas]

[matemática] Precio del ETF de oro = m1 * promedio móvil de 3 días + m2 * promedio móvil de 15 días + c [/ matemático]

Luego usamos el método de ajuste para ajustar las variables independientes y dependientes (x’s e y’s) para generar coeficientes y constantes para la regresión.

linear = LinearRegression (). fit (X_train, y_train)
imprima “Precio ETF de oro =”, redondo (linear.coef_ [0], 2), \
“* Promedio móvil de 3 días”, redondo (linear.coef_ [1], 2), \
“* Promedio móvil de 9 días +”, redondo (linear.intercept_, 2)

Salida:

[matemática] Precio del ETF de oro = 1.2 * Promedio móvil de 3 días – 0.2 * Promedio móvil de 9 días + 0.39 [/ matemático]

Predecir los precios del oro ETF

Ahora, es hora de verificar si el modelo funciona en el conjunto de datos de prueba. Predecimos los precios del ETF de oro utilizando el modelo lineal creado utilizando el conjunto de datos del tren. El método de predicción encuentra el precio del ETF de oro (y) para la variable explicativa dada X.

predicted_price = linear.predict (X_test)
predicted_price =
pd.DataFrame (predicted_price, index = y_test.index, columnas = [‘precio’])
predicted_price.plot (figsize = (10,5))
y_test.plot ()
plt.legend ([‘predicted_price’, ‘actual_price’])
plt.ylabel (“Precio del ETF de oro”)
plt.show ()

El gráfico muestra el precio previsto y real del ETF de oro.

Ahora, calculemos la bondad del ajuste usando la función score ().

r2_score = linear.score (X [t:], y [t:]) * 100
flotante (“{0: .2f}”. formato (r2_score))

Salida:

95,81%

Como se puede ver, el R-cuadrado del modelo es 95.81%. R-cuadrado siempre está entre 0 y 100%. Un puntaje cercano al 100% indica que el modelo explica bien los precios del ETF de oro.

More Interesting

¿Qué pasaría con el dinero y la economía si en el futuro los robots y la Inteligencia Artificial vuelven obsoletos la mayoría (si no todos) los trabajos?

¿Hay algún marco de Python específico para AI, NLP o material relacionado con big data?

¿Cuáles son las diferencias entre 'inteligencia computacional' y 'aprendizaje automático'?

¿Cómo debo enseñarme sobre temas como AI y Deep Learning si no tengo conocimientos previos de programación? Quiero comenzar desde lo básico.

¿Cuál es la próxima gran novedad en la industria del software, aparte de la inteligencia artificial y la robótica?

¿Hay alguna manera de probar si es posible un modelo algorítmico de la mente humana sin implementarlo?

¿Cuáles son algunos temas comunes que deben enseñarse en un curso de inteligencia artificial, pero que se omiten en la mayoría de los cursos de IA?

¿Cuáles son las diferencias entre la inteligencia artificial, el aprendizaje automático y el aprendizaje profundo?

¿Puede el arte hecho por IA ser considerado arte?

¿Por qué la inteligencia artificial es un campo especializado?

¿Qué impide que un sistema de aprendizaje automático aprenda su propia salida de jugar contra sí mismo y llegar muy por delante de otros motores de ajedrez?

¿Cuál es la mejor manera de convertir voz a texto?

¿Construir robots humanoides es una buena idea para el futuro de nuestra sociedad? ¿Deberíamos fabricar solo robots no humanoides con fines éticos y de paz?

¿Cuáles son algunas películas geniales de IA o malas de robots como Terminator 2?

¿Cuáles son las principales diferencias entre la inseminación artificial para vacas y la FIV para humanos?