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
Lista de comentários
Réponse : Salut salut
Exercice 1 :
import pandas #pour utiliser les fonctions de manipulation de données
import matplotlib.pyplot as plt #pour tracer les graphiques
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='Fantassin') # 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='Chevalier') # 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='Archer') # on va tracer en bleu que les points dont le label vaut 2 donc les Archers
plt.scatter(18,12, color='k')#rajout du personnage inconnu (18,12)
plt.legend() #affichage de la légende
#valeurs
force=18
courage=12
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