Maison >développement back-end >Tutoriel Python >Exemples SVM en Python
Support Vector Machine (SVM) en Python est un puissant algorithme d'apprentissage supervisé qui peut être utilisé pour résoudre des problèmes de classification et de régression. SVM fonctionne bien lorsqu'il s'agit de données de grande dimension et de problèmes non linéaires, et est largement utilisé dans l'exploration de données, la classification d'images, la classification de textes, la bioinformatique et d'autres domaines.
Dans cet article, nous présenterons un exemple d'utilisation de SVM pour la classification en Python. Nous utiliserons le modèle SVM de la bibliothèque scikit-learn, qui fournit de nombreux algorithmes d'apprentissage automatique puissants.
Tout d'abord, nous devons installer la bibliothèque scikit-learn, qui peut être installée à l'aide de la commande suivante dans le terminal :
pip install scikit-learn
Ensuite, nous utiliserons l'ensemble de données classique Iris pour démontrer l'effet de classification de SVM. L'ensemble de données Iris contient 150 échantillons, répartis en trois catégories, chaque catégorie contenant 50 échantillons. Chaque échantillon présente 4 caractéristiques : longueur des sépales, largeur des sépales, longueur des pétales et largeur des pétales. Nous utiliserons SVM pour classer ces échantillons.
Tout d'abord, nous devons importer les bibliothèques requises :
from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn import svm from sklearn.metrics import accuracy_score
Ensuite, nous chargeons l'ensemble de données Iris :
iris = datasets.load_iris()
Ensuite, nous divisons les données en ensemble d'entraînement et en ensemble de test :
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=0)
Ici, nous utilisons la fonction train_test_split , L'ensemble de données est divisé de manière aléatoire en un ensemble d'apprentissage et un ensemble de test, où le paramètre test_size spécifie que l'ensemble de test représente 30 % de l'ensemble de données total.
Ensuite, nous utiliserons le modèle SVM pour ajuster l'ensemble d'entraînement :
clf = svm.SVC(kernel='linear', C=1) clf.fit(X_train, y_train)
Ici, nous utilisons la fonction noyau linéaire et spécifions un paramètre de régularisation C=1. L'hyperparamètre C de SVM contrôle le compromis entre précision et complexité du modèle. Plus la valeur C est petite, plus le modèle est simple et est sujet au sous-ajustement ; plus la valeur C est grande, plus le modèle est complexe et est sujet au sur-ajustement. Habituellement, nous devons choisir une valeur C appropriée par validation croisée.
Ensuite, nous utilisons le modèle entraîné pour prédire l'ensemble de test :
y_pred = clf.predict(X_test)
Enfin, nous pouvons utiliser la fonction precision_score pour calculer la précision de la classification :
accuracy = accuracy_score(y_test, y_pred) print('Accuracy:', accuracy)
Le code complet est le suivant :
from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn import svm from sklearn.metrics import accuracy_score # Load iris dataset iris = datasets.load_iris() # Split data into train and test X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=0) # Fit SVM model on training data clf = svm.SVC(kernel='linear', C=1) clf.fit(X_train, y_train) # Predict on test data y_pred = clf.predict(X_test) # Compute accuracy score accuracy = accuracy_score(y_test, y_pred) print('Accuracy:', accuracy)
Dans ce cas, nous a utilisé le modèle SVM pour la classification, en ciblant un ensemble de données très courant, l'ensemble de données Iris. L’avantage de SVM réside dans sa puissante capacité de classification et son adéquation aux données de grande dimension et aux problèmes non linéaires. La mise en œuvre de SVM nécessite le réglage d'une série d'hyperparamètres pour obtenir le meilleur effet de classification.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!