sql >> Base de Datos >  >> NoSQL >> HBase

Uso de COD y CML para crear aplicaciones que predicen datos bursátiles

No en realidad no. Probablemente no serás rico a menos que trabajes muy duro... Tan bueno como sería, realmente no puedes predecir el precio de una acción basado únicamente en ML, ¡pero ahora tengo tu atención!

Continuando con mi publicación de blog anterior sobre lo increíble y fácil que es desarrollar aplicaciones basadas en web respaldadas por Cloudera Operational Database (COD), comencé un pequeño proyecto para integrar COD con otra experiencia en la nube de CDP, Cloudera Machine Learning (CML).

En esta demostración, intentaré predecir el comportamiento del precio de apertura de las acciones en función de sus datos históricos, es decir, si el precio de apertura de una acción subirá o bajará. No soy un científico de datos, pero hay muchos ejemplos en línea sobre cómo hacerlo (tomé algunos ejemplos de código, los arreglé y los ajusté para que funcionen con COD). Para ello, utilizaré el algoritmo LSTM (memoria a largo plazo a corto plazo). RNN en general (redes neuronales recurrentes) y LSTM específicamente funcionan muy bien con datos de series temporales

Para evitar dudas, no pretendemos ser expertos en el mercado de valores, y nada en esta publicación de blog debe tomarse como un consejo financiero de ninguna manera. Este es simplemente un ejemplo de cómo desarrollar una solución utilizando el software de Cloudera.

Componentes principales utilizados en esta demostración:

  • Cloudera Operational Database (COD), como mencioné en mi publicación anterior, es una solución dbPaaS administrada disponible como una experiencia en Cloudera Data Platform (CDP)
  • CML está diseñado para científicos de datos e ingenieros de ML, lo que les permite crear y administrar proyectos de ML desde el código hasta la producción. Características principales de CML: 
    • Entorno de desarrollo para científicos de datos, aislado, en contenedores y elástico
    • Kit de herramientas de producción de ML:implementación, servicio, supervisión y gobernanza de modelos de ML
    • Servicio de aplicaciones:cree y sirva aplicaciones personalizadas para casos de uso de ML
    • Aplicaciones preempaquetadas para obtener información para usuarios comerciales
      • Construcción sencilla de paneles y aplicaciones mediante la función de arrastrar y soltar con Cloudera Data Visualization
      • Aplicaciones de plantilla como kits de inicio para sus casos de uso
  • Datos de stock:para extraer los datos de stock, utilicé el servicio alpha vantage (versión gratuita). Básicamente, es un servicio que le permite obtener un resumen diario de las estadísticas de acciones (apertura, cierre, bajo, alto volumen)

Crear la aplicación

Lo primero que debemos hacer es crear una base de datos en COD.

1. Inicie sesión en el plano de control de Cloudera Data Platform Public Cloud

2. Elija Base de datos operativa y luego haga clic en "Crear base de datos"

3. Elija su entorno y asigne un nombre a su base de datos

4. Una vez que la base de datos esté funcionando, cambie a la pestaña JDBC

5. Configure su contraseña de carga de trabajo de CDP

6. Ahora pasemos a CML. Vuelva al plano de control y haga clic en "Aprendizaje automático" y luego en "Aprovisionar espacio de trabajo". Asigne un nombre a su espacio de trabajo y seleccione el entorno que desea usar.

7. Una vez que se aprovisiona el espacio de trabajo, cree un nuevo proyecto, asígnele un nombre y use git para el código fuente. Todo el código fuente se puede encontrar aquí.

8. Una vez creado el proyecto, verá todos los archivos en el directorio del proyecto:

9. Poca logística adicional:necesitamos crear variables de entorno para el proyecto, que almacenarán el acceso a nuestra base de datos y la clave API alpha vantage. Para hacer esto, vaya a la pestaña "configuración del proyecto ->avanzado"

10. Ahora, comencemos a ejecutar el proyecto:haga clic en "nueva sesión", asigne un nombre a su sesión, elija "python 3" y el perfil de recursos

11. Ya sea en la terminal o en la CLI en la parte inferior, instale todas las bibliotecas requeridas ejecutando "pip3 install -r requirements.txt"

12. El siguiente paso es crear nuestra tabla en la que se almacenarán los datos en nuestra base de datos. para ello, ejecute el script de configuración:

13. ¡Ahora, comencemos a probar nuestro modelo! Vaya a runner.py y ejecútelo. Básicamente, este script hace lo siguiente:

a) Obtiene los datos de existencias diarias de la ventaja alfa

b) Transformación básica de datos

c) Almacenar los datos en la base de datos operativa de Cloudera 

d) Ejecute el modelo y cree el archivo del modelo (tech_ind_model.py)

e) Ejecutar la predicción de los últimos 120 días

f) Calcular las ganancias previstas si compramos y vendemos acciones a las tasas exactas 

14. Mientras se ejecuta el programa, verá que recopila datos para cada acción, los carga en COD, realiza la predicción y traza un gráfico que muestra el precio pronosticado frente al precio actual. Aunque el gráfico muestra que la tendencia en la mayoría de los casos es muy similar, incluso una pequeña diferencia puede afectar los ingresos totales de esas recomendaciones. El resultado de la ejecución incluye la información mencionada a continuación para cada acción:

a) recomendación:conservar/comprar/vender 

b) última predicción:último precio previsto 

c) precio:último precio

d) predicho:predicción para el próximo precio de apertura

e) señal:alta/baja:la recomendación es fuerte/no

15. Según la última vez que ejecuté el programa, perdería dinero en la mayoría de las acciones según las recomendaciones, pero al mismo tiempo, ¡¡¡había algunas que predijeron una ganancia de hasta el 20 %!!!

Ahora, el comercio algorítmico en general y la predicción de los precios de las acciones son temas que han existido durante muchos años. Para poner en práctica casos de uso de aprendizaje automático como este, necesita herramientas potentes que sean fáciles de usar, escalables y listas para la empresa.

La base de datos operativa de Cloudera proporciona una latencia inferior a un segundo para lecturas/escrituras aleatorias y es exactamente lo que se necesita para aplicaciones en tiempo real como las que se utilizan en la industria de servicios financieros.

Para comenzar con CML y COD...

Espero que lo encuentres útil,

¡¡Feliz codificación!!