[PYTHON] Continuer à faire des prévisions de stock AI pendant 10 heures par jour le 1er mois

J'ai repris l'apprentissage de Python le 3 décembre de l'année dernière. Quand je me demandais si je pouvais faire quelque chose pour la pratique, j'ai eu l'idée de faire une IA pour la prévision du cours des actions, alors j'ai décidé de l'essayer. Le résultat est une IA qui peut (et peut) prédire que le cours des actions augmentera ou baissera de plus de 1% avec une précision de 64%. Le projet 1 est le sujet principal du processus et le projet 2 est le sujet principal.

Projet 1

Utilisez la régression linéaire pour déterminer visuellement si le marché boursier actuel est une bulle. Je voulais également intégrer les résultats sur un site Web afin que n'importe qui puisse générer des images de ses ETF préférés, des actions de l'entreprise ou de toute autre période pour aider à déterminer si le prix actuel est une bulle.

image.png image.png

En conséquence, je pensais avoir réussi avec Django dans mon environnement local, mais je ne pouvais pas réellement le déployer. Je pense que je n'avais pas assez de connaissances sur la base de données et Django. C'est un code pour le moment. https://github.com/LulutasoAI/LRQiita/blob/master/LRgenerator

Projet 2

Prévoyez les cours futurs des actions par analyse d'image

Tentative 1

Une grande quantité de données sur le cours de l'action est convertie en une image de graphique en bougie tous les deux mois, le prix, la date et l'heure affichés à la fin du graphique sont pris, et il est divisé en deux types selon que le prix a augmenté deux mois plus tard. Prédisez si le cours des actions augmentera ou diminuera de la même manière que vous faites la distinction entre les chiens et les chats. Les données sont d'environ 500 feuilles de cours moyen des actions Nikkei, S & P500, APPLE inc et les données de Toyota Motor de 2001 à nos jours. https://github.com/LulutasoAI/Datasetpricechart1 S'il vous plaît pour apprendre

Les données ressemblent à ceci Catégorie 0: le prix augmente après l'image (en hausse) image.png Catégorie 1: le prix après image baisse (en baisse) image.png

résultat

La précision n'a pas changé dans la validation de l'apprentissage, mais la précision est de 58% pour le moment image.png 55,8% lors de l'essai avec un ensemble de test image.png Hmm subtile

Tentative 2

J'ai essayé de prédire en classant le graphique en chandeliers en quatre catégories. Il y a quatre groupes dans l'ensemble de données: le groupe dont le prix a augmenté de 4,8% ou plus dans les deux mois suivant l'image, le groupe dont le prix a diminué de 4,8% ou plus, le groupe dans lequel le prix a légèrement augmenté (4,7% ou moins) dans les autres images et le groupe dont le prix a diminué. Je l'ai divisé en apprentissage. Le résultat est une IA qui peut deviner à quel groupe appartient l'image avec une précision de 36%. J'ai réfléchi à la signification de cette précision de 36%, mais je ne l'ai pas bien comprise. Je pensais que c'était bien meilleur que les 25% qui peuvent être prédits aléatoirement car il s'agit simplement de 4 catégories, mais le ratio des 4 catégories de l'ensemble de données utilisé cette fois est "en baisse de 13,36%", "en baisse drastique de 23,22%" , "en hausse drastique de 38,23%", "en hausse de 25,17%", donc il ne semble pas être si facile d'y penser. Par exemple, à titre d'exemple évident de surentraînement, une IA qui prédit qu'il est "drastiquement en hausse" pour toutes les images peut avoir une précision d'environ 38% (entraînement aléatoire et ensembles de tests de cet ensemble de données). Parce que cela peut être fait). Quoi qu'il en soit, je ne savais pas si 36% étaient bons ou mauvais.

Tentative 3

