Mémo d'étude Python & Machine Learning ⑦: Prévision du cours de l'action

introduction

① https://qiita.com/yohiro/items/04984927d0b455700cd1 ② https://qiita.com/yohiro/items/5aab5d28aef57ccbb19c ③ https://qiita.com/yohiro/items/cc9bc2631c0306f813b5 ④ https://qiita.com/yohiro/items/d376f44fe66831599d0b ⑤ https://qiita.com/yohiro/items/3abaf7b610fbcaa01b9c ⑥ https://qiita.com/yohiro/items/e9e80183e635e0ac4894 A continué

Paramètre de problème

Compte tenu du taux d'augmentation des cours des actions au cours des quatre derniers jours, on estime si le cours de l'action ce jour-là augmentera ou baissera.

Exemple de données

stock_price.txt


10000
9993
10259
...

Le cours de clôture du cours de l'action pour un jour est stocké sur une seule ligne.

Code source

importer

from sklearn import svm

Lecture de fichier

Lire des exemples de données et stocker dans stock_data

#Lecture de fichier
stock_data = []
stock_data_file = open("stock_price.txt", "r")
for line in stock_data_file:
    line = line.rstrip()
    stock_data.append(float(line))
stock_data_file.close()

Créer des données d'entraînement

Création de données de taux d'augmentation pour chaque jour

Le taux d'augmentation est calculé comme suit

Taux d'augmentation le jour i=\frac{Cours de l'action le jour i- (i-1)Stock journalier}{(i-1)Stock journalier}

Stockez les données calculées ci-dessus dans modified_data.

count_s = len(stock_data)
modified_data = []
for i in range(1, count_s):
    modified_data.append(float(stock_data[i] - stock_data[i-1]) / float(stock_data[i-1]) * 20)
count_m = len(modified_data)

Création du taux d'augmentation pendant 4 jours et augmentation / diminution des données (= valeur de réponse correcte) pour la journée

Pour chaque jour, enregistrez le taux d'augmentation des 4 derniers jours dans successive_data. De plus, s'il a augmenté ou diminué ce jour-là, il est stocké dans «réponses».

#Données pour 4 jours jusqu'au jour précédent
successive_data = []
#Bonne réponse augmentation de prix: 1 baisse de prix:0
answers = []
for i in range(4, count_m):
    successive_data.append([modified_data[i-4], modified_data[i-3], modified_data[i-2], modified_data[i-1]])
    if modified_data[i] > 0:
        answers.append(1)
    else:
        answers.append(0)
n = len(successive_data)
m = len(answers)

Entraînement et prédiction

Former sur 75% des données.

#Machine de vecteur de support linéaire
clf = svm.LinearSVC()
#Formation avec machine à vecteurs de support (75 de données)%Utilisé pour la formation)
clf.fit(successive_data[:int(n*75/100)], answers[:int(n*75/100)])

Confirmation des résultats de la formation

Faites des prédictions sur les 25% restants des données.

#Données de test
#Bonne réponse
expected = answers[int(-n*25/100):]
#Prévoir
predicted = clf.predict(successive_data[int(-n*25/100):])

#Comparez les 10 derniers
print(expected[-10:])
print(list(predicted[-10:]))

#Calcul du taux de réponse correcte
correct = 0.0
wrong = 0.0
for i in range(int(n*25/100)):
    if expected[i] == predicted[i]:
        correct += 1
    else:
        wrong += 1
print("Taux de réponse correct:" + str(correct/(correct+wrong) * 100) + "%")

résultat

Dans la vidéo du matériel pédagogique, le taux de réponse correcte est d'environ 61%, Quand je l'essaie, un avertissement apparaît, et le taux de réponse correct est d'environ 50% (presque aucune différence si je suppose) ...

Y aura-t-il une différence dans les résultats parce que les versions de python, etc. sont différentes?

C:\Anaconda3\lib\site-packages\sklearn\svm\_base.py:947: ConvergenceWarning: Liblinear failed to converge, increase the number of iterations.
  "the number of iterations.", ConvergenceWarning)
