[PYTHON] Prévision du cours de l'action 1 Chapitre 1

Aidemy 2020/10/30

introduction

Bonjour, c'est Yope! Je suis une école littéraire croustillante, mais j'étais intéressé par les possibilités de l'IA, alors je suis allé à l'école spécialisée en IA "Aidemy" pour étudier. Je voudrais partager les connaissances acquises ici avec vous, et je les ai résumées dans Qiita. Je suis très heureux que de nombreuses personnes aient lu l'article de synthèse précédent. Merci! Cette fois, je posterai un mémo de la prévision du cours de l'action 1. Ravi de vous rencontrer.

Quoi apprendre cette fois ・ Vérifiez le flux des prévisions de prix des actions ・ ① Recevez des tweets ・ ② Analyse des émotions (analyse négative / positive)

Flux de prévision du cours de l'action

-Il y a __ analyse technique __ et __ analyse fondamentale__, et cette fois nous effectuerons une analyse technique. Le flux est le suivant. (Dans ce chapitre, faites ① et ②) ① Utilisez l'API Twitter pour récupérer les tweets passés d'un certain compte. (2) Effectuer quotidiennement une analyse des émotions __ tweet (analyse négative / positive) __ dans le dictionnaire de polarité. ③ Obtenez les données de série __time du cours moyen de l'action Nikkei __. ④ Créez un __model qui prédit les hauts et les bas du cours de l'action le lendemain à partir du sentiment quotidien.

① Recevez des tweets

・ Tout d'abord, inscrivez-vous sur TwitterAPI. ・ La méthode d'enregistrement est omise. ・ Inscrivez-vous et obtenez __ "Consumer Key", "Consumer Secret", "Access Token Secret", "Access Token" __, et utilisez-les pour obtenir des tweets.

Obtenir des tweets par mot-clé

