Université Batna 2 Master 2 SAD
Faculté de mathématiques et d’informatique 2020/2021
Département de mathématique
Contrôle semestre 1
Corrigé type
Module : Support vector machine
Questions de cours 5 pt
1. L'efficacité d'un SVM dépend de: D)
2. Les SVM sont moins efficaces lorsque: C) Lorsque les données ont du bruit et des points qui se
chevauchent, il y a un problème pour dessiner un hyperplan clair sans mauvaise classification.)
3. Nous utilisons généralement la normalisation des fonctionnalités avant d'utiliser le noyau gaussien
dans SVM. A,B
4. Supposons que vous ayez la même distribution de classes dans les données. Maintenant, disons
que pour l'entraînement 1 fois en un contre tous les réglages, le SVM prend 10 secondes. Combien
de secondes faudrait-il pour entraîner de bout en bout la méthode one-vs-all? B 10*4=40
5. Supposons que votre problème ait changé maintenant. Désormais, les données n'ont que 2
classes. Que pensez-vous du nombre de fois que nous devons former SVM dans un tel cas? A
6. Un noyau en SVM est : A,B
7. La complexité temporelle minimale pour l’apprentissage d'un SVM est O(n2). D'après ce fait,
quelles tailles d'ensembles de données ne conviennent pas le mieux aux SVM? A
8. C est une constante qui permet de contrôler le compromis entre nombre d'erreurs de
classement, et la largeur de la marge. Plus elle est grande et plus cela revient à attribuer une forte
importance à l’ajustement. Elle est le paramètre qui ajuste le compromis entre bon ajustement et
bonne généralisation.
Elle doit être choisie par l'utilisateur, en général par une recherche exhaustive dans l'espace des
paramètres, en utilisant par exemple la validation croisée sur l'ensemble d'apprentissage. Le choix
automatique de ce paramètre de régularisation est un problème statistique majeur.
Exercice 1 5pt
1. Maximiser l’équation x 2+ 5 xy + y 2 sous la contrainte suivante : x +2 y =9
2 2
L=f ( x ) −∝ g ( x )=x 5 xy + y −∝(x +2 y −9)
∂L
=2 x +5 y−∝=0 → ∝=2 x +5 y (1)
∂x
∂L 5
=5 x +2 y−2 ∝=0 →∝= x+ y (2)
∂y 2
∂L
=x +2 y−9=0 (3)
∂∝
5
De (1) et (2) 2 x+5 y = x+ y nous trouvons x=8 y
2
9 36
Nous remplaçons dans (3) nous trouvons y= x=
10 5
2. Maximiser l’équation x 2+ 3 xy + y 2 sous la contrainte suivante : x + y=8
2 2
x + 3 xy + y −∝(x + y −8)
∂L
=2 x +3 y−∝=0 → ∝=2 x +3 y (1)
∂x
∂L
=3 x +2 y−∝=0 → ∝=3 x+ 2 y (2)
∂y
∂L
=x + y−8=0 (3)
∂∝
x= y =4
Exercice 3 5pt
Soit l’ensemble des points de données suivant :
Points positives {(2,2) , (3,3) , (3,4) , (4,3)}
Points négatives {(1,1) , (0,-1) , (-1,1) , (-1,-1)}
S1=(1,1) S2=(2,2)
Calculer l’hyperplan optimal au sens de la SVM (w et b).
Tout d’abord augmenter les supports vecteurs
()
1
() ~
S1= 1 → S 1= 1
1
1
()
2
() ~
S2 = 2 → S 2 = 2
2
1
∝1 S1 S 1+ ∝2 S 1 S 2=−1
∝1 S1 S 2+ ∝2 S 2 S 2=1
3 ∝1+5 ∝2=−1
5 ∝1+ 9∝2=1
∝1=−7 ∝2=4
n
W =∑ ∝i Si
i=1
() () ( )
1 2 1
−7 1 + 4 2 = 1
1 1 −3
()
W = 1 ,b=−3
1
Exercice 3 5pt
Corriger et commenter le code suivant :
#Import scikit-learn dataset library
from sklearn import datasets
#Load dataset
cancer == datasets.load_breast_cancer()
# Import train_test_split function
from sklearn.model_selection import train_test_split
# Split dataset into training set and test set
X_train, X_test, y_train, y_test = train_test_split([Link],
[Link], test_size=0.3,random_state=109) # 70% training and 30% test
#Import svm model
from sklearn import svm
#Create a svm Classifier with a linear kernel
clf = [Link](kernel='linear')
#Train the model using the training sets
[Link](X_train, Y_train)
#Predict the response for test dataset
y_pred = [Link](X_test)
#Import scikit-learn metrics module for accuracy calculation
from sklearn import metrics
print("Accuracy:",metrics.accuracy_score(y_test, y_pred))