Interpolation, approximation et autres (paquet alglib) - page 13

 
Алексей Тарабанов:

Eh bien, c'est de ça qu'il s'agit. Tout polynôme d'interpolation ne convient pas à l'extrapolation. Fourier est exactement la même que la série originale, et les polynômes comme Lagrange ou Taylor produisent des courbes en forme d'avalanche avec un taux de variation des prix croissant. Le lissage adoucit l'image, mais pas beaucoup, et il n'est pas correct car il perd le lien avec la source originale.

Il existe une méthode d'extrapolation simple, claire et efficace, qui n'est pas liée à l'interpolation. Tendance.

Vous êtes lent à vous remettre du stress de ce que vous avez lu, tout comme les lecteurs précédents, c'est un sujet de discussion différent ici.

 
Maxim Dmitrievsky:

Vous êtes aussi lent à vous remettre du stress de la lecture que les lecteurs précédents, c'est hors-sujet maintenant.

Oui, c'est déjà hors sujet ici.

 

Salut Maxim,

Il y a quelques jours, vous cherchiez des solutions de noyaux pour n vecteurs d'entrée au lieu de 2. Avez-vous trouvé cette solution ou essayez-vous de la mettre en œuvre d'une autre manière ?

Si je ne me trompe pas, au lieu de K (x, y) où K est la fonction noyau , vous recherchez la sortie de K (x1, x2, x3, ..., xn). Est-ce que je comprends bien ?

Ce que j'ai appris, c'est que le noyau de la fonction est la valeur scalaire. Elle devrait donc être la somme de tous les produits scalaires. Ça devrait être quelque chose comme ça :

K (x1, x2, x3, ... xn) = Somme de tous les z (i). Z (i + 1) pour tout i où 0 <i < n

Cela peut être pour une boucle dans MQL5 avec la somme de toutes les fonctions du noyau.

Je n'ai aucun moyen de le tester. Mais avez-vous essayé et testé quelque chose de similaire ? Ou est-ce que je manque quelque chose dans ma compréhension ?

 
FxTrader562:

Salut Maxim,

Il y a quelques jours, vous cherchiez des solutions de noyaux pour n vecteurs d'entrée au lieu de 2. Avez-vous trouvé cette solution ou essayez-vous de la mettre en œuvre d'une autre manière ?

Si je ne me trompe pas, au lieu de K (x, y) où K est la fonction noyau , vous recherchez la sortie de K (x1, x2, x3, ..., xn). Est-ce que je comprends bien ?

Ce que j'ai appris, c'est que le noyau de la fonction est la valeur scalaire. Elle devrait donc être la somme de tous les produits scalaires. Ça devrait être quelque chose comme ça :

K (x1, x2, x3, ... xn) = Somme de tous les z (i). Z (i + 1) pour tout i où 0 <i < n

Cela peut être pour une boucle dans MQL5 avec la somme de toutes les fonctions du noyau.

Je n'ai aucun moyen de le tester. Mais avez-vous essayé et testé quelque chose de similaire ? Ou est-ce que je manque quelque chose dans ma compréhension ?

Bonjour, en fait, je ne sais pas comment faire maintenant, parce que ces algorithmes (comme le SVM ou le processus gaussien) ne fonctionnent qu'avec des produits internes, pas avec une cartographie des caractéristiques. Je cherche maintenant de bonnes idées pour faire mieux.

 
Maxim Dmitrievsky :

Bonjour, en fait, je ne sais pas comment faire maintenant, parce que ces algorithmes (comme le SVM ou le processus gaussien) ne fonctionnent qu'avec des produits internes, et non avec un mappage de caractéristiques. Je cherche maintenant une bonne idée pour faire mieux.

D'après ce que j'ai compris, le kernel trick est un sous-ensemble de l'algorithme SVM. Vous voulez donc dire que vous ne cherchez plus à mettre en œuvre le kernel trick ?

Ce que vous appelez la cartographie des caractéristiques est exprimée en termes de produit scalaire ou de produit interne des polynômes de l'espace supérieur dans la fonction de noyau et, selon moi, il s'agit d'une simple multiplication des fonctions de noyau.

Pour être clair, dans K(x,y), prévoyez-vous d'utiliser le prix de clôture de deux bougies consécutives comme x et y pour obtenir le noyau ou essayez-vous d'implémenter autre chose ?

 
FxTrader562:

D'après ce que j'ai compris, le kernel trick est un sous-ensemble de l'algorithme SVM. Vous voulez donc dire que vous ne cherchez plus à mettre en œuvre le kernel trick ?

Ce que vous appelez la cartographie des caractéristiques est exprimée en termes de produit scalaire ou de produit interne des polynômes de l'espace supérieur dans la fonction noyau et, selon moi, il s'agit d'une simple multiplication des fonctions noyau.

