Logo Zéphyrnet

Un guide pour utiliser différentes variantes SVM dans Scikit-Learn de Python

Date :

Les machines à vecteurs de support (SVM) sont un algorithme d'apprentissage automatique populaire utilisé pour les tâches de classification et de régression. Les SVM fonctionnent en trouvant le meilleur hyperplan qui sépare les données en différentes classes. Dans la bibliothèque Scikit-Learn de Python, il existe plusieurs variantes de SVM qui peuvent être utilisées pour différents types de données et de tâches. Dans cet article, nous fournirons un guide d'utilisation des différentes variantes de SVM dans Scikit-Learn de Python.

1. SVM linéaire

Le SVM linéaire est la variante la plus basique des SVM. Cela fonctionne en trouvant le meilleur hyperplan qui sépare les données en différentes classes. Le SVM linéaire convient aux données séparables linéairement, où les classes peuvent être séparées par une ligne droite. Dans Scikit-Learn, la classe LinearSVC peut être utilisée pour implémenter une SVM linéaire.

Pour utiliser LinearSVC, nous devons d'abord l'importer depuis Scikit-Learn :

« `python

depuis sklearn.svm importer LinearSVC

“`

Ensuite, nous devons créer une instance de LinearSVC et l'adapter à nos données :

« `python

clf = LinéaireSVC()

clf.fit(X_train, y_train)

“`

Ici, X_train est les données d'entraînement et y_train est les étiquettes correspondantes. Une fois le modèle entraîné, nous pouvons l'utiliser pour prédire les étiquettes des nouvelles données :

« `python

y_pred = clf.predict(X_test)

“`

2. SVM polynomial

Le SVM polynomial est utilisé pour les données non linéairement séparables. Il fonctionne en transformant les données dans un espace de dimension supérieure à l'aide d'une fonction noyau polynomiale. Dans Scikit-Learn, la classe SVC peut être utilisée pour implémenter un SVM polynomial.

Pour utiliser SVC avec un noyau polynomial, nous devons spécifier le paramètre du noyau comme "poly" et définir le paramètre degré sur le degré du polynôme :

« `python

depuis sklearn.svm importer SVC

clf = SVC(noyau='poly', degré=3)

clf.fit(X_train, y_train)

“`

Ici, degré=3 signifie que nous utilisons un noyau polynomial du troisième degré. Nous pouvons expérimenter différentes valeurs du paramètre degré pour trouver la meilleure valeur pour nos données.

3. Fonction de base radiale (RBF) SVM

RBF SVM est une autre variante de SVM utilisée pour les données non linéairement séparables. Il fonctionne en transformant les données dans un espace de dimension supérieure à l'aide d'un noyau de fonction de base radiale. Dans Scikit-Learn, la classe SVC peut être utilisée pour implémenter RBF SVM.

Pour utiliser SVC avec un noyau RBF, nous devons spécifier le paramètre du noyau comme 'rbf' :

« `python

clf = SVC(noyau='rbf')

clf.fit(X_train, y_train)

“`

Le noyau RBF a un paramètre gamma qui contrôle la largeur de la fonction gaussienne utilisée dans le noyau. Nous pouvons expérimenter différentes valeurs de gamma pour trouver la meilleure valeur pour nos données.

4. Classification vectorielle Nu-Support (NuSVC)

NuSVC est une variante des SVM qui utilise un paramètre appelé nu au lieu de C pour contrôler le compromis entre la marge et le nombre de vecteurs de support. Dans Scikit-Learn, la classe NuSVC peut être utilisée pour implémenter NuSVC.

Pour utiliser NuSVC, nous devons créer une instance de NuSVC et l'adapter à nos données :

« `python

depuis sklearn.svm importer NuSVC

clf = NuSVC()

clf.fit(X_train, y_train)

“`

NuSVC a un paramètre appelé nu qui contrôle la limite supérieure sur la fraction des erreurs d'apprentissage et la limite inférieure sur la fraction des vecteurs de support. Nous pouvons expérimenter différentes valeurs de nu pour trouver la meilleure valeur pour nos données.

Conclusion

Dans cet article, nous avons fourni un guide pour utiliser différentes variantes de SVM dans Scikit-Learn de Python. Nous avons couvert le SVM linéaire, le SVM polynomial, le SVM RBF et le NuSVC. Chaque variante est adaptée à différents types de données et de tâches. En expérimentant différentes variantes et paramètres, nous pouvons trouver le meilleur modèle SVM pour nos données.

spot_img

Dernières informations

spot_img