|
|
|
@ -9,9 +9,7 @@ import numpy as np
|
|
|
|
|
import pandas as pd
|
|
|
|
|
from time import time
|
|
|
|
|
|
|
|
|
|
def runOneTest(trainTestRatio):
|
|
|
|
|
nnnar = Nnnar(4, 0, 100.001, 10)# le 100.001 est pour être sûr d'être au dessus de la valeur max (100.0)
|
|
|
|
|
knn = Knn()
|
|
|
|
|
def runOneTest(trainTestRatio,model):
|
|
|
|
|
df = pd.read_csv('./data/Iris.csv')
|
|
|
|
|
df = df.iloc[:, 1:]
|
|
|
|
|
# Normalisation des données
|
|
|
|
@ -37,7 +35,7 @@ def runOneTest(trainTestRatio):
|
|
|
|
|
value = train.iloc[:, -1].values
|
|
|
|
|
|
|
|
|
|
for i in range(len(coord)):
|
|
|
|
|
knn.addPoint(np.array(coord[i]), np.array([value[i]]))
|
|
|
|
|
model.addPoint(np.array(coord[i]), np.array([value[i]]))
|
|
|
|
|
|
|
|
|
|
# Test du modèle
|
|
|
|
|
coord = test.iloc[:, :-1].values
|
|
|
|
@ -45,18 +43,24 @@ def runOneTest(trainTestRatio):
|
|
|
|
|
|
|
|
|
|
nbError = 0
|
|
|
|
|
for i in range(len(coord)):
|
|
|
|
|
if knn.getLabelOfPoint(np.array(coord[i]), 5) != value[i]:
|
|
|
|
|
if model.getLabelOfPoint(np.array(coord[i]), 5) != value[i]:
|
|
|
|
|
nbError += 1
|
|
|
|
|
|
|
|
|
|
return 100 - nbError / len(coord) * 100
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (sys.argv[1] == "knn"):
|
|
|
|
|
model = Knn()
|
|
|
|
|
else:
|
|
|
|
|
model = Nnnar(4, 0, 100.001, 10)
|
|
|
|
|
|
|
|
|
|
t1 = time()
|
|
|
|
|
|
|
|
|
|
nbRepetition = 100
|
|
|
|
|
accuracy = 0
|
|
|
|
|
for i in range(nbRepetition):
|
|
|
|
|
accuracy += runOneTest(0.8)
|
|
|
|
|
model.reset()
|
|
|
|
|
accuracy += runOneTest(0.8,model)
|
|
|
|
|
|
|
|
|
|
t2 = time()
|
|
|
|
|
print("accuracy moyenne:",str(accuracy/nbRepetition))
|
|
|
|
|