[0, 0, 0, 1, 0, 0, 0, 1, 1, 0]
[0, 0, 0, 0, 1, 0, 0, 0, 1, 1]
Taux de réponse correcte: 55.62248995983936%

prime

Visualisez des exemples de données stock.png

Recommended Posts

Mémo d'étude Python & Machine Learning ⑦: Prévision du cours de l'action
Mémo d'étude Python & Machine Learning: Préparation de l'environnement
Prévision du cours des actions à l'aide de l'apprentissage automatique (scikit-learn)
Prévision du cours des actions à l'aide de l'apprentissage automatique (édition de retour)
Mémo d'étude Python & Machine Learning ③: Réseau neuronal
Mémo d'étude Python & Machine Learning ④: Machine Learning par rétro-propagation
Mémo d'étude Python & Machine Learning ⑥: Reconnaissance des nombres
Mémo d'étude Python & Machine Learning ⑤: Classification d'Ayame
Mémo d'étude Python & Machine Learning ②: Introduction de la bibliothèque
Prévision du cours de l'action par machine learning Numerai Signals
Python: prévision du cours de l'action partie 1
[Python] Mes prévisions de cours de bourse [HFT]
Mémo d'apprentissage "Scraping & Machine Learning avec Python"
Prévisions du cours des actions par apprentissage automatique Commençons Numerai
[Memo] Apprentissage automatique
J'ai installé Python 3.5.1 pour étudier l'apprentissage automatique
Prévision du cours des actions à l'aide du Deep Learning (TensorFlow)
Les prévisions du cours des actions par apprentissage automatique sont si vraies Signaux Numerai
Classe Python (mémo d'apprentissage Python ⑦)
Mémo du cours d'apprentissage automatique
Prévision du cours de l'action 2 Chapitre 2
Prévision du cours de l'action à l'aide du Deep Learning [acquisition de données]
Prévision du cours de l'action 1 Chapitre 1
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer du chapitre 2
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer chapitres 1 et 2
Mémo de construction d'environnement d'apprentissage automatique par Python
Gestion des exceptions Python (mémo d'apprentissage Python ⑥)
Bloc-notes de ressources d'étude d'apprentissage automatique
Prévision du cours de l'action avec tensorflow
Programmation Python Machine Learning> Mots-clés
Commencer avec l'apprentissage automatique Python
Obtenez des stocks avec Python
Créer un environnement d'étude d'apprentissage automatique Python avec macOS Sierra
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitre 7 Analyse de régression
Syntaxe de contrôle Python, fonctions (mémo d'apprentissage Python ②)
Apprentissage automatique par python (1) Classification générale
Résumé de l'apprentissage automatique par les débutants de Python
Entrée / sortie avec Python (mémo d'apprentissage Python ⑤)
Mémo d'apprentissage de la planification des sections ~ par python ~
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitre 10 Introduction à Cupy
Prédire les variations du cours des actions à l'aide de l'étiquetage métallique et de l'apprentissage automatique en deux étapes
Remarques sur la grammaire Python de l'apprentissage automatique PyQ
Numéros, chaînes, types de listes Python (mémo d'apprentissage Python ①)
Mémo Python
[Mémo d'apprentissage] Bases de la classe par python
Amplifiez les images pour l'apprentissage automatique avec Python
mémo python
Utiliser le groupe d'API d'apprentissage automatique A3RT de Python
Apprentissage automatique avec python (2) Analyse de régression simple
[python] Techniques souvent utilisées dans l'apprentissage automatique
Pourquoi Python est choisi pour l'apprentissage automatique
Mémo Python
Téléchargez les données de cours des actions japonaises avec Python
Note récapitulative sur la programmation d'apprentissage automatique Python (Jupyter)
Apprentissage automatique
[Shakyo] Rencontre avec Python pour l'apprentissage automatique
Structure et fonctionnement des données Python (mémo d'apprentissage Python ③)
mémo python
[Python] Première analyse de données / apprentissage automatique (Kaggle)
apprentissage de python