L'apprentissage automatique dans la négociation : théorie, modèles, pratique et algo-trading - page 884

 
SanSanych Fomenko:

Je comprends la différence entre les arbres et les forêts (ou du moins je le pense) ; les forêts sont meilleures à utiliser lorsqu'il y a plus d'incertitude dans les données, c'est-à-dire un modèle moins stable puisque les forêts prennent des décisions par vote, ce qui est fait par des arbres aléatoires (indépendants en raison du raccourcissement), ou est-ce que je me trompe ?

Je ne sais pas, je juge d'après les résultats.

Et l'option "adad" je ne l'ai pas, elle n'est pas dans la capture d'écran, il y a "Forest" - ce n'est pas ça ?

Dans l'ordre :


Arbre

Le paquet 'rpart' fournit la fonction'rpart'.


Boost

# Extreme Boost

# Le paquet `xgboost' implémente l'algorithme de boost de gradient extrême.


SVM

# Machine à vecteur de support.

# Le paquet 'kernlab' fournit la fonction 'ksvm'.


Linéaire

# Modèle de régression

# Construire un modèle de régression.


Réseau neuronal

# Réseau neuronal

# Construire un modèle de réseau neuronal en utilisant le paquet nnet.

library(nnet, quietly=TRUE)


D'ailleurs, j'ai fait ce travail pour vous - vous pouvez voir tout cela dans Log vous-même. Si vous avez une autre version de rattle, la liste peut être différente.

Merci pour la transcription. J'ai la version 5.1.0 probablement la plus récente - tous ces paquets sont installés automatiquement lorsqu'ils sont appelés, et en plus il y a "Forest".

SanSanych Fomenko:

La bibliothèque est modifiée à ma demande - j'avais besoin d'un testeur de MT5. J'ai fait le calcul, trop paresseux pour le vérifier, j'aurais pu le nettoyer.

Jetez un œil aux articles deVladimir Perervenko

Si vous vous intéressez aux réseaux, il est le dernier en date dans ce domaine, R, les conseillers, l'homme est disponible sur le site

Merci, je vais jeter un coup d'œil.

 
SanSanych Fomenko:


Alors comment couper un fichier avec R, faut-il utiliser un algorithme spécial ? C'est intéressant de voir ce qui se passe à la fin.

Par indice, par exemple : [1:2000,], [2001:4000,]. Il est important de ne pas rompre la séquence temporelle naturelle dans le second fichier.

En d'autres termes, vous pouvez le couper dans Excel, non ?

 
Maxim Dmitrievsky:

Essayez-le comme vous voulez :) L'essentiel est de ne pas oublier de lire la théorie, afin de ne pas faire quelque chose de stupide, et il n'est pas difficile d'utiliser n'importe quel paquet, il y en a beaucoup, et même en ligne - vous n'avez pas besoin d'installer quoi que ce soit. Il y a un boom dans les datasens, "ça" est partout.

Je n'ai pas le temps d'analyser les archives, je travaille sur mes propres affaires.

Le fait est que différentes variantes donnent des résultats différents, et si c'est le cas, comment peut-on conclure sur la qualité des prédicteurs ? Il s'avère simplement qu'il est nécessaire de prendre la version moyenne, c'est-à-dire que si tout n'est pas mauvais, alors c'est bien, et ensuite d'ajuster le réseau/arbre/forêt ?

Et pourtant, j'aimerais bien savoir comment transférer la logique de l'arbre à Expert Advisor...

 
Aleksey Vyazmikin:

Donc, vous pouvez aussi couper dans Excel, non ?

Il n'y a pas besoin d'Excel. Une ligne, c'est tout.

Lire Robert I. Kabakov R in Action. Analyse et visualisation de données dans le langage R. Il est disponible sur l'Internet.

 
Yuriy Asaulenko:

Il n'y a pas besoin d'Excel. 1 ligne et c'est tout.

Lire - Robert I. Kabakov R en action. Analyse et visualisation de données dans le langage R. Il est disponible sur l'Internet.

Il se peut que vous ne sachiez pas tout - je n'ai pas l'intention d'apprendre la programmation en R, j'ai besoin de la possibilité de vérifier les prédicteurs et de convertir l'ensemble de règles en MT5. En général, s'il s'agit d'une seule chaîne, pourquoi ne pas l'écrire pour vous ? Pour l'instant, j'ai utilisé les moyens disponibles.

 
SanSanych Fomenko:


Votre image du hochet est incomplète. Vous devriez au moins aller dans l'onglet d'évaluation adjacent et y voir les résultats.

Mais le plus important est de diviser le fichier source en deux parties portant des noms différents (vous devrez probablement le faire en R).

Dans le premier fichier, construisez les six modèles et regardez leur test d'estimation, validez. Ensuite, entrez le nom du second fichier dans le champ R Dataset. Et là-dessus, tu as encore des notes. Toutes les estimations doivent être approximativement les mêmes !

Si ces estimations ne coïncident pas, et que le second fichier montre des résultats plus mauvais des modèles, cela signifie que les modèles sont surentraînés et que la raison en est le bruit (non lié à la variable cible) des prédicteurs.


C'est le moment de vérité : soit vous disposez d'un ensemble de prédicteurs pertinents pour une variable cible particulière, soit vous n'en disposez pas. Et aucun modèle ne peut réparer cette circonstance malheureuse. Ensuite, le travail stupide consistant à trouver une paire de "prédicteurs cibles" commence, les modèles ne sont pas intéressants du tout, vous en trouverez une paire, puis les modèles ne sont que des graines dans R, vous en trouverez une douzaine en un jour et en ferez des ensembles.

Je vais vous demander d'expliquer plus en détail.

