Browse Source

commit pour pull

master
amaury-charl.reyt 3 years ago
parent
commit
726a9536c8
  1. 81
      KNN_Mark1.py
  2. 51
      Test_tk.py

81
KNN_Mark1.py

@ -5,7 +5,7 @@ def lancer(k, date, temp_moy, temp_ref, temp_num_jour):
donnees_point = [date, temp_moy, temp_ref] donnees_point = [date, temp_moy, temp_ref]
print(k) print(k)
print(donnees_point) print(donnees_point)
print(temp_num_jour) #print(temp_num_jour)
kPlusProches(k, donnees_point, temp_num_jour) kPlusProches(k, donnees_point, temp_num_jour)
#estBissextile(an) #estBissextile(an)
@ -25,27 +25,44 @@ def lecture(fichier):
def estBissextile(an): def estBissextile(an):
"""Fonction estBissextile qui prend en paramètre l’année à vérifier et qui renvoie True si elle est bissextile, False sinon""" """Fonction estBissextile qui prend en paramètre l’année à vérifier et qui renvoie True si elle est bissextile, False sinon"""
an_base = an # an_base = an
an = an//4 # an = an//4
if an*4 == an_base: # if an*4 == an_base:
return True # return True
else: # else:
return False # return False
return an % 4 == 0
def kPlusProches(k, donnees_point, temp_num_jour):
def kPlusProches(k,donnees_point,donnees):
"""Fonction qui prend en paramètre un tuple correspondant au point à vérifier, """Fonction qui prend en paramètre un tuple correspondant au point à vérifier,
une liste du jeu de données et la conso électrique. Renvoie une liste triée une liste du jeu de données et la conso électrique. Renvoie une liste triée
en fonction de la distance dont les éléments sont des tuples.""" en fonction de la distance dont les éléments sont des tuples."""
voisins = [] if k > len(donnees): #par sécurité on réduit k
if k > len(temp_num_jour[0]): k = len(donnees)
k = len(temp_num_jour[0]) voisin=[]
energy = temp_num_jour.pop() for i in range(len(donnees)):
energy.sort voisin.append(distance(donnees, donnees_point))
for i in range(len(temp_num_jour[0])): voisin.sorted
d = distance(temp_num_jour[i],donnees_point) return [voisins[i] for i in range(k)]
voisins.append((d, i))
voisins.sort()
return [voisins[i][1] for i in range(k)] # for j in range(k):
# voisin.append([None])
# for i in range(len(temp_num_jour)):
# MN = distance(temp_num_jour[i],donnees_point)
# for l in range(k):
# if voisin[l][1] == None or MN<voisin[l][4]:
# pass
# print(voisin)
# for m in range(k-l):
# print(voisin)
# a_placer = voisin[l]
# print(voisin)
# voisin[m][1] = [temp_num_jour[i][0], temp_num_jour[i][1], temp_num_jour[i][2], temp_num_jour[i][4], MN]
# print(voisin)
# voisin[m+1][1]= a_placer
# return voisin
def numeroJour(date): def numeroJour(date):
an_mois_jour = list(date.split("-")) an_mois_jour = list(date.split("-"))
@ -114,28 +131,34 @@ def moyenne_liste():
temp_num_jour.append([temp_jour[l-1][0], moy_conso, moy_temp_moy, moy_temp_ref]) temp_num_jour.append([temp_jour[l-1][0], moy_conso, moy_temp_moy, moy_temp_ref])
return temp_num_jour return temp_num_jour
def distance(temp_jour, donneespoint): def distance(temp_num_jour, donneespoint):
"""Fonction qui dit qu'en prenant des points et ben on peut trouver une distance entre 2 point""" """Fonction qui dit qu'en prenant des points et ben on peut trouver une distance entre 2 point"""
x1 = temp_jour[0] x1 = temp_num_jour[0]
x2 = donneespoint[0] x2 = donneespoint[0]
y1 = temp_jour[1] d1 = x1-x2
d2 = 365 - d1
d_final = d1
if d1 > d2:
d_final = d2
y1 = temp_num_jour[2]
y2 = donneespoint[1] y2 = donneespoint[1]
z1 = temp_jour[2] z1 = temp_num_jour[3]
z2 = donneespoint[2] z2 = donneespoint[2]
dist = ((x1-x2)**2)+((y1-y2)**2)+((z1-z2)**2) return ((d_final)**2)+((y1-y2)**2)+((z1-z2)**2)
return dist
def PuissanceMoyenne(lst,distance): def PuissanceMoyenne(lst,dist):
"""Calcule la moyenne de distances entre les points """ """Calcule la moyenne de distances entre les points """
lecture("pic-journalier-consommation.csv") lecture("pic-journalier-consommation.csv")
moy = sum() / len() conso_moy = sum() / len()
def recup1(): def recup1():
k = value1.get() k = 5 #value1.get()
return k return k
def recup2(): def recup2():
date = '2016-08-24' date = value2.get()
return date return date
def recup3(): def recup3():

51
Test_tk.py

@ -0,0 +1,51 @@
from tkinter import *
fenetre = Tk()
canvas1 = Canvas(fenetre)
label1 = Label(fenetre, text="Choisissez le nombre de voisins (k) :",font =
('calibri', 10, 'bold', 'underline'),bg ='#fd9f9f',foreground="#4c75e3")
value1 = IntVar()
entree1 = Entry(fenetre, textvariable=value1)
label2 = Label(fenetre, text="Veuillez entrez la date (format 'aaaa-mm-jj'):",font =
('calibri', 10, 'bold', 'underline'),bg ='#fd9f9f',foreground="#4c75e3")
value2 = IntVar()
entree2 = Entry(fenetre, textvariable=value2)
label3 = Label(fenetre, text="Veuillez entrez la température moyenne (en °C):",font =
('calibri', 10, 'bold', 'underline'),bg ='#fd9f9f',foreground="#4c75e3")
value3 = IntVar()
entree3 = Entry(fenetre, textvariable=value3)
label4 = Label(fenetre, text="Veuillez entrez la température de référence (en °C) :",font =
('calibri', 10, 'bold', 'underline'),bg ='#fd9f9f',foreground="#4c75e3")
value4 = IntVar()
entree4 = Entry(fenetre, textvariable=value4)
label1.grid(pady=10)
entree1.grid()
label2.grid(pady=10)
entree2.grid()
label3.grid(pady=10)
entree3.grid()
label4.grid(pady=10)
entree4.grid()
label9= Label(fenetre, text="Conso", bg="#7a817f")
bouton1 = Button(canvas1, text="Tester", command=fenetre.destroy,height=2,width=10 ,bg="#4e93de", font =
('calibri', 12, 'bold', 'underline')).grid()
canvas1.grid(pady = 15)
label9.grid()
fenetre.title("IHM KNN")
fenetre.iconbitmap('icon.ico')
fenetre['bg'] = '#fd9f9f'
fenetre.geometry('300x350')
fenetre.mainloop()
Loading…
Cancel
Save