Pour être clair, dans K(x,y), prévoyez-vous d'utiliser le prix de clôture de deux bougies consécutives comme x et y pour obtenir le noyau ou essayez-vous d'implémenter autre chose ?

Je veux dire que je ne comprends pas comment changer les vecteurs d'entrée après la multiplication, ils sont absolument égaux alors. Il indique qu'il faut utiliser la matrice de Gram pour placer les vecteurs (cartographie des caractéristiques), puis effectuer quelques manipulations avec celle-ci. Voici un exemple de code avec SVM

https://pythonprogramming.net/soft-margin-kernel-cvxopt-svm-machine-learning-tutorial/

def polynomial_kernel(x, y, p=3):
    return (1 + np.dot(x, y)) ** p

# Gram matrix
        K = np.zeros((n_samples, n_samples))
        for i in range(n_samples):
            for j in range(n_samples):
                K[i,j] = self.kernel(X[i], X[j]) ??? Gram matrix 'K' is simmetrical. What we must do next, dont understand the code below

        P = cvxopt.matrix(np.outer(y,y) * K)
        q = cvxopt.matrix(np.ones(n_samples) * -1)
        A = cvxopt.matrix(y, (1,n_samples))
        b = cvxopt.matrix(0.0)

Maintenant, je dois juste apprendre les espaces vectoriels pour le comprendre.

il vaudrait peut-être mieux que nous allions sur un forum)

Python Programming Tutorials
  • pythonprogramming.net
Python Programming tutorials from beginner to advanced on a massive variety of topics. All video and text tutorials are free.
 
Maxim Dmitrievsky:

Je veux dire que je ne comprends pas comment changer les vecteurs d'entrée après la multiplication, ils sont absolument égaux alors. Il indique qu'il faut utiliser la matrice de Gram pour placer les vecteurs (cartographie des caractéristiques), puis effectuer quelques manipulations avec celle-ci. Voici un exemple de code avec SVM

https://pythonprogramming.net/soft-margin-kernel-cvxopt-svm-machine-learning-tutorial/

Maintenant, je dois juste apprendre les espaces vectoriels pour le comprendre.

il vaudrait peut-être mieux que nous allions sur un forum)

Bien entendu, le matériel de référence est donné dans les autres forums où la matrice de Gram est résolue dans la vidéo. J'essaie également de le comprendre.

En outre, avez-vous déjà compris et mis en œuvre jusqu'à présent dans MQL5 ? Sinon, il est inutile d 'essayer davantage :)

 
FxTrader562:

Bien sûr, le matériel de référence est donné dans les autres forums où la matrice de Gram est résolue dans la vidéo. J'essaie également de le comprendre. Voici une autre référence vidéo rapide spécifique à la matrice des grammes :

https://www.youtube.com/watch?v=8JiMUqbByGA

En outre, avez-vous déjà compris et mis en œuvre jusqu'à présent dans MQL5 ? Sinon, il est inutile d'essayer davantage :)

C'est une simple boucle qui calcule la matrice des grammes... mais ensuite le solveur quadratique fonctionne, je ne suis pas sûr pour quoi... ou c'est déjà une logique SVM :)

merci pour la vidéo

 
Maxim Dmitrievsky:

C'est une simple boucle qui calcule la matrice des grammes... mais ensuite le solveur quadratique fonctionne, je ne suis pas sûr pour quoi... ou c'est déjà une logique SVM :)

merci pour la vidéo

Exactement... comme je l'ai dit, cela peut être implémenté probablement juste avec une boucle for dans MQL5.

Eh bien, nous n'avons pas besoin de nous soucier d'autres choses tant que notre objectif final est atteint :)

Je veux dire que tant que nous pouvons prendre les entrées dans Mql5 et obtenir les sorties sous forme de noyaux comme prévu, alors les autres choses n'ont pas d'importance. Parce que de toute façon, la partie finale sera la partie test où tout sera révélé si cela a été mis en œuvre correctement ou non en fonction des résultats.

D'ailleurs, le SVM n'est qu'une technique de classification et l'astuce du noyau la rend facile grâce au simple produit scalaire. Je ne pense pas que tout ce qui concerne le SVM doive être implémenté dans le kernel trick, car dans le kernel trick tout est fait par la fonction elle-même et donc, il n'y a pas grand chose à faire.

Aussi, cette vidéo explique le SVM en détail avec un exemple de code en python utilisant l'astuce du noyau. Vous pouvez y jeter un coup d'œil :

https://www.youtube.com/watch?v=N1vOgolbjSc&t=157s

 
FxTrader562:

Mais je ne comprends pas comment travailler avec la matrice Gram maintenant, parce que ce n'est pas une nouvelle fonctionnalité transformée, c'est juste une matrice avec le produit scalaire des anciennes fonctionnalités.

Raison: