Apparemment, si toutes les données d'une colonne sont identiques, le calcul est ignoré. Dans la deuxième colonne, j'ai laissé toutes les données à 2 et la deuxième ligne de la matrice est restée à zéro. Bien qu'il soit probablement correct de remplir la diagonale avec des 1.
PS. J'ai d'abord pensé qu'il s'agissait d'un bogue avec Alglib.
Dans l'ancien code, les valeurs des éléments étaient fixées par m[row].Set(col, val) ; Et maintenant m.Set(row,col, val) ;
Il est dommage qu'il n'y ait pas de compatibilité ascendante. Cela n'a pas d'importance pour moi. Je ne travaille pas avec Alglib en ce moment. Si les anciens codes de quelqu'un cessent de fonctionner, il sera nécessaire de les corriger. Le plus triste est que l'ancienne version de
m[row].Set(col, val) ;
n'écrit pas de message d'erreur, elle ne fait tout simplement rien. Les gens ne remplaceront pas et ne sauront pas qu'ils doivent changer le code. Il comptera quelque chose, mais avec des matrices inchangées.
Alglib est une bonne bibliothèque, elle a tout ce qu'il faut pour la MO. Les réseaux neuronaux y sont très lents, c'était le cas dans les premières versions.
C'est étrange que l'algorithme natif soit plus lent, ils auraient pu simplement le copier. Il est peu probable qu'Alglibe dispose d'un algorithme accéléré unique sous licence.
Avez-vous essayé les 2 autres variantes d'Alglib ? Si vous comptez en boucle chaque ligne vers chaque ligne ou chaque ligne vers toutes les lignes, la mémoire sera plus économique (2 lignes ou 1 ligne + matrice). Mais cela prendra plus de temps, je ne me souviens pas exactement, mais je pense que ce sera plus lent que la fonction intégrée.
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
dans statistics.mqh.
functions
PearsonCorrM - La corrélation de toutes les lignes avec toutes les lignes est la plus rapide.
Je me trompe quelque part, mais je ne le vois pas.
Mais cela fonctionne avec cette chaîne
const matrix<double> matrix1 = {{2, 2, 3}, {3, 2, 3}, {1, 2, 1}} ;
[0,0,0]
[0.8660254037844387,0,1]]
Apparemment, si toutes les données d'une colonne sont identiques, le calcul est ignoré.
Dans la deuxième colonne, j'ai laissé toutes les données à 2 et la deuxième ligne de la matrice est restée à zéro. Bien qu'il soit probablement correct de remplir la diagonale avec des 1.
PS. J'ai d'abord pensé qu'il s'agissait d'un bogue avec Alglib.
Dans l'ancien code, les valeurs des éléments étaient fixées par
m[row].Set(col, val) ;
Et maintenant
m.Set(row,col, val) ;
Il est dommage qu'il n'y ait pas de compatibilité ascendante. Cela n'a pas d'importance pour moi. Je ne travaille pas avec Alglib en ce moment. Si les anciens codes de quelqu'un cessent de fonctionner, il sera nécessaire de les corriger.
Le plus triste est que l'ancienne version de
m[row].Set(col, val) ;
n'écrit pas de message d'erreur, elle ne fait tout simplement rien. Les gens ne remplaceront pas et ne sauront pas qu'ils doivent changer le code. Il comptera quelque chose, mais avec des matrices inchangées.
Apparemment, si toutes les données d'une colonne sont identiques, le calcul est ignoré.
Pearson ne calcule pas entre les lignes, mais entre les colonnes ?
On dirait bien. Il donne une seule matrice.Pearson ne calcule pas entre les lignes, mais entre les colonnes ?
ZY Il semble que oui. Il produit une matrice unitaire.Alglib est une bonne bibliothèque, elle a tout ce qu'il faut pour la MO. Les réseaux neuronaux y sont très lents, c'était le cas dans les premières versions.
dans statistics.mqh.
PearsonCorrM - La corrélation de toutes les lignes avec toutes les lignes est la plus rapide.
Sur cette base, j'ai calculé la matrice de corrélation.
J'ai mesuré la performance.
Résultat.
Il est évident qu'Alglib calcule la matrice plus rapidement que la méthode matricielle standard.
Cependant, pour la recherche de motifs, le calcul de la matrice de corrélation est insensé en termes de consommation de RAM.
Combien de temps faut-il à Python pour lire la même taille de la matrice originale que dans l'exemple ci-dessus ?
Cependant, la lecture d'une matrice de corrélation pour trouver des modèles est une folie qui consomme de la mémoire vive.
Ma matrice intégrée a fonctionné plus rapidement sur mon i7-6700
C'est étrange que l'algorithme natif soit plus lent, ils auraient pu simplement le copier. Il est peu probable qu'Alglibe dispose d'un algorithme accéléré unique sous licence.
Avez-vous essayé les 2 autres variantes d'Alglib ?
Si vous comptez en boucle chaque ligne vers chaque ligne ou chaque ligne vers toutes les lignes, la mémoire sera plus économique (2 lignes ou 1 ligne + matrice). Mais cela prendra plus de temps, je ne me souviens pas exactement, mais je pense que ce sera plus lent que la fonction intégrée.
Cependant, la lecture d'une matrice de corrélation pour trouver des modèles est une folie qui consomme de la mémoire vive.
C'est pire avec la mémoire.
Avant le lancement
Et pendant le travail d'Alglibov PearsonCorrM la mémoire augmente sans cesse : j'ai vu 5 gg et 4.6 à l'écran.
et pendant le travail de Matrix.CorrCoef standard.
Apparemment, le programme standard est optimisé pour une utilisation minimale de la mémoire, et le programme Alglibov est optimisé pour la vitesse.
J'ai réussi à faire fonctionner la version intégrée plus rapidement : sur un i7-6700.
Et pendant l'exécution de PearsonCorrM d'Alglib, la mémoire continue de croître : et 5 gg ont été vus, 4,6 ont été affichés à l'écran.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading
L'apprentissage automatique dans le trading : théorie, modèles, pratique et algo-trading
fxsaber, 2023.09.25 18:01
C'est juste une transition de CMatrixDouble à matrix<double>. J'ai même dû faire cette comparaison de matrices à cause de la mémoire.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading
L'apprentissage automatique dans le trading : théorie, modèles, pratique et algo-trading
fxsaber, 2023.09.25 18:01