Exemples SVM en Python

PHPz
Libérer: 2023-06-11 20:42:06
original
1125 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

Ensuite, nous chargeons l'ensemble de données Iris :

iris = datasets.load_iris()
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal