[PYTHON] Menschen merken sich gelerntes Wissen im Gehirn, wie man gelerntes Wissen im maschinellen Lernen auswendig lernt

Letztes Mal sprach über die Vorhersage von Aktienkursen mit einem Entscheidungsbaumalgorithmus als Beispiel für die zukünftige Vorhersage durch maschinelles Lernen. In einer solchen Situation, in der der nächste numerische Wert einfach aus der Zahlenfolge vorhergesagt wird, die die letzten Änderungen im Portfolio darstellt, ist es möglich, eine einfache und klare Methode wie einen Entscheidungsbaum zu verwenden, ohne sich auf einen komplizierten Algorithmus zu verlassen, der kostengünstig und vernünftig ist. Es ist möglich, Vorhersagen durch Genauigkeit zu realisieren.

Mechanische Vorhersagen können beispielsweise im kurzfristigen Handel nützlich sein. Da eine kürzere Reichweite wie ein Tag als eine Woche und eine Stunde oder Minute als ein Tag besser wäre, kann eine Kredittransaktion besser sein als eine physische. Wenn Sie mittel- bis langfristig investieren, ist es meiner Meinung nach wichtig, grundsätzlich in Aktien mit hervorragenden Fundamentaldaten, niedrigem PER und gutem ROE zu investieren.

