La dernière fois a parlé de la prévision des cours des actions avec un algorithme d'arbre de décision comme exemple de prédiction future par apprentissage automatique. Dans une telle situation où la valeur numérique suivante est simplement prédite à partir de la séquence de nombres qui représentent les derniers changements dans le portefeuille, il est possible d'utiliser une méthode simple et claire comme un arbre de décision sans s'appuyer sur un algorithme compliqué à faible coût et raisonnable. Il est possible de réaliser une prédiction par précision.
Les prédictions mécaniques peuvent être utiles, par exemple, dans le trading à court terme. Puisqu'un intervalle plus court, comme un jour qu'une semaine et une heure ou une minute qu'un jour serait préférable, une transaction de crédit peut être meilleure qu'une transaction physique. Si vous investissez à moyen et long terme, je pense qu'il est important d'avoir une position de base consistant à investir dans des actions avec d'excellents fondamentaux, un PER bas et un bon ROE.
[Liste des indicateurs techniques](http://en.wikipedia.org/wiki/%E3%83%86%E3%82%AF%E3%83%8B%E3%82%AB%E3%83%AB% Comme vous pouvez le voir d'après E6% 8C% 87% E6% A8% 99% E4% B8% 80% E8% A6% A7), ces anciennes formules ne sont en aucun cas compliquées. De plus, les critères de jugement du signal ne sont pas un algorithme très difficile. Prenant cela en considération, je pense qu'en appliquant l'apprentissage automatique d'aujourd'hui, il peut être possible de concevoir des algorithmes avec un taux de précision plus élevé ou de les utiliser pour le trading de système. Par exemple, il est possible qu'une nouvelle génération d'investisseurs armés d'algorithmes d'apprentissage automatique entre sur le marché les uns après les autres dans les cinq ans.
À propos, en général, dans l'apprentissage automatique supervisé, les classificateurs sont appris par les données des enseignants, mais comment sont-ils stockés? Dans le cas des humains, la mémoire apprise est stockée dans les cellules du cerveau, mais il est également nécessaire de stocker les connaissances acquises dans des machines.
L'ajustement de l'intégralité des données de l'enseignant à chaque fois est coûteux, donc si possible, j'aimerais utiliser l'instance formée à partir de la prochaine fois. Par conséquent, utilisez le module pickle.
Le module pickle Python sérialise l'objet. C'est l'équivalent du module Marshal, qui se comporte de manière similaire dans Ruby. En utilisant pickle, vous pouvez enregistrer l'instance entraînée en tant que données sérialisées.
Le schéma du mouvement d'apprentissage supervisé est le suivant.
Comme expliqué dans l'article Dernière fois, la bibliothèque de machine learning scikit-learn crée une instance basée sur la classe de machine learning et utilise la méthode .fit. Effectue l'ajustement (= apprentissage) aux données de l'enseignant.
#Créer une instance d'apprentissage automatique(Dans l'exemple ci-dessous, un classificateur basé sur un arbre de décision)
from sklearn import tree
clf = tree.DecisionTreeClassifier()
clf.fit(features, labels) #Apprenez avec les données des enseignants
Le module pickle peut gérer n'importe quel objet Python, qui peut être converti (= sérialisé) en tant que conversion en données octets. ..
Le module cPickle est une implémentation en langage C de pickle. Contrairement à pickle, cPickle ne peut pas être sous-classé. C'est beaucoup plus rapide que le cornichon, nous vous recommandons donc de l'utiliser. En tant que technique, si une version d'implémentation C est disponible, vous pouvez l'utiliser, et si elle échoue, vous pouvez importer un pickle normal.
try:
import cPickle as pickle
except:
import pickle
Dans les classifications suivantes et suivantes, s'il y a un objet sauvegardé (= a une mémoire), il suffit d'appeler les connaissances accumulées et d'effectuer la classification.
#Ecrire l'instance dans un fichier
with open(filename, 'wb') as f:
pickle.dump(clf, f)
Par exemple, si vous disposez de données de mise à jour quotidiennes et que vous souhaitez les utiliser comme données d'enseignant, il vous suffit d'ajuster les données d'enseignant pour ce jour à l'instance chargée.
En outre, il est judicieux de créer une nouvelle instance et de réapprendre l'ensemble des données de l'enseignant uniquement lorsque les connaissances ne sont pas stockées.
#Chargez l'instance uniquement si le fichier existe
if os.path.exists(filename):
with open(filename, 'rb') as g:
clf = pickle.load(g)
else:
#S'il n'y a pas de fichier, créez une nouvelle instance et réapprendre
Il convient de noter que si vous essayez d'utiliser un binaire sérialisé d'instance sur un autre hôte, cela ne fonctionnera pas correctement si l'architecture est différente. Soyez prudent lorsque vous créez une plate-forme d'analyse avec plusieurs ordinateurs. De plus, lors du changement de version de la bibliothèque scikit-learn sous-jacente, il est préférable de supprimer les connaissances accumulées jusqu'à présent et de commencer à apprendre à partir de zéro.
De plus, en appliquant la méthode de clustering décrite précédemment, plusieurs instances de classifieur sont générées, et l'instance qui lui convient en fonction de la tendance des données. Vous pouvez également utiliser la technique de vous laisser prédire.
Voyons cela aussi.
Avec le regroupement moyen de méthodes K, qui est un apprentissage non supervisé, par exemple, les données financières sont collectées avec un certain degré de similitude quel que soit le secteur. En créant une instance du classificateur pour chaque cluster et en l'ajustant de cette manière, un classificateur avec une capacité de généralisation plus élevée peut être créé.
Lorsqu'il est mis en cluster par la moyenne K et formé par cluster, le nombre d'insights machine = k.
Par exemple, une méthode d'application telle que le regroupement d'actions avec des mouvements de prix similaires à travers les frontières de l'industrie et la prévision du prochain mouvement de prix à partir de ces expériences peut être envisagée.
Vous pouvez toujours utiliser le module pickle pour charger / décharger plusieurs instances dans de tels cas.
Cette fois, j'ai expliqué l'histoire selon laquelle l'état après l'apprentissage des données des enseignants dans l'apprentissage automatique est sérialisé et sauvegardé par pickle (= équivalent à des êtres humains mémorisant des connaissances dans l'hippocampe du cerveau). Ce n'est qu'un exemple, mais je pense que c'est une technique facile à utiliser pour scikit-learn.
Recommended Posts