1. Dans l'onglet "Évaluer", quel paramètre choisir dans le jeu "Type" ?

2. Que dois-je faire pour pouvoir saisir le nom d'un deuxième fichier ? Ma fenêtre est active, mais je ne peux pas sélectionner un fichier ! Et "Fichier CSV" - pourquoi puis-je choisir là ?


 
Aleksey Vyazmikin:

Le fait est que différentes options donnent des résultats différents, et si c'est le cas, comment pouvons-nous conclure sur la qualité des prédicteurs ? S'agit-il simplement de prendre la variante moyenne, c'est-à-dire que si ce n'est pas mauvais partout, alors c'est bon, puis de modifier le réseau/arbre/forêt ?

Et encore, je veux savoir comment transférer la logique de l'arbre à l'Expert Advisor...

Pourquoi ? mt5 dispose d'une forêt aléatoire, vous pouvez l'adapter à vos besoins. Recherchez les erreurs et donnez-lui des exemples de tests, observez les résultats. La seule chose est qu'il ne sort pas les variables

Mais si vous considérez que les algorithmes sont les mêmes partout, vous pouvez visualiser et expérimenter en R, puis l'entraîner et utiliser la TA.

 
Aleksey Vyazmikin:

De toute façon, si c'est une ligne, pourquoi ne pas vous l'écrire ? Eh bien, en attendant, je me suis débrouillé avec les moyens du bord.

Je n'ai pas demandé, tu l'as fait. Je n'en ai pas besoin.)

Et si vous travaillez avec R, vous devrez peut-être le faire.

 
Aleksey Vyazmikin:

Je vous demande d'expliquer plus en détail.

1. Dans l'onglet "Évaluer", quel paramètre dois-je sélectionner dans le jeu "Type" ?

2. Que dois-je faire pour pouvoir saisir le nom du deuxième fichier ? Ma fenêtre est active, mais je ne peux pas sélectionner un fichier ! Et "Fichier CSV" - pourquoi puis-je choisir là ?


1. tout. C'est un modèle d'évaluation différent et chacun a une signification différente. Rattle est bon précisément parce qu'il donne au débutant une connaissance systématique de l'apprentissage automatique : préparation des données d'entrée, modélisation, estimation du modèle. Ce n'est qu'après avoir maîtrisé au moins à un niveau primitif les TROIS parties qu'il est logique de passer du jeu des chiffres à des choses plus significatives.

2. l'ensemble de données R est un fichier r. Cela signifie que dans l'onglet Data, les données initiales ont été chargées en tant que fichier RData - c'est un espace de travail en termes de R. Dans cet espace de travail, deux cadres de données ont été préparés : l'un pour l'entraînement et le test du modèle, et l'autre comme ce jeu de données R.

Le plus simple est de télécharger un fichier Excel prêt à l'emploi, de télécharger le journal, de passer à R et de diviser le cadre de données résultant en deux.

Alternativement.

Ouvrez R lui-même et téléchargez-y le fichier excel - il s'agit d'une ligne. Ensuite, il divise le cadre de données en deux.

Mais vous devez utiliser le deuxième fichier du modèle formé.

 
Maxim Dmitrievsky:

Pourquoi ? mt5 a une forêt aléatoire, vous pouvez l'adapter à vos besoins.

Ou, étant donné que les algorithmes sont les mêmes partout, vous pouvez visualiser et expérimenter en R, puis vous entraîner et utiliser en MT.

Le programme "Deductor Studio" montre bien tout visuellement, c'est-à-dire l'arbre, les règles ; je ne vois pas encore cela dans R, et il n'y en aura pas dans MT5 (c'est-à-dire que tout peut être fait, mais je dois payer pour cela...). Il s'avère donc que je dois utiliser la bibliothèque algib pour inclure les forêts aléatoires dans MT5, n'est-ce pas ?

J'ai trouvé un morceau du code de l'algorithmeC4.5 http://datascientist.one/algorithm-c4-5/ en R, est-il très difficile à mettre en œuvre dans MT5 ?

C45 <- function(data,x){
   result.tree <- NULL
   if ( IsEmpty(data) ) {
                node.value <- "Failure"
                result.tree <- CreateNode(node.value)
                return(result.tree)
        }
         if( IsEmpty(x) ){
                node.value <- GetMajorityClassValue(data,x)
                result.tree <- CreateNode(node.value)
                return(result.tree)
        }
         if( 1 == GetCount(x) ){
                node.value <- GetClassValue(x)
                result.tree <- CreateNode(node.value)
                return(result.tree)
        } <br>

       gain.ratio <- GetGainRatio(data,x)<br>
     best.split <- GetBestSplit(data,x,gain.ratio)

     data.subsets <- SplitData(data,best.split)
     values <- GetAttributeValues(data.subsets,best.split)
     values.count <- GetCount(values)

     node.value <- best.split
    result.tree <- CreateNode(node.value)
         idx <- 0
    while( idx<=values.count ){
        i       dx <- idx+1
                newdata <- GetAt(data.subsets,idx)
                value <- GetAt(values,idx)
                new.x <- RemoveAttribute(x,best.split)
                new.child <- C45(newdata,new.x)
                AddChildNode(result.tree,new.child,value)
   }

    result.tree
        }
Алгоритм C4.5
Алгоритм C4.5
  • 2016.05.06
  • datascientist.one
Алгоритм C4.5 строит классификатор в форме дерева решений. Чтобы сделать это, ему нужно передать набор уже классифицированных данных. А что такое классификатор? Классификатор – это инструмент, применяемый в data mining, который использует классифицированные данные и на их основании пытается предсказать, к какому классу стоит отнести новые...