Bonjour à tous,
Je suis assez novis dans R et je souhaite trouver du conseil sur ce forum
Alors voici l'histoire:
Mes donnes sont un tableau n lignes M colonnes.
J'ai un modèle qui prédit des valeurs ou nœuds d'un réseaux bayesien. Le modèle fonctionne bien et parcourt toutes les données pour me fournir à la fin la prédiction.
Maintenant, je voulais augmenter les données petit à petit, et calculer pour chaque augmentation la nouvelle prédiction, le but est de maximiser la variable cible.
Donc, je voulais que mon algo commence par la colonne 1, ajoute 0.5 à cette colonne et calcule la cible. Si cette dernière augmente, on ajoute à la colonne 1 0.5 et on continue à ajouter 0.5 a la colonne 1 jusqu'à ce que la valeur cible ne change plus, dans ce cas, l'algo passe à la colonne 2... Jusqu'à terminer toutes les colonnes et fournir la dernière valeur de la variable cible, qui est maximisée.
Voici mon code :
Ça ne marche pas !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 for(i in 1:nc){ #Second loop Function repeat{ data[,i] = data[,i]+ 0.5 training.set1 = data # This is training set to learn the parameters test.set = data[2001:7260, ] # This is test set to give as evidence res = hc(training.set1) # learn BN structure on training set data fitted = bn.fit(res, training.set1) # learning of parameters newpred = predict(fitted, "target", training.set1) # predicts the value of node C given test set newpred<-data.frame(newpred) newMoyPred=colMeans(newpred) if(newMoyPred >= Target || newMoyPred <= MoyPred){ data[,i] = data[,i] - 0.5 MoyPred = newMoyPred #Get out of the loop function resultMatrix <- rbind(resultMatrix, c(i, MoyPred,newMoyPred)) break View(data[,i]) } MoyPred = newMoyPred } }
Partager