Heim  >  Artikel  >  Backend-Entwicklung  >  SVM-Beispiele in Python

SVM-Beispiele in Python

PHPz
PHPzOriginal
2023-06-11 20:42:061078Durchsuche

Support Vector Machine (SVM) in Python ist ein leistungsstarker überwachter Lernalgorithmus, der zur Lösung von Klassifizierungs- und Regressionsproblemen verwendet werden kann. SVM eignet sich gut für den Umgang mit hochdimensionalen Daten und nichtlinearen Problemen und wird häufig in den Bereichen Data Mining, Bildklassifizierung, Textklassifizierung, Bioinformatik und anderen Bereichen eingesetzt.

In diesem Artikel stellen wir ein Beispiel für die Verwendung von SVM zur Klassifizierung in Python vor. Wir werden das SVM-Modell aus der scikit-learn-Bibliothek verwenden, das viele leistungsstarke Algorithmen für maschinelles Lernen bereitstellt.

Zuerst müssen wir die scikit-learn-Bibliothek installieren, die mit dem folgenden Befehl im Terminal installiert werden kann:

pip install scikit-learn

Als nächstes werden wir den klassischen Iris-Datensatz verwenden, um den Klassifizierungseffekt von SVM zu demonstrieren. Der Iris-Datensatz enthält 150 Proben, unterteilt in drei Kategorien, jede Kategorie enthält 50 Proben. Jede Probe hat 4 Merkmale: Kelchblattlänge, Kelchblattbreite, Blütenblattlänge und Blütenblattbreite. Wir werden SVM verwenden, um diese Proben zu klassifizieren.

Zuerst müssen wir die erforderlichen Bibliotheken importieren:

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn import svm
from sklearn.metrics import accuracy_score

Als nächstes laden wir den Iris-Datensatz:

iris = datasets.load_iris()

Dann teilen wir die Daten in Trainingssatz und Testsatz auf:

X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.3, random_state=0)

Hier verwenden wir die Funktion train_test_split , Der Datensatz wird zufällig in einen Trainingssatz und einen Testsatz unterteilt, wobei der Parameter test_size angibt, dass der Testsatz 30 % des gesamten Datensatzes ausmacht.

Als nächstes verwenden wir das SVM-Modell, um den Trainingssatz anzupassen:

clf = svm.SVC(kernel='linear', C=1)
clf.fit(X_train, y_train)

Hier verwenden wir die lineare Kernelfunktion und geben einen Regularisierungsparameter C=1 an. Der Hyperparameter C von SVM steuert den Kompromiss zwischen Genauigkeit und Komplexität des Modells. Je kleiner der C-Wert, desto einfacher ist das Modell und desto anfälliger für eine Unteranpassung; je größer der C-Wert, desto komplexer ist das Modell und desto anfälliger für eine Überanpassung. Normalerweise müssen wir durch Kreuzvalidierung einen geeigneten C-Wert auswählen.

Als nächstes verwenden wir das trainierte Modell, um den Testsatz vorherzusagen:

y_pred = clf.predict(X_test)

Schließlich können wir die Funktion precision_score verwenden, um die Klassifizierungsgenauigkeit zu berechnen:

accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)

Der vollständige Code lautet wie folgt:

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)

In diesem Fall Wir verwendete das SVM-Modell zur Klassifizierung und zielte auf einen sehr häufigen Datensatz ab, den Iris-Datensatz. Der Vorteil von SVM ist seine leistungsstarke Klassifizierungsfähigkeit und seine Eignung für hochdimensionale Daten und nichtlineare Probleme. Die Implementierung von SVM erfordert die Optimierung einer Reihe von Hyperparametern, um den besten Klassifizierungseffekt zu erzielen.

Das obige ist der detaillierte Inhalt vonSVM-Beispiele 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