[PYTHON] Les gens mémorisent les connaissances acquises dans le cerveau, comment mémoriser les connaissances acquises dans l'apprentissage automatique

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.

Enregistrer le classificateur entraîné en tant que données binaires sérialisées

À 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.

10.png

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.

Améliorez la capacité de généralisation en préparant des classificateurs séparés pour chaque tendance de données

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.

11.png

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.

Résumé

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

Les gens mémorisent les connaissances acquises dans le cerveau, comment mémoriser les connaissances acquises dans l'apprentissage automatique
Comment adapter plusieurs bibliothèques d'apprentissage automatique en une seule fois
Comment augmenter le nombre d'images de jeux de données d'apprentissage automatique
Comment collecter des données d'apprentissage automatique
Comment utiliser l'apprentissage automatique pour le travail? 01_ Comprendre l'objectif de l'apprentissage automatique
Introduction à l'apprentissage automatique: fonctionnement du modèle
scikit-learn Comment utiliser le résumé (apprentissage automatique)
Comment profiter de Coursera / Machine Learning (semaine 10)
Coursera Machine Learning Challenge en Python: ex6 (Comment ajuster les paramètres SVM)
[Pour les débutants] Introduction à la vectorisation dans l'apprentissage automatique
Je veux visualiser où et combien de personnes se trouvent dans l'usine
9 étapes pour devenir un expert en apprentissage automatique dans les plus brefs délais [Entièrement gratuit]
J'ai essayé d'organiser les index d'évaluation utilisés en machine learning (modèle de régression)
J'ai essayé de prédire l'évolution de la quantité de neige pendant 2 ans par apprentissage automatique
Comment installer le framework d'apprentissage en profondeur Tensorflow 1.0 dans l'environnement Windows Anaconda
Comment récupérer la nième plus grande valeur en Python
Comment obtenir le nom de la variable lui-même en python
Comment exécuter le module Ansible ajouté dans Ansible Tower
Comment obtenir le nombre de chiffres en Python
Comment connaître le répertoire actuel en Python dans Blender
À propos des tests dans la mise en œuvre de modèles d'apprentissage automatique
Comment effectuer un apprentissage avec SageMaker sans délai d'expiration de session
[Python] Comment afficher les valeurs de liste dans l'ordre
Introduction à l'apprentissage automatique
J'ai essayé de compresser l'image en utilisant l'apprentissage automatique
Comment créer un environnement virtuel Anaconda à utiliser avec Azure Machine Learning et comment créer un lien avec Jupyter
Papier: Papier d'apprentissage automatique qui reproduit des images dans le cerveau, (reconstruction d'image profonde à partir de l'activité cérébrale humaine)
Comment dessiner de manière interactive un pipeline d'apprentissage automatique avec scikit-learn et l'enregistrer au format HTML
Comment écrire une validation personnalisée dans Django REST Framework
Comment trouver le nombre optimal de clusters pour les k-moyennes
Oncle SE avec un cerveau endurci a essayé d'étudier l'apprentissage automatique
[python] Comment vérifier si la clé existe dans le dictionnaire
Essayez d'évaluer les performances du modèle d'apprentissage automatique / de régression
[TensorFlow 2 / Keras] Comment exécuter l'apprentissage avec CTC Loss dans Keras
Le résultat de l'apprentissage automatique des ingénieurs Java avec Python www
Enquête sur l'utilisation du machine learning dans les services réels
Comment utiliser la méthode __call__ dans la classe Python
Essayez d'évaluer les performances du modèle d'apprentissage automatique / de classification
Comment définir l'attribut de classe html dans le formulaire forms.py de Django
Comment manipuler le DOM dans iframe avec Selenium
Comment calculer la quantité de calcul appris de ABC134-D
Comment se connecter automatiquement comme 1Password depuis CLI
Comment utiliser l'apprentissage automatique pour le travail? 03_Procédure de codage Python
Comment générer une requête à l'aide de l'opérateur IN dans Django
Comment obtenir la dernière (dernière) valeur d'une liste en Python
Comment obtenir toutes les clés et valeurs du dictionnaire
[Apprentissage automatique] J'ai essayé de résumer la théorie d'Adaboost
Dans Django, comment abréger la longue chaîne de caractères affichée au milieu ...
Remarques sur l'utilisation de la guimauve dans la bibliothèque de schémas
[Shell] Comment obtenir la branche distante par défaut avec Git
L'apprentissage automatique appris avec Pokemon
Apprentissage automatique dans Delemas (s'entraîner)
Comment utiliser le générateur
Utilisé en EDA pour l'apprentissage automatique
Comment développer en Python
Super introduction à l'apprentissage automatique
Comment utiliser le décorateur
Comment augmenter l'axe
Comment démarrer la première projection
Comment définir la résolution de sortie pour chaque image clé dans Blender
Comment émettre intentionnellement une erreur dans le shell pendant les tests