Bonjour,

Nous devons compléter un programme python en NSI, pouvez vous m'aidez?


Voici le programme:



Pour le code ci-dessous, compléter tous les éléments en jaune. Le personnage inconnu à trouver aura une force de 18 et un courage de 12.



Exercice 1 :


import pandas #.........................................


import matplotlib.pyplot as plt #........................................


from sklearn.neighbors import KNeighborsClassifier



personnage=pandas.read_csv("personnages.csv") #lecture du fichier personnage.csv et stockage dans la variable personnage


x=personnage.loc[:,"Force"]#récupération en abscisse des valeurs la force des personnages


y=personnage.loc[:,"Courage"] #récupération en ordonnées des valeurs le courage des personnages


lab=personnage.loc[:,"Type"] #récupération l'espèce de chaque valeur pour la légende (0 si Fantassin, 1 si Chevalier et 2 si Archer).


plt.scatter(x[lab == 0], y[lab == 0], color='g', label='...................') # on va tracer en vert que les points dont le label vaut 0 donc les Fantassins


plt.scatter(x[lab == 1], y[lab == 1], color='r', label='...................') # on va tracer en rouge que les points dont le label vaut 1 donc les Chevaliers


plt.scatter(x[lab == 2], y[lab == 2], color='b', label='....................') # on va tracer en bleu que les points dont le label vaut 2 donc les Archers


plt.scatter(........., .................., color='k')#rajout du personnage inconnu (18,12)


plt.legend() #affichage de la légende



#valeurs


force=...........


courage=................


k=15


#fin valeurs



#début knn


d=list(zip(x,y)) #permet de passer des 2 listes x et y à une liste tuple


model = KNeighborsClassifier(n_neighbors=k) #méthode issue de la bibliothèque scikit-learn qui prend le KNN où k est le nombre de voisins les plus proches


model.fit(d,lab) #associe les tuples présents dans la liste "d" avec les labels (0 : "Fantassin", 1 : "Chevalier" ou 2 : "Archer")


prediction= model.predict([[……,…..]]) #La variable "prediction" contient alors le label trouvé (0,1ou 2)par l'algorithme knn.


#fin knn



#Affichage résultats


txt="Résultat : "


if prediction[0]==0:#.............................


txt=txt+"Fantassin"#............................


if prediction[0]==1:


txt=txt+"Chevalier"


if prediction[0]==2:


txt=txt+"Archer"


plt.text(3,7,"Force : {0}, courage : {1} .".format(force,courage),fontsize=12)


plt.text(3,6, "k : {0}".format(k), fontsize=12)


plt.text(3,5, txt, fontsize=12)


#fin affichage résultats"""



plt.show() #affichage du graphe


tableau:

Force,Courage,Type

2,12,0

5,19,0

2,15,0

5,18,0

5,17,0

4,17,0

1,19,0

1,20,0

1,10,0

2,16,0

6,15,0

2,15,0

2,11,0

1,20,0

5,17,0

1,10,0

4,12,0

8,16,0

17,20,1

20,18,1

15,19,1

15,18,1

19,17,1

18,14,1

18,18,1

17,13,1

18,15,1

14,14,1

12,16,1

18,15,1

10,12,1

14,16,1

18,15,1

20,2,2

20,1,2

21,5,2

18,6,2

15,5,2

16,1,2

14,4,2

17,6,2

18,7,2

18,2,2

17,1,2

15,9,2

16,7,2

14,1,2

19,9,2
Please enter comments
Please enter your name.
Please enter the correct email address.
You must agree before submitting.

Lista de comentários


Helpful Social

Copyright © 2024 ELIBRARY.TIPS - All rights reserved.