Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 1264

 

Mihail Marchukajtes:

Maximka hat sich im Wald verheddert und findet immer noch nicht den Weg hinaus? Business ....

Ich gebe zu, dass ich schon lange nicht mehr hier war, nur geschäftlich und mit Sorgen.... Aber ich habe mich entschieden, hierher zu kommen. Einchecken, sozusagen :-) Übrigens....

Es gibt einen Platz für nichts. Einst Maximka der Kiffer, jetzt Maximka der Halbidiot)))


 
Eidechse_:

Es gibt einen Platz für nichts. Einst Maximka der Kiffer, jetzt Maximka der Halbidiot).


Du bist einfach ein guter Tag im Leben, und du änderst deinen Status nicht.

Geheimnisvolles Mädchen
 
Maxim Dmitrievsky:

Nun, du bist nur ein guter Tag im Leben eines Rehs und du änderst deinen Status nicht

geheimes Mädchen

Oh, Herr Lehrer))) So ist es auch mit den "Models". Wo ist das Reh und wo ist das Mädchen, wo ist 0,
und 1... Keine Definition, alles auf einem Haufen))) urkomisch...

 
Eidechse_:

Oh, Teacher)))) So ist es auch bei den Modellen. Wo ist das Reh und wo ist das Mädchen, wo ist die 0,
und 1... kann man nicht sagen, alles auf einem Haufen))) urkomisch...

Ich habe lange darüber nachgedacht, wie ich antworten soll, mehr als 10 Minuten... Ich habe mich wohl vorbereitet, Screenshots gemacht, mir Gedanken gemacht...

Ich verstehe es, du musst aus einem Haufen Scheiße wieder auftauchen, um einen spektakulären Auftritt hinzulegen, dann fühlst du dich gut ))

Nun, willkommen zurück ))))

 
Maxim Dmitrievsky:

Die Lerngeschwindigkeit ist gut, die Reaktionszeit bei der Nutzung und die Downloadzeit der Struktur sind schlecht, da die Walddateien groß sind. Ich habe bis zu 300 MB gehabt.

Mit der Serialisierung ist etwas nicht in Ordnung. Der Wald wird schneller trainiert und gespeichert als er aus der Datei zurückgeladen wird.

Wenn es heißt, dass der Wald jetzt um Größenordnungen weniger Dateien erzeugt, dann ist das eine sehr große Beschleunigung

Im Gegensatz dazu trainiert die NS länger, aber die Reaktion erfolgt sofort. Es gibt keinen Unterschied in der Qualität der Klassifizierung. Sie können alles verwenden, aber der Wald aus der Box funktioniert, und die NS muss angepasst werden.


Alles, was in der Beschreibung des Upgrades über den Wald steht:
verbesserter Algorithmus zur Erstellung von Zufallswäldern, der 2- bis 10-mal schneller ist als die vorherige Version und um Größenordnungen kleinere Wälder erzeugt.

Die alte Version hat die folgende Datenstruktur

//--- Node Info:

//--- W[K+0] - Nummer der Variablen (-1 für Blattmodus)
//--- W[K+1] - Schwellenwert (Klasse/Wert für Blattknoten)
//--- W[K+2] - ">=" Zweigindex (fehlt bei Blattknoten)

Dieser neue Knoten speichert die gleichen 3 Variablen für einen Knoten und 2 für ein Blatt.
Und der Baum wird auf genau die gleiche Weise aufgebaut - bis zum letzten Beispiel mit 0 Fehler. Ich habe keine Beschneidung gesehen.
Das Einzige, was ich in den Kommentaren zu dem Code über die Beschleunigung gesehen habe
SplitStrength- Split-Typ:
* 0 = Teilung an der zufälligen Position, die schnellste
* 1 = Aufteilung in der Mitte des Bereichs
* 2 = starke Aufspaltung am besten Punkt des Bereichs (Standard)

Es sieht so aus, als ob die zufällige Aufteilung zu einer 2-10fachen Beschleunigung und zu besseren Aufteilungspunkten führt, was wiederum zu einem kompakteren Baum führen kann.

Sie können der Partitionierungsfunktion einfach eine zufällige Punktauswahl hinzufügen. In 2-3 Zeilen bearbeiten))

 
elibrarius:

Ich spreche nicht sehr gut Englisch.
Alles, was er über den Wald sagt:
verbesserter Algorithmus zur Erstellung von Zufallswäldern, der 2- bis 10-mal schneller ist als die vorherige Version und um Größenordnungen kleinere Wälder erzeugt.

In der alten Version ist die Datenstruktur wie folgt:

//--- Node Info:

//--- W[K+0] - Nummer der Variablen (-1 für Blattmodus)
//--- W[K+1] - Schwellenwert (Klasse/Wert für Blattknoten)
//--- W[K+2] - ">=" Zweigindex (fehlt bei Blattknoten)

Dieser neue Knoten speichert die gleichen 3 Variablen für einen Knoten und 2 für ein Blatt.
Und der Baum wird auf genau die gleiche Weise aufgebaut - bis zum letzten Beispiel mit 0 Fehler. Ich habe keine Beschneidung gesehen.
Das Einzige, was ich in den Kommentaren zu dem Code über die Beschleunigung gesehen habe
SplitStrength- Split-Typ:
* 0 = Teilung an der zufälligen Position, die schnellste
* 1 = Aufteilung in der Mitte des Bereichs
* 2 = starke Aufspaltung am besten Punkt des Bereichs (Standard)

Offenbar führt die zufällige Aufteilung zu einer 2-10fachen Beschleunigung und zu besseren Aufteilungspunkten, was wiederum zu einem kompakteren Baum führen kann.

d.h. die Aufteilungsmethode ist jetzt konfigurierbar? Aber die Standardeinstellung ist immer noch die langsamste.

Na ja, dann können Sie es ja selbst nachbessern, ja :)

 
Maxim Dmitrievsky:

d.h. die Aufteilungsmethode ist jetzt konfigurierbar? Aber die Standardeinstellung ist immer noch die langsamste.

Na ja, dann kannst du es ja selbst nachbessern, ja :)

Ich befürchte, dass alle diese Änderungen bei der Aktualisierung des Terminals überschrieben werden. Es ist notwendig, eine Kopie der Waldklasse zu erstellen und diese als separate Datei zu speichern
 
elibrarius:
Ich befürchte nur, dass alle Änderungen überschrieben werden, wenn das Terminal aktualisiert wird. Wir sollten eine Kopie der Waldklasse erstellen und sie als separate Datei aufbewahren

Ja, oder ein Archiv führen.

Nun, dann lasst uns experimentieren, danke fürs Herumstöbern, das ist hilfreich.

vielleicht auf die gleiche Weise, wie wir Bayes'sche Bäume hinzufügen könnten, wenn Sie das verstehen
 
elibrarius:

Ich verstehe also, dass es hier etwas zu ändern gibt.

//+------------------------------------------------------------------+
//| Makes split on attribute                                         |
//+------------------------------------------------------------------+
static void CDForest::DFSplitC(double &x[],int &c[],int &cntbuf[],const int n,
                               const int nc,const int flags,int &info,
                               double &threshold,double &e,double &sortrbuf[],
                               int &sortibuf[])
 
Maxim Dmitrievsky:

Ich verstehe also, dass Sie versuchen können, hier etwas zu ändern

ja. Und duplizieren Sie es in DFSplitR, damit auch das Regressionsgerüst die gleiche Funktionalität hat