Oui certainement, exécutez ce code par exemple:
from sklearn import svm
import numpy as np
clf = svm.SVC()
np.random.seed(seed=42)
x=np.random.normal(loc=0.0, scale=1.0, size=[100,2])
y=np.random.randint(2,size=100)
clf.fit(x,y)
print(clf.score(x,y))
Le score est de 0,61, donc près de 40% des données de formation est missclassified. Une partie de la raison est que même si le noyau par défaut est 'rbf'
(qui devrait en théorie pouvoir classer parfaitement n'importe quel ensemble de données d'entraînement, tant que vous n'avez pas deux points d'entraînement identiques avec des étiquettes différentes), il y a aussi réduire le surapprentissage. Le régularisateur par défaut est C=1.0
.
Si vous exécutez le même code que ci-dessus mais que vous passez du clf = svm.SVC()
au clf = svm.SVC(C=200000)
, vous obtenez une précision de 0,94.