Je voulais simplifier les choses. Nous avons décidé de nous entraîner en utilisant seulement deux groupes dans l'ensemble de données ci-dessus dont les prix ont évolué de 4,8% ou plus. Par conséquent image.png image.png Le surapprentissage s'est produit de cette manière. Je pense qu'il y a encore de la place pour la recherche dans cette tentative. Il semble que l'on puisse s'attendre à une amélioration en jouant avec les modèles et les couches de keras.

Tentative 4

Je crée simplement un ensemble de données en le divisant en deux selon que le prix a augmenté ou baissé dans les deux mois suivant l'image, mais cette fois j'ai essayé d'apprendre en utilisant une grande quantité de données. Nous avons acquis des données sur le cours des actions pour la période du 01/01/2001 à nos jours.

image.png

Le résultat était plutôt bon.

Tentative 5

Avec la taxonomie ci-dessus, il est possible que quelque chose qui aurait pu être classé comme "bas" avec une légère différence (par exemple, une différence de 2 cents) soit classé comme "up", et le prix serait petit. Je pensais que des choses qui ne changeaient pas pourraient perturber le modèle pendant la formation, alors j'ai décidé de ne pas inclure les choses qui avaient des fluctuations de prix inférieures à 1% dans l'ensemble de données. Le résultat de l'apprentissage avec cet ensemble de données image.png

J'ai réalisé ici que le problème pouvait provenir du modèle ou de la couche Keras plutôt que du jeu de données.

Tentative 6

J'ai essayé d'utiliser tout ce que j'ai appris. L'ensemble de données est vaste et 3753 graphiques en pied de bougie excluant les images dont les prix ont évolué de moins de 1% 2001- J'étais conscient d'éviter le surapprentissage.

Et le résultat d'essayer avec un certain modèle Après 150 époques image.png

Après 250 époques image.png Pas mal.

Mais attendez une minute, si vous y réfléchissez, les graphiques de 2007 à 2009 quand il y a eu un choc Lehman peuvent être bruyants. Ici, j'ai eu l'idée de n'apprendre que les graphiques à partir de 2010. Le nombre d'ensembles de données a atteint 1875, mais il est temps de contester Jouez avec le modèle toute la journée et essayez de faire des erreurs

Après 500 époques image.png

L'ensemble de test est désormais précis à 64%. C'est ce qui s'est passé aujourd'hui. J'aimerais écrire un article après avoir étudié un peu plus les modèles et les calques.

Conclusion

En laissant Python apprendre les graphiques en chandeliers, nous avons constaté qu'il était difficile pour les ordinateurs de prédire l'avenir du marché boursier. Mais d'un autre côté, une précision de 64% suggère également qu'il y a quelque chose derrière le graphique qui permet la prédiction.

J'aimerais continuer mes recherches tant que les fonds (frais de subsistance) continuent. Une fois que j'ai une bonne IA, je souhaite l'intégrer dans un site Web afin que tout le monde puisse l'utiliser. Dernier point mais non le moindre, je l'ai écrit en anglais, alors jetez un œil. https://lulitech.nihoninanutshell.com

Recommended Posts

Continuer à faire des prévisions de stock AI pendant 10 heures par jour le 1er mois
Continuer à faire des prévisions de stock AI pendant 10 heures par jour 3ème mois
Continuer à faire des prévisions de stock AI pendant 10 heures par jour 2e mois 2e semaine
4ème mois pour continuer à faire des prévisions de stock AI pendant 10 heures par jour
Comment faire un modèle pour la détection d'objets avec YOLO en 3 heures
J'ai essayé de faire un diagnostic de visage AI pour les golfeuses professionnelles ①
J'ai essayé de faire un diagnostic de visage AI pour les golfeuses professionnelles ②
J'ai publié un ensemble de données de prévision boursière UNIQLO sur Kaggle
Introduction à discord.py (1er jour) -Préparation pour discord.py-
J'ai essayé de faire de l'IA pour Smash Bra
Prévision du cours de l'action 2 Chapitre 2
Prévision du cours de l'action 1 Chapitre 1
[Introduction à Systre] Prévision du cours de l'action; faible lundi m (__) m
Comment créer un package Python (écrit pour un stagiaire)