Code Python du programme :
def dist(x,Pts):
n = len(x)
L = []
for pt in Pts:
d = 0
for i in range(n):
d += (pt[i]-x[i])**2
d = d**0.5
L.append(d)
return L
import statistics as stat
def KNN(X,k,Appr,Etiq):
L = dist(X,Appr)
LplusEtiq = []
for i in range(len(L)):
LplusEtiq.append((L[i],Etiq[i]))
LplusEtiq.sort()
EtiqFin = []
for e in LplusEtiq[:k]:
EtiqFin.append(e[1])
return stat.mode(EtiqFin)
Données d’apprentissage :
1797 images de 8 par 8 pixels (en fait une liste de 64 nombres entre 0 et 255) extraits de la base de données MNIST et leurs étiquettes (le chiffre écrit).
Prédiction: