Vous êtes sur la page 1sur 4

DUT : Intelligence Artificielle et Technologies Émergentes

Module : Apprentissage automatique

TP6 : L’algorithme machine à vecteurs de support (SVM)

Exercice 1:
On souhaite créer un modèle SVM pour classifier les fruits en « pommes » ou « oranges ».
Nous allons utiliser le dataset « apples_and_oranges.csv » qui contient 40 enregistrements avec
les attributs ‘Weight’, ‘Size’, et ‘Class'.
1. Importer les bibliothèques nécessaires : pandas et sklearn.
La bibliothèque sklearn comprend plusieurs fonctions :
- from sklearn.model_selection import train_test_split
- from sklearn.svm import SVC
- from sklearn.metrics import confusion_matrix
2. Importer le dataset « apples_and_oranges.csv ».
3. Visualiser les 5 premières lignes et 5 dernières lignes du dataset.
4. Afficher les dimensions du dataset.
5. Diviser le dataset en 2 parties : apprentissage (80% du nombre total des enregistrements)
et test (20%). Utiliser la fonction train_test_split().
6. Préciser les données de sortie d’apprentissage et de test y_train et y_test du modèle SVM,
correspondantes à la colonne ‘Class’ et les données d’entrée d’apprentissage et de test
X_train et X_test, correspondantes aux colonnes ‘Weight’, et ‘Size’.
7. Afficher les longueurs des données de la base d’apprentissage et celles de test.
Partie 1 : SVM basique
8. Définir le modèle SVM pour la classification. Utiliser la fonction ‘SVC()’. Préciser les
paramètres suivants : kernel=‘rbf', random_state=1, C=1, gamma='auto'.
9. Faire l’apprentissage du SVM sur les données de la base d’apprentissage en utilisant la
fonction ‘fit()’.
10. Calculer les prédictions sur les données d’entrées de la base de test en utilisant la fonction
‘predict()’.
11. Ajouter une colonne ‘Prediction’ à la base de test. La nouvelle colonne contient les
prédictions faites par le SVM.
12. Faire l’évaluation du modèle avec la matrice de confusion, et la précision (accuracy).

1
DUT : Intelligence Artificielle et Technologies Émergentes
Module : Apprentissage automatique

13. Afficher la matrice de confusion et la valeur de précision.


14. Faire la prédiction de l’échantillon suivant : [73,6]. Afficher la prédiction.
Partie 2 : Visualisation du SVM
Dans un nouveau fichier :
15. Importer les bibliothèques suivantes : numpy, matplotlib et sklearn
La bibliothèque matplotlib comprend plusieurs fonctions :
- import matplotlib.pyplot as plt
- from matplotlib.colors import ListedColormap

La bibliothèque sklearn comprend plusieurs fonctions :


- from sklearn.metrics import confusion_matrix
- from sklearn.preprocessing import LabelEncoder
- from sklearn.model_selection import train_test_split
- from sklearn.svm import SVC
16. Importer le dataset « apples_and_oranges.csv ».
17. Diviser le dataset en 2 parties : apprentissage (80% du nombre total des enregistrements)
et test (20%). Utiliser la fonction train_test_split().
18. Préciser les données de sortie d’apprentissage et de test y_train et y_test du modèle SVM,
correspondant à la colonne ‘Class’ et les données d’entrée d’apprentissage et de test
X_train et X_test, correspondant aux colonnes ‘Weight’, et ‘Size’.
19. Convertir les valeurs de sortie y_train de type chaine de caractères au type numérique.
Utiliser la classe LabelEncoder et la fonction fit_transform(). Puis, visualizer y_train.
20. Définir le modèle de SVM pour la classification avec la fonction ‘SVC()’. Préciser les
paramètres suivants : kernel=‘rbf', random_state=1, C=1, gamma='auto'.
21. Faire l’apprentissage du SVM sur les données de la base d’apprentissage en utilisant la
fonction ‘fit()’.
22. Copier les lignes de code suivantes pour visualiser les données d’apprentissage. Ajouter
des commentaires explicatifs.
plt.figure(figsize=(7,7))
x_set,y_set = x_train,y_train
x1,x2 = np.meshgrid(np.arange(start=x_set[:,0].min()-1,stop = x_set[:,0].max()+1,step = 0.01),
np.arange(start = x_set[:,1].min()-1, stop = x_set[:,1].max()+1, step = 0.01))

2
DUT : Intelligence Artificielle et Technologies Émergentes
Module : Apprentissage automatique

plt.contourf(x1, x2, classifier.predict(np.array([x1.ravel(), x2.ravel()]).T).reshape(x1.shape),


alpha = 0.75, cmap = ListedColormap(('black','white')))
plt.xlim(x1.min(), x1.max())
plt.ylim(x2.min(), x2.max())
for i, j in enumerate(np.unique(y_set)):
plt.scatter(x_set[y_set == j, 0],
x_set[y_set == j, 1],
c =ListedColormap(('red', 'orange'))(i),
label = j)
23. Ajouter des appels aux fonctions suivantes avec les paramètres correspondants : titre(),
xlabel(), et ylabel(), legend(), et show().
24. Copier les lignes de code suivantes pour visualiser les prédictions. Ajouter des
commentaires explicatifs.
plt.figure(figsize=(7, 7))
x_set, y_set = x_test, y_test
x1,x2 = np.meshgrid(np.arange(start=x_set[:,0].min()-1, stop = x_set[:,0].max()+1, step = 0.01),
np.arange(start = x_set[:,1].min()-1, stop = x_set[:,1].max()+1, step = 0.01))
plt.contourf(x1, x2, classifier.predict(np.array([x1.ravel(),x2.ravel()]).T).reshape(x1.shape), alpha
= 0.75, cmap =ListedColormap(('black','white')))
plt.xlim(x1.min(), x1.max())
plt.ylim(x2.min(), x2.max())
for i, j in enumerate(np.unique(y_set)):
plt.scatter(x_set[y_set == j, 0],
x_set[y_set == j, 1],
c =ListedColormap(('red', 'orange'))(i),
label = j)
25. Ajouter des appels aux fonctions suivantes avec les paramètres correspondants : titre(),
xlabel(), et ylabel(), legend(), et show().
26. Commenter les 2 figures (questions 23 et 25).

3
DUT : Intelligence Artificielle et Technologies Émergentes
Module : Apprentissage automatique

Exercice 2:

On souhaite créer un modèle SVM pour prédire les salaires des employés en fonction de leurs
niveaux.
1. Importer les bibliothèques nécessaires : pandas, numpy, matplotlib, et sklearn.
- from sklearn.svm import SVR
2. Importer le dataset « Position_Salaries.csv » qui comprend 10 enregistrements.
3. Visualiser les enregistrements du dataset.
4. Préciser la sortie y du modèle SVM correspondant à la colonne !Salary’ et l’entré X,
correspondant à la colonne !Level’.
5. Définir le modèle de SVM avec la fonction !SVR()". Utiliser le paramètre d’entrée suivant:

kernel='rbf'
6. Faire l"apprentissage du SVM sur les données du dataset en utilisant la fonction !fit()".

7. Calculer les prédictions des salaires des employés ayant les niveaux (Level) suivants : 6.5,
4.6 et 8.2. Utiliser la fonction !predict()". Afficher les salaires prédits correspondants.

8. Visualiser les résultats de régression du SVM. Utiliser les fonctions scatter(), plot(), title(),
xlabel(), ylabel() et show().

Vous aimerez peut-être aussi