Maison  >  Article  >  développement back-end  >  Comment utiliser SVM pour la classification en Python ?

Comment utiliser SVM pour la classification en Python ?

WBOY
WBOYoriginal
2023-06-03 15:51:181986parcourir

SVM est un algorithme de classification couramment utilisé, largement utilisé dans les domaines de l'apprentissage automatique et de l'exploration de données. En Python, l'implémentation de SVM est très pratique et peut être complétée en utilisant les bibliothèques appropriées.

Cet article expliquera comment utiliser SVM pour la classification en Python, y compris le prétraitement des données, la formation du modèle et le réglage des paramètres.

1. Prétraitement des données

Avant d'utiliser SVM pour la classification, nous devons prétraiter les données pour nous assurer qu'elles répondent aux exigences de l'algorithme SVM. Habituellement, le prétraitement des données comprend les aspects suivants :

  1. Nettoyage des données : excluez certaines données inutiles ou anormales pour éviter toute interférence avec la classification SVM.
  2. Normalisation des données : mettez à l'échelle les données selon un certain rapport pour garantir que la plage numérique des données est la même.
  3. Sélection des fonctionnalités : lorsqu'il y a trop de données, sélectionnez les fonctionnalités les plus informatives pour améliorer l'effet de classification.

2. Formation du modèle

Après le prétraitement des données, nous pouvons commencer la formation du modèle. En Python, nous pouvons utiliser des bibliothèques liées à SVM pour la formation de modèles.

  1. Importer une bibliothèque

Avant d'entraîner le modèle, nous devons importer les bibliothèques pertinentes :

importer numpy en tant que np
depuis sklearn.svm importer SVC
depuis sklearn.model_selection importer train_test_split
depuis sklearn.metrics importer précision_score

  1. Chargement des données

Ensuite, nous devons charger les données et diviser l'ensemble d'entraînement et l'ensemble de test :

data = np.loadtxt('data.txt', delimiter=',')
X = data[: , :-1]
y = data[:, -1]
X_train, fonction loadtxt dans. La fonction train_test_split est utilisée pour diviser aléatoirement les données en un ensemble d'apprentissage et un ensemble de test, et le paramètre test_size spécifie la proportion de l'ensemble de test.

Formation du modèle
  1. Ensuite, nous pouvons commencer la formation du modèle :

clf = SVC(C=1.0, kernel='rbf', gamma='auto')

clf.fit(X_train, y_train)


Parmi eux, le paramètre C est le coefficient de régularisation, le paramètre noyau spécifie quelle fonction noyau utiliser et le paramètre gamma est utilisé pour contrôler l'influence de la fonction noyau. Dans cet exemple, nous utilisons la fonction noyau RBF.

Évaluation du modèle
  1. Une fois la formation terminée, nous devons effectuer une évaluation du modèle :

y_pred = clf.predict(X_test)

acc = precision_score(y_test, y_pred)

print('Accuracy:', acc)

où, la fonction precision_score est utilisée pour calculer la précision du modèle.

3. Réglage des paramètres

Après la formation du modèle, nous pouvons effectuer le réglage des paramètres pour améliorer encore l'effet de classification du modèle. Dans SVM, les méthodes de réglage des paramètres couramment utilisées incluent la recherche de grille et la validation croisée.

Recherche de grille
  1. La recherche de grille est une méthode de recherche par force brute qui recherche la combinaison de paramètres optimale en parcourant toutes les combinaisons de paramètres possibles. En Python, nous pouvons utiliser la fonction GridSearchCV pour implémenter la recherche par grille.

from sklearn.model_selection import GridSearchCV

Définir la plage de paramètres

param_grid = {'C': [0.1, 1.0, 10.0],

          'kernel': ['linear', 'rbf'],
          'gamma': ['auto', 0.1, 0.01]}

Effectuer une recherche de grille

gs = GridSearchCV(SVC(), param_grid, cv = 5)

gs.fit(X_train, y_train)


Paramètres optimaux de sortie

print('Best:', gs.best_params_)

Parmi eux, param_grid spécifie la plage de paramètres et le paramètre cv spécifie le nombre de croix -validation. Une fois l’exécution terminée, nous pouvons générer la combinaison optimale de paramètres.

Validation croisée
  1. La validation croisée est une méthode permettant de vérifier les performances du modèle par des échantillonnages répétés. En Python, nous pouvons utiliser la fonction cross_val_score pour implémenter la validation croisée.

from sklearn.model_selection import cross_val_score

Effectuer une validation croisée

scores = cross_val_score(clf, X_train, y_train, cv=5)

Sortir les résultats de la validation croisée

print('CV scores:', scores)

où , le paramètre cv spécifie le nombre de validation croisée. Une fois l'exécution terminée, nous pouvons afficher les résultats de la validation croisée.

4. Résumé

Cet article présente comment utiliser SVM pour la classification en Python, y compris le prétraitement des données, la formation du modèle et le réglage des paramètres. Les problèmes de classification peuvent être résolus efficacement à l'aide de SVM, et les bibliothèques associées en Python fournissent également des outils pratiques pour implémenter SVM. J'espère que cet article pourra être utile aux lecteurs lorsqu'ils utilisent SVM pour la 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!

Déclaration:
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