Discussion de l'article "Algorithmes Génétiques - C'est Facile !" - page 12
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
....
En général, il faut comprendre que l'AG ne trouve pas une solution exacte, mais une solution robuste. C'est-à-dire une solution qui est assez performante par rapport à l'ensemble des solutions possibles.
Les fonctions de test sont "vaincues". Elles doivent être vaincues.
Ainsi, vous avez tout dit correctement.
Les fonctions de test sont "vaincues". Elles doivent être vaincues.
Mais vous dites tout ce qu'il faut.
Oui, oui, je n'ai pas élaboré, et c'est pourquoi il s'agit de fonctions de test, l'algorithme doit les prendre, sinon un tel algorithme ne peut pas être considéré comme réussi.
Il est difficile d'imaginer ce que l'algorithme trouvera dans le champ inconnu s'il ne passe même pas le test.
Merci à tous, ça marche.
Il a fallu que je sois si stupide pour confondre moins et multiplier.
Merci à tous, cela fonctionne.
Je me demande comment visser correctement l'UGA, si nous devons optimiser différentes variables avec la même valeur de la fonction d'aptitude pour minimiser l'erreur d'approximation ? Problème classique. Un réseau neuronal à deux couches à cinq passages avec 4 neurones, par exemple, nécessite une recherche de 22 coefficients avec un biais dans la plage [-1...1] avec une précision de 0,0001 et, simultanément, dans la même fonction cible, la sélection des paramètres des indicateurs d'entrée 5 pièces*2paramètres= 10 variables dans la plage 5...50. Ou séparément, mais avec un pas de 0,01.
Bien sûr, vous pouvez coder les valeurs des indicateurs dans la plage de poids. Mais c'est un peu différent.
Et encore une question. Est-il possible de transmettre à l'UGA les conditions de saut de gènes ? C'est-à-dire, par exemple, que les gènes responsables de l'indicateur devraient correspondre à la condition G23< G24 G25<G26 et ainsi de suite.
Je me demande comment visser correctement l'UGA, si nous devons optimiser différentes variables avec la même valeur de la fonction d'aptitude pour minimiser l'erreur d'approximation ? Problème classique. Un réseau neuronal à deux couches à cinq passages avec 4 neurones, par exemple, nécessite une recherche de 22 coefficients avec un biais dans la plage [-1...1] avec une précision de 0,0001 et, simultanément, dans la même fonction cible, la sélection des paramètres des indicateurs d'entrée 5 pièces*2paramètres= 10 variables dans la plage 5...50. Ou séparément, mais avec un pas de 0,01.
Bien sûr, vous pouvez coder les valeurs des indicateurs dans l'intervalle des poids. Mais c'est un peu différent.
Et encore une question. Est-il possible de transmettre à l'UGA les conditions de saut de gènes ? C'est-à-dire, par exemple, que les gènes responsables de l'indicateur devraient correspondre à la condition G23< G24 G25<G26 et ainsi de suite.
C'est tout, c'est tout,
il y a une fourchette dans laquelle la plupart des paramètres fonctionnent, le reste est simplement ajusté par décalage et mise à l'échelle.
Vous comprenez que le code de l'article n'est pas un développement commercial peaufiné pour chaque éternuement du consommateur.
Il y a un désir de fixer des plages pour chaque paramètre, personne ne vous tient la main, mais n'oubliez pas qu'avec le nombre de paramètres qui se compte en milliers, fixer des plages à la main deviendra très problématique.
avoir une plage de gènes [-1;1] --> (int)NormaliseDouble( ((gene+1)/2)*45+5 ,0) --> [5;50]
Bien que je sois d'accord sur le fait qu'il y aura beaucoup de gènes différents donnant le même résultat, vous pouvez créer un paramètre de précision pour combiner les gènes, par exemple de 0 à 1000ème gène précision à 3 chiffres, de 1000 à 1010 précision à 0 chiffre.
Et une dernière question. Est-il possible de transmettre les conditions de saut de gène à l'UGA ? C'est-à-dire, par exemple, que les gènes responsables de l'indicateur doivent remplir la condition G23<G24 G25<G26 et ainsi de suite.
Vous pouvez procéder comme suit : Paramètre1=G23 Paramètre2=G23+G24.
Lors de la conversion de la plage, il est préférable d'effectuer une conversion avec une vérification logique, qui inclura la rupture.
Sinon, il n'y aura pas de lien entre une partie de l'intervalle brisé et une autre. Il faut comprendre ici que les gènes sont empruntés à différents chromosomes uniquement en conséquence, le deuxième gène ne peut être emprunté que pour la production du deuxième gène du nouveau chromosome.
Si un paramètre est représenté par deux gènes, il n'y aura pas de lien entre eux.
Il est préférable d'effectuer une transformation avec un contrôle logique, qui inclura la rupture.
Sinon, il n'y aura pas de lien entre une partie de l'intervalle brisé et une autre, il faut comprendre que les gènes sont empruntés à différents chromosomes uniquement en conséquence, le deuxième gène ne peut être emprunté que pour la production du deuxième gène du nouveau chromosome.
Si un paramètre est représenté par deux gènes, il n'y aura pas de lien entre eux.
C'est peut-être mieux.
J'ai proposé une variante simple. L'AG peut la traiter sans problème.
En général, les gènes ne sont pas toujours empruntés, de nouveaux gènes peuvent être générés.