[Liste der technischen Indikatoren](http://ja.wikipedia.org/wiki/%E3%83%86%E3%82%AF%E3%83%8B%E3%82%AB%E3%83%AB% Wie Sie an E6% 8C% 87% E6% A8% 99% E4% B8% 80% E8% A6% A7) sehen können, sind diese alten Formeln keineswegs kompliziert. Auch das Kriterium zur Beurteilung des Signals ist kein sehr schwieriger Algorithmus. In Anbetracht dessen denke ich, dass es durch die Anwendung des heutigen maschinellen Lernens möglich sein kann, Algorithmen mit einer höheren Genauigkeitsrate zu entwickeln oder sie für den Systemhandel zu verwenden. Beispielsweise kann es sein, dass eine neue Generation von Investoren, die mit Algorithmen für maschinelles Lernen ausgestattet sind, innerhalb von fünf Jahren nacheinander auf den Markt kommt.

Speichern Sie den trainierten Klassifikator als serialisierte Binärdaten

Übrigens werden beim überwachten maschinellen Lernen Klassifikatoren im Allgemeinen anhand von Lehrerdaten gelernt, aber wie werden diese gespeichert? Beim Menschen wird das erlernte Gedächtnis in Gehirnzellen gespeichert, aber es ist auch notwendig, das erlernte Wissen auch in Maschinen zu speichern.

Das Anpassen der gesamten Lehrerdaten ist jedes Mal teuer. Wenn möglich, möchte ich die trainierte Instanz ab dem nächsten Mal verwenden. Verwenden Sie daher das Pickle-Modul.

Das Python-Pickle-Modul serialisiert das Objekt. Dies entspricht dem Modul Marshal, das sich in Ruby ähnlich verhält. Mit pickle können Sie die trainierte Instanz als serialisierte Daten speichern.

Das Diagramm der Bewegung des überwachten Lernens ist wie folgt.

10.png

Wie im Artikel Letztes Mal erläutert, erstellt die Bibliothek für maschinelles Lernen scikit-learn eine Instanz basierend auf der Klasse für maschinelles Lernen und verwendet die Methode .fit. Führt eine Anpassung (= Lernen) an Lehrerdaten durch.

#Erstellen Sie eine Instanz des maschinellen Lernens(Im folgenden Beispiel ein Klassifizierer, der auf einem Entscheidungsbaum basiert)
from sklearn import tree
clf = tree.DecisionTreeClassifier()
clf.fit(features, labels) #Lernen Sie mit Lehrerdaten

Das Pickle-Modul kann jedes Python-Objekt verarbeiten, das als Konvertierung in Byte-Daten konvertiert (= serialisiert) werden kann. ..

Das cPickle-Modul ist eine C-Sprachimplementierung von pickle. Im Gegensatz zu pickle kann cPickle nicht in Unterklassen unterteilt werden. Es ist viel schneller als Gurke, daher empfehlen wir grundsätzlich die Verwendung. Wenn eine C-Implementierungsversion verfügbar ist, können Sie sie als Technik verwenden. Wenn dies fehlschlägt, können Sie eine normale Gurke importieren.

try:
    import cPickle as pickle
except:
    import pickle

Wenn in der nächsten und nachfolgenden Klassifizierung ein gespeichertes Objekt vorhanden ist (= einen Speicher hat), reicht es aus, das gesammelte Wissen abzurufen und die Klassifizierung durchzuführen.

#Schreiben Sie die Instanz in eine Datei
with open(filename, 'wb') as f:
    pickle.dump(clf, f)

Wenn Sie beispielsweise tägliche Aktualisierungsdaten haben und diese als Lehrerdaten verwenden möchten, müssen Sie nur die Lehrerdaten für diesen Tag an die geladene Instanz anpassen.

Es ist auch eine gute Idee, eine neue Instanz zu erstellen und die gesamten Lehrerdaten nur dann neu zu lernen, wenn das Wissen nicht gespeichert ist.

#Laden Sie die Instanz nur, wenn die Datei vorhanden ist
if os.path.exists(filename):
    with open(filename, 'rb') as g:
        clf = pickle.load(g)
else:
    #Wenn keine Datei vorhanden ist, erstellen Sie eine neue Instanz und lernen Sie neu

Es sollte beachtet werden, dass wenn Sie versuchen, eine instanz serialisierte Binärdatei auf einem anderen Host zu verwenden, diese nicht ordnungsgemäß funktioniert, wenn die Architektur unterschiedlich ist. Seien Sie vorsichtig, wenn Sie eine Analyseplattform mit mehreren Computern erstellen. Wenn Sie die Version der zugrunde liegenden Scikit-Lernbibliothek ändern, ist es außerdem besser, das bisher gesammelte Wissen zu verwerfen und von vorne zu lernen.

Verbessern Sie die Generalisierungsfähigkeit, indem Sie für jeden Datentrend separate Klassifizierer vorbereiten

Durch Anwenden von der zuvor beschriebenen Clustering-Methode werden außerdem mehrere Klassifikatorinstanzen generiert und die dafür geeignete Instanz entsprechend der Datentendenz. Sie können auch die Technik verwenden, mit der Sie Vorhersagen treffen können.

Lassen Sie uns das auch herausfinden.

11.png

Beim K-Average-Methoden-Clustering, bei dem es sich beispielsweise um unbeaufsichtigtes Lernen handelt, werden Finanzdaten unabhängig von der Branche mit einem gewissen Grad an Ähnlichkeit erfasst. Durch Erstellen einer Instanz des Klassifizierers für jeden Cluster und Anpassen auf diese Weise kann ein Klassifizierer mit höherer Generalisierungsfähigkeit erstellt werden.

Wenn nach dem K-Durchschnitt geclustert und pro Cluster trainiert, ist die Anzahl der Maschineneinblicke = k.

Beispielsweise kann eine Anwendungsmethode wie das Clustering von Aktien mit ähnlichen Preisbewegungen über Branchengrenzen hinweg und die Vorhersage der nächsten Preisbewegung aus diesen Erfahrungen in Betracht gezogen werden.

In solchen Fällen können Sie das Pickle-Modul weiterhin zum Laden / Entladen mehrerer Instanzen verwenden.

Zusammenfassung

Dieses Mal erklärte ich die Geschichte der Serialisierung und Speicherung des erlernten Zustands von Lehrerdaten beim maschinellen Lernen mit Gurke (= entspricht Menschen, die sich Wissen im Hippocampus des Gehirns merken). Dies ist nur ein Beispiel, aber ich denke, es ist eine einfache Technik, um Scikit zu lernen.

Recommended Posts

Menschen merken sich gelerntes Wissen im Gehirn, wie man gelerntes Wissen im maschinellen Lernen auswendig lernt
So passen Sie mehrere Bibliotheken für maschinelles Lernen auf einmal an
So erhöhen Sie die Anzahl der Datensatzbilder für maschinelles Lernen
Sammeln von Daten zum maschinellen Lernen
Wie nutzt man maschinelles Lernen für die Arbeit? 01_ Den Zweck des maschinellen Lernens verstehen
Einführung in das maschinelle Lernen: Funktionsweise des Modells
scikit-learn Verwendung der Zusammenfassung (maschinelles Lernen)
Wie man Coursera / Maschinelles Lernen genießt (Woche 10)
Coursera Machine Learning Challenge in Python: ex6 (Anpassen von SVM-Parametern)
[Für Anfänger] Einführung in die Vektorisierung beim maschinellen Lernen
Ich möchte visualisieren, wo und wie viele Leute in der Fabrik sind
9 Schritte, um in kürzester Zeit Experte für maschinelles Lernen zu werden [Völlig kostenlos]
Ich habe versucht, die beim maschinellen Lernen verwendeten Bewertungsindizes zu organisieren (Regressionsmodell).
Ich habe versucht, die Veränderung der Schneemenge für 2 Jahre durch maschinelles Lernen vorherzusagen
So installieren Sie das Deep Learning Framework Tensorflow 1.0 in der Windows Anaconda-Umgebung
So rufen Sie den n-ten größten Wert in Python ab
So erhalten Sie den Variablennamen selbst in Python
Ausführen des in Ansible Tower hinzugefügten Ansible-Moduls
So ermitteln Sie die Anzahl der Stellen in Python
Wie Sie das aktuelle Verzeichnis in Python in Blender kennen
Über das Testen bei der Implementierung von Modellen für maschinelles Lernen
So führen Sie das Lernen mit SageMaker ohne Sitzungszeitlimit durch
[Python] So geben Sie Listenwerte der Reihe nach aus
Einführung in das maschinelle Lernen
Ich habe versucht, das Bild mithilfe von maschinellem Lernen zu komprimieren
Erstellen einer virtuellen Anaconda-Umgebung für die Verwendung mit Azure Machine Learning und Verknüpfen mit Jupyter
Papier: Maschinelles Lernpapier, das Bilder im Gehirn reproduziert (Tiefenbildrekonstruktion aus menschlicher Gehirnaktivität)
So zeichnen Sie interaktiv eine Pipeline für maschinelles Lernen mit scikit-learn und speichern sie in HTML
So schreiben Sie eine benutzerdefinierte Validierung in Django REST Framework
So finden Sie die optimale Anzahl von Clustern für k-means
Onkel SE mit verhärtetem Gehirn versuchte, maschinelles Lernen zu studieren
[Python] So überprüfen Sie, ob der Schlüssel im Wörterbuch vorhanden ist
Versuchen Sie, die Leistung des Modells für maschinelles Lernen / Regression zu bewerten
[TensorFlow 2 / Keras] Ausführen des Lernens mit CTC Loss in Keras
Das Ergebnis des maschinellen Lernens von Java-Ingenieuren mit Python www
Umfrage zum Einsatz von maschinellem Lernen in realen Diensten
Verwendung der Methode __call__ in der Python-Klasse
Versuchen Sie, die Leistung des Modells für maschinelles Lernen / Klassifizierung zu bewerten
So legen Sie das HTML-Klassenattribut in Djangos forms.py fest
So manipulieren Sie das DOM im Iframe mit Selen
Berechnen des aus ABC134-D gelernten Rechenaufwands
So melden Sie sich automatisch wie 1Password von der CLI an
Wie nutzt man maschinelles Lernen für die Arbeit? 03_Python-Codierungsverfahren
So generieren Sie eine Abfrage mit dem IN-Operator in Django
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
So erhalten Sie alle Schlüssel und Werte im Wörterbuch
[Maschinelles Lernen] Ich habe versucht, die Theorie von Adaboost zusammenzufassen
Wie man in Django die angezeigte lange Zeichenkette in der Mitte abkürzt ....
Hinweise zur Verwendung von Marshmallow in der Schemabibliothek
[Shell] So erhalten Sie den Remote-Standardzweig mit Git
Maschinelles Lernen mit Pokemon gelernt
Maschinelles Lernen in Delemas (Praxis)
Verwendung des Generators
Wird in EDA für maschinelles Lernen verwendet
Wie man in Python entwickelt
Super Einführung in das maschinelle Lernen
Wie benutzt man den Dekorateur?
So erhöhen Sie die Achse
So starten Sie die erste Projektion
So stellen Sie die Ausgabeauflösung für jeden Keyframe in Blender ein
So geben Sie beim Testen absichtlich einen Fehler in der Shell aus