Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwende ich SVM zur Klassifizierung in Python?

Wie verwende ich SVM zur Klassifizierung in Python?

WBOY
WBOYOriginal
2023-06-03 15:51:182056Durchsuche

SVM ist ein häufig verwendeter Klassifizierungsalgorithmus, der in den Bereichen maschinelles Lernen und Data Mining weit verbreitet ist. In Python ist die Implementierung von SVM sehr komfortabel und kann durch die Verwendung relevanter Bibliotheken vervollständigt werden.

In diesem Artikel wird erläutert, wie Sie SVM für die Klassifizierung in Python verwenden, einschließlich Datenvorverarbeitung, Modelltraining und Parameteroptimierung.

1. Datenvorverarbeitung

Bevor wir SVM zur Klassifizierung verwenden, müssen wir die Daten vorverarbeiten, um sicherzustellen, dass die Daten den Anforderungen des SVM-Algorithmus entsprechen. Typischerweise umfasst die Datenvorverarbeitung die folgenden Aspekte:

  1. Datenbereinigung: Einige nutzlose oder abnormale Daten ausschließen, um Störungen der SVM-Klassifizierung zu vermeiden.
  2. Datennormalisierung: Skalieren Sie die Daten gemäß einem bestimmten Verhältnis, um sicherzustellen, dass der numerische Bereich der Daten gleich ist.
  3. Feature-Auswahl: Wenn zu viele Daten vorhanden sind, wählen Sie die informativsten Features aus, um den Klassifizierungseffekt zu verbessern.

2. Modelltraining

Nach der Datenvorverarbeitung können wir mit dem Modelltraining beginnen. In Python können wir SVM-bezogene Bibliotheken für das Modelltraining verwenden.

  1. Bibliothek importieren

Bevor wir das Modell trainieren, müssen wir die relevanten Bibliotheken importieren:

numpy importieren als np
von sklearn.svm import SVC
von sklearn.model_selection import train_test_split
von sklearn.metrics import precision_score

  1. Datenladen
  2. # 🎜🎜#
Als nächstes müssen wir die Daten laden und den Trainingssatz und den Testsatz aufteilen:

data = np.loadtxt('data.txt', delimiter=',' )

X = data[:, :-1]
y = data[:, -1]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3) # 🎜🎜#
Unter diesen ist data.txt die Datendatei, die wir mit der Loadtxt-Funktion in der Numpy-Bibliothek laden können. Die Funktion train_test_split wird verwendet, um die Daten zufällig in einen Trainingssatz und einen Testsatz aufzuteilen, und der Parameter test_size gibt den Anteil des Testsatzes an.

Modelltraining
  1. Als nächstes können wir mit dem Modelltraining beginnen:

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

clf.fit(X_train, y_train)


Unter diesen ist der C-Parameter der Regularisierungskoeffizient, und der Kernel-Parameter gibt an, welcher Um die Kernel-Funktion zu verwenden, wird der Gamma-Parameter verwendet, um den Grad des Einflusses der Kernel-Funktion zu steuern. In diesem Beispiel verwenden wir die RBF-Kernelfunktion.

Modellbewertung
  1. Nach Abschluss des Trainings müssen wir eine Modellbewertung durchführen:

y_pred = clf. predict( das Modell.

3. Parameteroptimierung

Nach dem Modelltraining können wir eine Parameteroptimierung durchführen, um den Klassifizierungseffekt des Modells weiter zu verbessern. Zu den in SVM häufig verwendeten Methoden zur Parameteroptimierung gehören die Rastersuche und die Kreuzvalidierung.

Rastersuche

Rastersuche ist eine Brute-Force-Suchmethode, die nach dem besten Ergebnis sucht, indem alle möglichen Parameterkombinationen durchlaufen werden. Optimale Parameterkombination. In Python können wir die GridSearchCV-Funktion verwenden, um die Rastersuche zu implementieren.

    from sklearn.model_selection import GridSearchCV
  1. Parameterbereich definieren

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

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

Rastersuche durchführen

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

gs.fit(X_train, y_train)

# 🎜 🎜#Optimale Parameter ausgeben

print('Best:', gs.best_params_)

Unter diesen gibt param_grid den Parameterbereich an und der cv-Parameter gibt den Cross- an Validierungshäufigkeit. Nachdem die Ausführung abgeschlossen ist, können wir die optimale Parameterkombination ausgeben.


Kreuzvalidierung

Kreuzvalidierung ist eine Methode zur Überprüfung der Leistung des Modells durch wiederholte Stichproben. In Python können wir die Funktion cross_val_score verwenden, um eine Kreuzvalidierung zu implementieren.

from sklearn.model_selection import cross_val_score

    Kreuzvalidierung durchführen
  1. scores = cross_val_score(clf, X_train, y_train, cv=5)#🎜🎜 #
Kreuzvalidierungsergebnisse ausgeben

print('CV-Scores:', Scores)

Unter diesen gibt der cv-Parameter die Anzahl der Kreuzvalidierungen an. Nachdem die Ausführung abgeschlossen ist, können wir die Ergebnisse der Kreuzvalidierung ausgeben.

4. Zusammenfassung

In diesem Artikel wird erläutert, wie Sie SVM für die Klassifizierung in Python verwenden, einschließlich Datenvorverarbeitung, Modelltraining und Parameteroptimierung. Klassifizierungsprobleme können mit SVM effektiv gelöst werden, und verwandte Bibliotheken in Python bieten auch praktische Tools für die Implementierung von SVM. Ich hoffe, dass dieser Artikel den Lesern bei der Verwendung von SVM zur Klassifizierung hilfreich sein kann.

Das obige ist der detaillierte Inhalt vonWie verwende ich SVM zur Klassifizierung in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn