def netrate(network, cascades, T, type_diffusion): #True data A, nbre_noeuds = create_adj_matrix(network) C, nbre_infections = create_cascade(cascades) #OEstimated data given cascades A_est = estimate_network(A, C, nbre_noeuds, T, type_diffusion, nbre_infections, 0.001) return A_est, A
def MultiNetRate(nbre,file): os.chdir("../donnees") generation_SIS(nbre) A,nbre_noeuds = create_adj_matrix(file) file_SI = 'c'+str(nbre//100)+'.txt' L,Delta = create_cascade(file_SI) file_SIS = 'cnr'+str(nbre//100)+'.txt' C,nbre_infections = create_cascade_NetRate(file_SIS) #MultiNetRate estimation (Beta,(accuracy,MAE,MAS)) = estimate_network(A,nbre_noeuds,L,Delta,nbre*20,'exp') #NetRate estimation (Alpha) = estimate_network_NetRate(A,C,nbre_noeuds,20,'exp',nbre_infections,0.00001) #We compare the two solutions. diff0 = norm_matrix(Alpha-Beta,0) diff2 = norm_matrix(Alpha-Beta,2) #We write down the result so that we can use them in the futur. sdiff0 = str(diff0) position_point = 0 for i,elt in enumerate(sdiff0): if elt == '.': position_point = i with open('diff0.txt','a') as fichier1: fichier1.write(str(k)+',') fichier1.write(sdiff0[0:position_point]+','+sdiff0[(position_point+1):]) fichier1.write('\n') sdiff2 = str(diff2) position_point = 0 for i,elt in enumerate(sdiff2): if elt == '.': position_point = i with open('diff1.txt','a') as fichier2: fichier2.write(str(k)+',') fichier2.write(sdiff2[0:position_point]+','+sdiff2[(position_point+1):]) fichier2.write('\n') with open('indic_NetRate.txt','a') as fichier3: fichier3.write(str(k)) fichier3.write(str(accuracy)) fichier3.write(str(MAE)) fichier3.write(str(MAS))