Non, pas vraiment. Vous ne serez probablement pas riche à moins de travailler très dur… Aussi agréable que ce soit, vous ne pouvez pas vraiment prédire un cours d'action basé uniquement sur ML, mais maintenant j'ai votre attention !
Dans la continuité de mon article de blog précédent sur la facilité et la simplicité de développer des applications Web soutenues par Cloudera Operational Database (COD), j'ai lancé un petit projet pour intégrer COD à une autre expérience cloud CDP, Cloudera Machine Learning (CML).
Dans cette démo, je vais essayer de prédire le comportement du prix d'ouverture des actions en fonction de leurs données historiques, c'est-à-dire si le prix d'ouverture d'une action va monter ou descendre. Je ne suis pas un spécialiste des données, mais il existe de nombreux exemples en ligne sur la façon de procéder (j'ai pris des exemples de code, les ai corrigés et ajustés pour qu'ils fonctionnent avec COD). Pour cela, j'utiliserai l'algorithme LSTM (Long Short-term memory). RNN en général (réseaux de neurones récurrents) et LSTM en particulier fonctionnent très bien avec des données de séries chronologiques
Pour éviter tout doute, nous ne prétendons pas être des experts du marché boursier, et rien dans ce billet de blog ne doit en aucun cas être considéré comme un conseil financier. Ceci est purement un exemple de la façon de développer une solution à l'aide du logiciel de Cloudera.
Principaux composants utilisés dans cette démo :
- Cloudera Operational Database (COD), comme mentionné dans mon article précédent, est une solution dbPaaS gérée disponible en tant qu'expérience dans Cloudera Data Platform (CDP)
- CML est conçu pour les data scientists et les ingénieurs ML, leur permettant de créer et de gérer des projets ML du code à la production. Principales fonctionnalités de CML :
- Environnement de développement pour les scientifiques des données, isolé, conteneurisé et élastique
- Production ML Toolkit – Déploiement, diffusion, surveillance et gouvernance des modèles de ML
- App Serving - Créez et servez des applications personnalisées pour les cas d'utilisation de ML
- Applications pré-emballées pour fournir des informations aux utilisateurs professionnels
- Création simple par glisser-déposer de tableaux de bord et d'applications avec Cloudera Data Visualization
- Modèles d'applications en tant que kits de démarrage pour vos cas d'utilisation
- Données de stock :pour extraire les données de stock, j'ai utilisé le service alpha vantage (version gratuite). Fondamentalement, c'est un service qui vous permet d'obtenir un résumé quotidien des statistiques des stocks (ouverture, clôture, faible, volume élevé)
Créer l'application
La première chose que nous devons faire est de créer une base de données dans COD.
1. Connectez-vous au plan de contrôle du cloud public Cloudera Data Platform
2. Choisissez Base de données opérationnelle puis cliquez sur "Créer une base de données"
3. Choisissez votre environnement et nommez votre base de données
4. Une fois la base de données opérationnelle, passez à l'onglet JDBC
5. Définissez votre mot de passe de charge de travail CDP
6. Passons maintenant à CML - Retournez au plan de contrôle et cliquez sur "Apprentissage automatique" puis sur "Provision workspace" Donnez un nom à votre espace de travail et sélectionnez l'environnement que vous souhaitez utiliser
7. Une fois l'espace de travail provisionné, créez un nouveau projet, donnez-lui un nom et utilisez git pour le code source. Tout le code source peut être trouvé ici.
8. Une fois le projet créé, vous verrez tous les fichiers dans le répertoire du projet :
9. Peu de logistique supplémentaire - nous devons créer des variables d'environnement pour le projet, qui stockeront l'accès à notre base de données, et la clé API alpha vantage. Pour cela allez dans l'onglet "paramètres du projet ->avancé"
10. Maintenant, commençons à exécuter le projet - cliquez sur "nouvelle session", donnez un nom à votre session, choisissez "python 3" et le profil de ressource
11. Soit sur le terminal, soit sur la CLI en bas, installez toutes les bibliothèques requises en exécutant "pip3 install -r requirements.txt"
12. La prochaine étape consiste à créer notre table dans laquelle les données seront stockées dans notre base de données. pour cela lancez le script setup :
13. Maintenant, commençons à tester notre modèle ! Accédez à runner.py et exécutez-le. Fondamentalement, ce script effectue les opérations suivantes :
a) Obtient les données quotidiennes sur les stocks à partir de la position alpha
b) Transformation de données de base
c) Stocker les données dans la base de données opérationnelle Cloudera
d) Exécutez le modèle et créez le fichier de modèle (tech_ind_model.py)
e) Exécutez la prédiction pour les 120 derniers jours
f) Calculez les bénéfices prévus si nous achetons et vendons des actions aux taux exacts
14. Pendant que le programme est en cours d'exécution, vous verrez qu'il collecte des données pour chaque action, les télécharge sur COD, effectue la prédiction et trace un graphique affichant le prix prévu par rapport au prix actuel. Bien que le graphique montre que la tendance dans la plupart des cas est très similaire, même une légère différence peut avoir un impact sur le revenu total de ces recommandations. La sortie de l'exécution comprend les informations mentionnées ci-dessous pour chaque stock :
a) recommandation :conserver/acheter/vendre
b) dernière prévision :dernier prix prédit
c) prix :dernier prix
d) prédit :prédiction pour le prochain prix d'ouverture
e) signal :élevé/faible :la recommandation est-elle forte/non ?
15. Sur la base de la dernière fois que j'ai exécuté le programme, je perdrais de l'argent dans la plupart des actions sur la base des recommandations, mais en même temps, il y en avait quelques-unes qui prévoyaient un bénéfice allant jusqu'à 20 % !!!
Maintenant, le trading algorithmique en général et la prédiction des cours des actions sont des sujets qui existent depuis de nombreuses années. Afin d'opérationnaliser des cas d'utilisation de machine learning comme celui-ci, vous avez besoin d'outils puissants, faciles à utiliser, évolutifs et prêts pour l'entreprise.
La base de données opérationnelle Cloudera offre une latence inférieure à la seconde pour les lectures/écritures aléatoires et correspond exactement à ce qui est nécessaire pour les applications en temps réel telles que celles utilisées dans le secteur des services financiers.
Pour commencer avec CML et COD…
J'espère que vous le trouverez utile,
Bon codage !!