Apprentissage supervisé avec des vecteurs de support

Machine LearningMachine LearningBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce tutoriel, nous allons apprendre à connaître les Machines à Vecteurs de Support (SVM), qui sont un ensemble de méthodes d'apprentissage supervisé utilisées pour la classification, la régression et la détection d'anomalies. Les SVM sont efficaces dans les espaces de haute dimension et peuvent toujours fonctionner correctement lorsque le nombre de dimensions est supérieur au nombre d'échantillons.

Les avantages des SVM incluent leur efficacité dans les espaces de haute dimension, leur efficacité mémoire et leur polyvalence en termes de différentes fonctions noyau. Cependant, il est important d'éviter le surapprentissage et de choisir la bonne fonction noyau et le terme de régularisation pour le problème donné.

Dans ce tutoriel, nous aborderons les sujets suivants :

  1. Classification avec SVM
  2. Classification multi-classe
  3. Scores et probabilités
  4. Problèmes déséquilibrés
  5. Régression avec SVM
  6. Estimation de la densité et détection de nouveauté

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous réglerons rapidement le problème pour vous.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills ml/sklearn -.-> lab-71099{{"Apprentissage supervisé avec des vecteurs de support"}} end

Classification avec SVM

  • Commencez par importer les bibliothèques nécessaires :
from sklearn import svm
  • Définissez les échantillons d'entraînement X et les étiquettes de classe y :
X = [[0, 0], [1, 1]]
y = [0, 1]
  • Créez une instance du classifieur SVC et ajustez les données :
clf = svm.SVC()
clf.fit(X, y)
  • Utilisez le modèle entraîné pour prédire de nouvelles valeurs :
clf.predict([[2., 2.]])

Classification multi-classe

  • Les classifieurs SVC et NuSVC peuvent être utilisés pour la classification multi-classe en utilisant l'approche "un-versus-un" :
X = [[0], [1], [2], [3]]
Y = [0, 1, 2, 3]
clf = svm.SVC(decision_function_shape='ovo')
clf.fit(X, Y)
dec = clf.decision_function([[1]])

Scores et probabilités

  • Les SVM ne fournissent pas directement des estimations de probabilité, mais vous pouvez activer l'estimation de probabilité en définissant le paramètre probability sur True :
clf = svm.SVC(probability=True)
clf.fit(X, y)
  • Vous pouvez ensuite utiliser la méthode predict_proba pour obtenir les probabilités de chaque classe :
clf.predict_proba([[2., 2.]])
  • Notez que l'estimation de probabilité est coûteuse et nécessite une validation croisée, utilisez donc cette fonction avec prudence.

Problèmes déséquilibrés

  • Les SVM peuvent gérer les problèmes déséquilibrés en ajustant le paramètre class_weight :
clf = svm.SVC(class_weight={1: 10})
clf.fit(X, y)

Régression avec SVM

  • Pour les problèmes de régression, les SVM peuvent être utilisés avec la classe SVR :
X = [[0, 0], [1, 1]]
y = [0.5, 2.5]
regr = svm.SVR()
regr.fit(X, y)
regr.predict([[1, 1]])

Estimation de densité et détection de nouveauté

  • Les SVM peuvent également être utilisés pour l'estimation de densité et la détection de nouveauté avec la classe OneClassSVM :
clf = svm.OneClassSVM()
clf.fit(X)
clf.predict(X)

Sommaire

Dans ce tutoriel, nous avons appris à propos des Machines à Vecteurs de Support (SVM) et de leurs applications dans la classification, la régression, l'estimation de densité et la détection de nouveauté. Nous avons abordé les étapes de classification, de classification multi-classe, de scores et de probabilités, de problèmes déséquilibrés, de régression et d'estimation de densité. Les SVM sont des outils puissants pour l'apprentissage automatique et peuvent être utilisés dans diverses situations pour obtenir des prédictions précises.