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