Vous êtes sur la page 1sur 3

TD - TP1 Exercice V RNA

February 15, 2024

[5]: #Importation des bibliothèques


import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import learning_curve

[6]: #Séparation des données en X = entrées et y = sortie


cancer = load_breast_cancer()
X = cancer.data
y = cancer.target

[7]: #Division des données en entrainement et test


t = 0.2
X_train, X_test, Y_train, Y_test = train_test_split(X,y,test_size=t)
print("Train set : ", X_train.shape)
print("Test set : ", X_test.shape)

Train set : (455, 30)


Test set : (114, 30)

[8]: #création du model


model = KNeighborsClassifier()

[9]: debut = 0.1


fin = 1
lots = 10
N, train_score, val_score = learning_curve(model, X_train, Y_train, train_sizes␣
↪= np.linspace(debut, fin, lots), cv = 5)

[11]: #Question 1 : C'est un vecteur qui contient le nombre d'exemples d'entrainement␣


↪qui ont été utlisés pour générer la courbe d'apprentissage

print(N)

[ 36 72 109 145 182 218 254 291 327 364]

1
[12]: #Question 2 : Visualisons la courbe des scores moyens
plt.grid(True)
plt.plot(N, val_score.mean(axis=1), color = "r", marker = "+",␣
↪label="validation")

plt.ylabel('Score')
plt.xlabel('Train Sizes')

[12]: Text(0.5, 0, 'Train Sizes')

[29]: #Question 3 : Visualisons les données d'apprentissage et d'entrainement


plt.grid(True)
plt.plot(N, val_score.mean(axis=1), color = "r", marker = "+",␣
↪label="Validation")

plt.plot(N, train_score.mean(axis=1), color = "b", marker = "+",␣


↪label="Entrainement")

plt.legend()
plt.show()

2
[24]: #Nous pouvons dire qu'il n'est plus nécessaire de collecter les données car à␣
↪partir de 300 les scores semblent se stabiliser

Vous aimerez peut-être aussi