・ Code![Capture d'écran 2020-10-17 17.17.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/126526e1-9450-c2db- 5e75-dfbda9b2f3cd.png)

-La partie __ 'python' __ du code ci-dessus __ "res" __ est le mot-clé à acquérir.

Recevoir des tweets par compte

・ Code![Capture d'écran 2020-10-17 17.24.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/eb60f385-4acc-774c- b11e-7d4bb2cbeb06.png)

-La partie __ '@ nikkei_bizdaily' __ du code "tweets" ci-dessus est le compte à acquérir. (@Nikkei_bizdaily est un récit de "Nikkei Sangyo Shimbun")

② Analyse des émotions du Tweet (analyse négative / positive)

・ L'analyse des émotions (analyse négative / positive) consiste à juger si text a une signification positive ou une signification négative par traitement du langage naturel. -Les critères de jugement sont inclus dans __ "Dictionnaire polaire" __. L'analyse des émotions est effectuée en se référant au dictionnaire pour chaque mot du texte. ・ Cette fois, __ "Tableau de correspondance de polarité des émotions des mots" __ est utilisé comme dictionnaire de polarité. Il s'agit d'un mot appliqué à une valeur de -1 à 1 (valeur PN) en référence au "Dictionnaire japonais Iwanami (Iwanami Shoten)". Une valeur plus élevée indique une signification positive et une valeur plus petite indique une signification négative.

Flux d'analyse des émotions des tweets

I. Obtenez des tweets et convertissez-les en __DataFrame __. (Voir procédure de prévision du cours de l'action ①) Ii. Importer la conversion du dictionnaire de polarité / DataFrame. Ⅲ. _ Analyse morphologique avec MeCab __. Iv. Obtenir la valeur __PN du dictionnaire de polarité pour chaque mot analysé par morphologie et l'ajouter au dictionnaire. V. Calculez la valeur __PN moyenne pour chaque tweet . Ⅵ . Standardiser __ et afficher le changement de la valeur PN sur __graph __

Ii. Importer le dictionnaire de polarité / la conversion DataFrame

-Importez le dictionnaire de polarité avec __pd.read_csv () __. Dans la "table de correspondance de polarité des émotions des mots", spécifiez __ "names = ('Word', 'Reading', 'POS', 'PN')" __ pour lire le mot ou la valeur PN. -Liste et stocke la partie mot du dictionnaire de polarité dans word_list et la partie de valeur PN pn_list, et en fait un dictionnaire ensemble (pn_dict).

·code スクリーンショット 2020-10-19 21.13.28.png

III. Analyse morphologique avec MeCab

-Puisque le tweet ne peut pas être transmis au dictionnaire de polarité tel quel, il est divisé en mots par __ analyse morphologique__. Ici, vous définissez et utilisez la fonction __ "get_diclist" __. ・ L'analyse morphologique est réalisée avec MeCab. De plus, comme les données analysées sont coupées pour chaque mot, elles sont répertoriées séparément pour chaque ligne. -En outre, les deux dernières lignes ne sont pas nécessaires, supprimez-les. -Comme chaque ligne fractionnée est séparée de l'onglet, divisez-la complètement avec __re.split () __ et ajoutez-la à la liste mot par mot. (Dic_list)

·code スクリーンショット 2020-10-19 22.27.42.png

Iv. Obtenir la valeur PN du dictionnaire de polarité pour chaque mot analysé par morphologie et l'ajouter au dictionnaire.

-Lorsque le dictionnaire de polarité peut être référencé par analyse morphologique, __ ajouter la valeur PN du dictionnaire de polarité aux données dict pour chaque mot _. Ceci est utilisé en définissant la fonction "add_pnvalue". -Rechercher dans le dictionnaire la forme de mot de base __ "'BaseForm'" __ qui peut être obtenue avec la __ "get_diclist" __ créée dans la section précédente, et si elle est dans le dictionnaire, l'obtenir sous cette forme, et si elle n'est pas dans le dictionnaire, _ Ajoutez chacun comme 'notfound ' à une liste vide appelée diclist_new.

・ Code![Capture d'écran 2020-10-20 12.16.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/2930203a-1917-18c9- bee1-d40ef901380f.png)

V. Calculez la valeur PN moyenne pour chaque tweet

-De la liste retournée par diclist_new ci-dessus, trouvez la moyenne des valeurs __PN __. ・ Lors du calcul de la moyenne, la pièce «non trouvée» dans la section précédente est exclue du calcul de la valeur PN. De plus, s'il n'y a rien dans pn_list au moment du calcul, il sera calculé avec une moyenne de 0 (car une erreur se produira si aucune valeur n'est entrée).

・ Code![Capture d'écran 2020-10-20 11.13.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/fa7c1dac-8bb0-7e65- d938-8e76b71e6e9d.png)

Effectuer la standardisation et afficher les changements de valeur PN sur un graphique

-Enfin, la valeur __PN est visualisée sous forme de graphique __. Cependant, s'il est laissé tel quel, le résultat du graphe __ changera selon qu'il existe de nombreuses significations positives ou négatives dans tout le dictionnaire de polarité, donc ajustez le résultat en exécutant standardization. -Pour les graphiques, utilisez __plt.plot () __. L'axe vertical représente __ «moyenne des valeurs pn» __ et l'axe horizontal __ «date» __. À ce stade, la partie __ 'texte' __, qui est une information autre que la valeur PN, est une information inutile pour le graphique, supprimez-la.

・ (Révision) Méthode de normalisation (apprentissage non supervisé 3): __ (Différence entre les données et la moyenne) ÷ Écart type __ X = (X - X.mean(axis=0))/X.std(axis=0)

-Code (lors de la normalisation de la moyenne "means_list" de la valeur pn d'un certain tweet df_tweets) スクリーンショット 2020-10-20 12.32.24.png

・ Graph![Capture d'écran 2020-10-20 11.57.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/80c50519-c43f-7dbc- 4860-5899f7e19aa3.png)

Sommaire

・ La prévision du cours des actions est effectuée dans le flux «acquisition de tweets», «analyse des émotions (analyse négative / positive)», «acquisition de séries chronologiques de données sur les cours des actions» et «création d'un modèle de prévision du cours des actions». ・ Vous pouvez recevoir des tweets en vous inscrivant avec l'API Twitter. ・ Reportez-vous à «Analyse négative / positive» pour savoir comment analyser les émotions.

Cette fois, c'est fini. Merci d'avoir lu jusqu'à la fin.

Recommended Posts

Prévision du cours de l'action 2 Chapitre 2
Prévision du cours de l'action 1 Chapitre 1
Prévision du cours de l'action avec tensorflow
Python: prévision du cours de l'action, partie 2
Python: prévision du cours de l'action partie 1
[Python] Mes prévisions de cours de bourse [HFT]
Prévision du cours des actions à l'aide de l'apprentissage automatique (scikit-learn)
Prévision du cours des actions à l'aide du Deep Learning (TensorFlow)
Prévision du cours des actions à l'aide de l'apprentissage automatique (édition de retour)
Prévision du cours des actions à l'aide du Deep Learning (TensorFlow) - Partie 2
Prévision de la fluctuation des prix de la monnaie virtuelle
Prévision du cours de l'action par machine learning Numerai Signals
Kaggle ~ Prévision de prix de l'immobilier ② ~
Mémo d'étude Python & Machine Learning ⑦: Prévision du cours de l'action
Kaggle ~ Prévision de prix à domicile ~
Prévision de stock avec TensorFlow (perceptron multicouche: MLP) ~ Prévision de stock 2 ~
Prévision du cours de l'action avec LSTM_1
Obtenez des stocks avec Python
Conseils d'acquisition de données de cours de bourse
[Introduction à Systre] Prévision du cours de l'action; faible lundi m (__) m
Prévisions du cours des actions par apprentissage automatique Commençons Numerai
Prévisions de prix Bitcoin avec TensorFlow (LSTM)
Les prévisions du cours des actions par apprentissage automatique sont si vraies Signaux Numerai
J'ai publié un ensemble de données de prévision boursière UNIQLO sur Kaggle
Code d'acquisition de stock par grattage (Selenium)
Téléchargez les données de cours des actions japonaises avec Python
[Python] Création d'un graphique de tirage des actions
Cours des actions et statistiques (moyenne, écart type)
4ème mois pour continuer à faire des prévisions de stock AI pendant 10 heures par jour
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