Où puis-je trouver des informations à ce sujet ? Je prépare les données pour le SN en fonction de ma perception de ce qui est important et de ce qui ne l'est pas.
Une chose qui m'intrigue est de savoir si le même type de données doit être collecté "en tas" ou ajouté au fur et à mesure qu'il arrive ?
De quel côté les données doivent-elles être collectées : auprès des "anciens" ou des "nouveaux" ?
Où puis-je trouver des informations à ce sujet ? Je prépare les données pour le SN en fonction de ma perception de ce qui est important et de ce qui ne l'est pas.
Une chose qui m'intrigue est de savoir si le même type de données doit être collecté "en tas" ou ajouté au fur et à mesure qu'il arrive ?
De quel côté les données doivent-elles être recueillies : du côté des "anciens" ou des "nouveaux" ?
Dans le fil de discussion MoD, demandez, quelqu'un vous répondra. C'est le sujet du connecteur
Le problème est que la normalisation est une cause perdue d'avance !
Laissez-moi vous expliquer. Il y a quelques données A, B, C...
Ils sont différents en termes d'importance, etc. Tout le monde (google) dit que la normalisation doit être faite par colonnes (A-A-A, B-B-B, C-C-C) et non par lignes. C'est logiquement compréhensible.
Mais lorsque de nouvelles données apparaissent pour la "prédiction", comment les normaliser s'il ne s'agit que d'une seule ligne ? Et tout terme de cette ligne peut aller au-delà de la normalisation sur les données de formation et de test ?
Et la normalisation par les chaînes de caractères n'a aucun effet !
En fait, après avoir vérifié ces nuances, j'ai eu ce "cri de l'âme" )))).
Pendant la normalisation, les coefficients sont sauvegardés. Pour éviter les écarts, nous devons normaliser une grande partie de l'historique, puis appliquer ces coefficients aux nouvelles données.
sur des données non normalisées, la grille n'apprendra pas, ou mal. C'est leur nature.
les coefficients sont conservés lors de la normalisation. Pour éviter les écarts, nous devons normaliser une grande partie de l'historique, puis appliquer ces coefficients aux nouvelles données.
Il n'apprendra pas à partir de données non normalisées, ou il apprendra mal. C'est leur particularité.
Tout cela est logique et compréhensible, mais la grille est en cours de formation ! En outre, il existe des informations selon lesquelles l'utilisation de données non normalisées est plus compliquée pour l'apprentissage, mais ce n'est pas essentiel.
Et comment ne pas sortir des gammes ? Par exemple, il y a un prix. Il y a une gamme de prix sur les données de formation et de test - prendre 123-324. Mais le prix passe à 421. Comment se situe-t-elle dans cette même fourchette ?
Mais nous nous éloignons du cœur du problème : pourquoi, dans le cadre d'une formation et de tests normaux, la prédiction est-elle quelque chose ?
if num_check_rows > r or num_check_rows == 0:
num_check_rows = r
model = tf.keras.models.Sequential()
model = tf.keras.models.load_model(flname)
model.summary()
for i in range(num_check_rows):
b = model.predict(test_data[i])
a = b[0]
x = a[0]
y = a[1]
x = format(x, '.5f')
y = format(y, '.5f')
print(f'ожидалось {test_verification[i]} >>> получили [{x} {y}]')
jurer
Model: "sequential_16"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense (Dense) (None, 20) 820
_________________________________________________________________
dropout (Dropout) (None, 20) 0
_________________________________________________________________
dense_1 (Dense) (None, 10) 210
_________________________________________________________________
dense_2 (Dense) (None, 2) 22
=================================================================
Total params: 1,052
Trainable params: 1,052
Non-trainable params: 0
_________________________________________________________________
Traceback (most recent call last):
File "M:/PythonProgs/PycharmProjects/NNets/ТестерНС.py", line 79, in <module>
b = model.predict(test_data[i])
.....
ValueError: Error when checking input: expected dense_input to have shape (40,) but got array with shape (1,)
Après avoir cherché sur le web et regardé l'article sur la base duquel j'ai écrit mon code, je suis arrivé à une conclusion décevante : tout auteur d'un article "pour débutants" oublie forcément de mentionner quelque chose d'important...
Et là, il s'est avéré queStandardScaler est utilisé dans la formation du réseau.Mais l'article ne dit pas un mot sur ce qu'il est et pourquoi il est nécessaire.
De plus,StandardScaler est la normalisation. De plus, je veux savoir comment je peux mettre en œuvre la même normalisation pour un seul vecteur d'entrée et même moins.
Pire encore, la "normalisation" est effectuée par les colonnes de l'ensemble de données ! Non, pour les statistiques, c'est bien. Mais pour les prévisions, c'est "***hole" ! Lorsque de nouvelles données arrivent, dois-je réentraîner le réseau juste pour que les nouvelles données se situent dans la plage de "normalisation" ?
Conneries !
Au moment où ce "nouveau réseau" est formé, la situation peut déjà avoir radicalement changé. Alors, quel est le but de tout ça ?
Autant pour Python avec un tas de bibliothèques "aiguisées"....
Je vous serais très reconnaissant si vous pouviez me faire changer d'avis.
P.S. Je veux juste croire que je n'ai pas perdu mon temps sur Python pour rien.
Après avoir cherché sur le web et regardé l'article sur la base duquel j'ai écrit mon code, je suis arrivé à une conclusion décevante : tout auteur d'un article "pour débutants" oublie forcément de mentionner quelque chose d'important...
Et là, il s'est avéré queStandardScaler est utilisé dans la formation du réseau.Mais l'article ne dit pas un mot sur ce qu'il est et pourquoi il est nécessaire.
De plus,StandardScaler est la normalisation. De plus, je veux savoir comment je peux mettre en œuvre la même normalisation pour un seul vecteur d'entrée et même moins.
Pire encore, la "normalisation" est effectuée par les colonnes de l'ensemble de données ! Non, pour les simples statistiques, c'est bien. Mais pour les prévisions, c'est "***hole" ! Lorsque de nouvelles données arrivent, dois-je réentraîner le réseau juste pour que les nouvelles données se situent dans la plage de "normalisation" ?
Conneries !
Au moment où ce "nouveau réseau" est formé, la situation peut déjà avoir radicalement changé. Alors, quel est le but de tout ça ?
Autant pour Python avec un tas de bibliothèques "aiguisées"....
Je vous serais très reconnaissant si vous me faisiez changer d'avis.
P.S. Je veux juste croire que je n'ai pas perdu mon temps sur Python pour rien.
Peut-être parce que c'est juste le début.
Mais je me suis récemment intéressé aux capacités de python pour mt. Et personne n'a répondu à la question de savoir s'il est possible de le faire. En plus de cela, il ne fonctionnera pas dans mql4. J'ai décidé de ne pas perdre mon temps (peut-être la situation s'améliorera-t-elle avec le temps).
Après avoir acquis un peu plus de connaissances sur le même google, j'en suis arrivé à des conclusions :
Les données doivent être "équilibrées". Par exemple, si sur 1000 données d'entrée, les signaux n'apparaissent que sur 100, il nous faut au moins 1000 - ((1000 - 100) /3) = 700 données "vides" (qui ne forment pas de signaux) à éliminer.
Le reste doit de préférence être "normalisé". Amenez-le dans l'intervalle 0-1. Mais il y a une difficulté évidente à choisir la "gamme" de normalisation. Que faut-il considérer comme un minimum et que faut-il considérer comme un maximum ? Je ne sais pas encore. Je normalise chaque tableau d'entrée par son étendue seulement...
En remplissant ces deux conditions, j'ai obtenu une réduction notable de la courbe d'apprentissage du réseau. En outre, j'ai constaté que
Certaines fonctions de perte écartées précédemment sont plus performantes.
Les résultats avec moins de couches cachées sont devenus dominants.
Il reste à vérifier le nombre d'époques d'apprentissage.
En outre, une autre question se posait : quelle devait être la réponse du réseau ?
Bien - mal préparé....
Où puis-je trouver des informations à ce sujet ? Je prépare les données pour le SN en fonction de ma perception de ce qui est important et de ce qui ne l'est pas.
Une chose qui m'intrigue est de savoir si le même type de données doit être collecté "en tas" ou ajouté au fur et à mesure qu'il arrive ?
De quel côté les données doivent-elles être collectées : auprès des "anciens" ou des "nouveaux" ?
Bien - mal préparé....
Où puis-je trouver des informations à ce sujet ? Je prépare les données pour le SN en fonction de ma perception de ce qui est important et de ce qui ne l'est pas.
Une chose qui m'intrigue est de savoir si le même type de données doit être collecté "en tas" ou ajouté au fur et à mesure qu'il arrive ?
De quel côté les données doivent-elles être recueillies : du côté des "anciens" ou des "nouveaux" ?
Dans le fil de discussion MoD, demandez, quelqu'un vous répondra. C'est le sujet du connecteur
Le problème est que la normalisation est une cause perdue d'avance !
Laissez-moi vous expliquer. Il y a quelques données A, B, C...
Ils sont différents en termes d'importance, etc. Tout le monde (google) dit que la normalisation doit être faite par colonnes (A-A-A, B-B-B, C-C-C) et non par lignes. C'est logiquement compréhensible.
Mais lorsque de nouvelles données apparaissent pour la "prédiction", comment les normaliser s'il ne s'agit que d'une seule ligne ? Et tout terme de cette ligne peut aller au-delà de la normalisation sur les données de formation et de test ?
Et la normalisation par les chaînes de caractères n'a aucun effet !
En fait, après avoir vérifié ces nuances, j'ai eu ce "cri de l'âme" )))).
Pendant la normalisation, les coefficients sont sauvegardés. Pour éviter les écarts, nous devons normaliser une grande partie de l'historique, puis appliquer ces coefficients aux nouvelles données.
sur des données non normalisées, la grille n'apprendra pas, ou mal. C'est leur nature.les coefficients sont conservés lors de la normalisation. Pour éviter les écarts, nous devons normaliser une grande partie de l'historique, puis appliquer ces coefficients aux nouvelles données.
Il n'apprendra pas à partir de données non normalisées, ou il apprendra mal. C'est leur particularité.Tout cela est logique et compréhensible, mais la grille est en cours de formation ! En outre, il existe des informations selon lesquelles l'utilisation de données non normalisées est plus compliquée pour l'apprentissage, mais ce n'est pas essentiel.
Et comment ne pas sortir des gammes ? Par exemple, il y a un prix. Il y a une gamme de prix sur les données de formation et de test - prendre 123-324. Mais le prix passe à 421. Comment se situe-t-elle dans cette même fourchette ?
Mais nous nous éloignons du cœur du problème : pourquoi, dans le cadre d'une formation et de tests normaux, la prédiction est-elle quelque chose ?
Chers amis, une fois de plus, mes skis ne bougent pas... Je demande de l'aide.
J'ai décidé d'esquisser un petit testeur pour tester la prédiction du réseau formé.
Tout va bien ici.
Et la prochaine chose que vous savez...
jurer
Qu'est-ce qu'il y a ?
Après avoir cherché sur le web et regardé l'article sur la base duquel j'ai écrit mon code, je suis arrivé à une conclusion décevante : tout auteur d'un article "pour débutants" oublie forcément de mentionner quelque chose d'important...
Et là, il s'est avéré queStandardScaler est utilisé dans la formation du réseau.Mais l'article ne dit pas un mot sur ce qu'il est et pourquoi il est nécessaire.
De plus,StandardScaler est la normalisation. De plus, je veux savoir comment je peux mettre en œuvre la même normalisation pour un seul vecteur d'entrée et même moins.
Pire encore, la "normalisation" est effectuée par les colonnes de l'ensemble de données ! Non, pour les statistiques, c'est bien. Mais pour les prévisions, c'est "***hole" ! Lorsque de nouvelles données arrivent, dois-je réentraîner le réseau juste pour que les nouvelles données se situent dans la plage de "normalisation" ?
Conneries !
Au moment où ce "nouveau réseau" est formé, la situation peut déjà avoir radicalement changé. Alors, quel est le but de tout ça ?
Autant pour Python avec un tas de bibliothèques "aiguisées"....
Je vous serais très reconnaissant si vous pouviez me faire changer d'avis.
P.S. Je veux juste croire que je n'ai pas perdu mon temps sur Python pour rien.
Après avoir cherché sur le web et regardé l'article sur la base duquel j'ai écrit mon code, je suis arrivé à une conclusion décevante : tout auteur d'un article "pour débutants" oublie forcément de mentionner quelque chose d'important...
Et là, il s'est avéré queStandardScaler est utilisé dans la formation du réseau.Mais l'article ne dit pas un mot sur ce qu'il est et pourquoi il est nécessaire.
De plus,StandardScaler est la normalisation. De plus, je veux savoir comment je peux mettre en œuvre la même normalisation pour un seul vecteur d'entrée et même moins.
Pire encore, la "normalisation" est effectuée par les colonnes de l'ensemble de données ! Non, pour les simples statistiques, c'est bien. Mais pour les prévisions, c'est "***hole" ! Lorsque de nouvelles données arrivent, dois-je réentraîner le réseau juste pour que les nouvelles données se situent dans la plage de "normalisation" ?
Conneries !
Au moment où ce "nouveau réseau" est formé, la situation peut déjà avoir radicalement changé. Alors, quel est le but de tout ça ?
Autant pour Python avec un tas de bibliothèques "aiguisées"....
Je vous serais très reconnaissant si vous me faisiez changer d'avis.
P.S. Je veux juste croire que je n'ai pas perdu mon temps sur Python pour rien.
(Je peux à peine le comprendre. )))
Mais j'ai maintenant une autre question (pour laquelle j'ai commencé tout cela) :
Lorsque j'ai entraîné le réseau, j'ai obtenu les résultats suivants
En d'autres termes, le résultat est une bonne affaire !
J'ai démarré mon testeur. J'ai obtenu de tels résultats
Eh bien, dites-moi exactement où vous pouvez voir que le réseau est entraîné à 98% de résultats corrects ????.
Bonjour, en lisant quelques pages de la discussion je n'ai rien trouvé de concret sur la question suivante :
- Y a-t-il quelque chose qui fonctionne actuellement comme des paquets MetaTraderR ou MetaTrader5 pour l'intégration de MT et R ?
Cheers
Désolé, je vais continuer mon épopée... )))
Après avoir acquis un peu plus de connaissances sur le même google, j'en suis arrivé à des conclusions :
En remplissant ces deux conditions, j'ai obtenu une réduction notable de la courbe d'apprentissage du réseau. En outre, j'ai constaté que
En outre, une autre question se posait : quelle devait être la réponse du réseau ?