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 :

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
 
  }
 
 
}
Ça ne marche pas !